/* Generated by Cython 0.29.26 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "depends": [
            "cuda"
        ],
        "extra_compile_args": [
            "-std=c++14",
            "-fpermissive",
            "-Wno-deprecated-declarations",
            "-D _GLIBCXX_ASSERTIONS",
            "-fno-var-tracking-assignments",
            "-O3"
        ],
        "include_dirs": [
            "./cuda",
            "cuda",
            "/home/conda/feedstock_root/build_artifacts/cuda-python_1641445722738/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include"
        ],
        "language": "c++",
        "library_dirs": [
            "/home/conda/feedstock_root/build_artifacts/cuda-python_1641445722738/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/site-packages",
            "/home/conda/feedstock_root/build_artifacts/cuda-python_1641445722738/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib"
        ],
        "name": "cuda.cuda",
        "sources": [
            "cuda/cuda.pyx"
        ]
    },
    "module_name": "cuda.cuda"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else
#define CYTHON_ABI "0_29_26"
#define CYTHON_HEX_VERSION 0x001D1AF0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x02070000
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 0
  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
  #endif
  #ifndef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_MAJOR_VERSION < 3
    #include "longintrepr.h"
  #endif
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
           typedef unsigned char     uint8_t;
           typedef unsigned int      uint32_t;
        #else
           typedef unsigned __int8   uint8_t;
           typedef unsigned __int32  uint32_t;
        #endif
    #endif
#else
   #include <stdint.h>
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus) && __cplusplus >= 201103L
    #if __has_cpp_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH [[fallthrough]]
    #elif __has_cpp_attribute(clang::fallthrough)
      #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
    #elif __has_cpp_attribute(gnu::fallthrough)
      #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__ ) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif

#ifndef __cplusplus
  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
#endif
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #else
    #define CYTHON_INLINE inline
  #endif
#endif
template<typename T>
void __Pyx_call_destructor(T& x) {
    x.~T();
}
template<typename T>
class __Pyx_FakeReference {
  public:
    __Pyx_FakeReference() : ptr(NULL) { }
    __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
    T *operator->() { return ptr; }
    T *operator&() { return ptr; }
    operator T&() { return *ptr; }
    template<typename U> bool operator ==(U other) { return *ptr == other; }
    template<typename U> bool operator !=(U other) { return *ptr != other; }
  private:
    T *ptr;
};

#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_DefaultClassType PyType_Type
#if PY_VERSION_HEX >= 0x030B00A1
    static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
        PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
        PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
        const char *fn_cstr=NULL;
        const char *name_cstr=NULL;
        PyCodeObject* co=NULL;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        if (!(kwds=PyDict_New())) goto end;
        if (!(argcount=PyLong_FromLong(a))) goto end;
        if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
        if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
        if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
        if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
        if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
        if (!(nlocals=PyLong_FromLong(l))) goto end;
        if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
        if (!(stacksize=PyLong_FromLong(s))) goto end;
        if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
        if (!(flags=PyLong_FromLong(f))) goto end;
        if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
        if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
        if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
        if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
        if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
        if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
        if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
        Py_XDECREF((PyObject*)co);
        co = (PyCodeObject*)call_result;
        call_result = NULL;
        if (0) {
            cleanup_code_too:
            Py_XDECREF((PyObject*)co);
            co = NULL;
        }
        end:
        Py_XDECREF(kwds);
        Py_XDECREF(argcount);
        Py_XDECREF(posonlyargcount);
        Py_XDECREF(kwonlyargcount);
        Py_XDECREF(nlocals);
        Py_XDECREF(stacksize);
        Py_XDECREF(replace);
        Py_XDECREF(call_result);
        Py_XDECREF(empty);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return co;
    }
#else
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
  #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
  #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
  #define PyMem_RawFree(p)             PyMem_Free(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
#else
#define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #if defined(PyUnicode_IS_READY)
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #else
  #define __Pyx_PyUnicode_READY(op)       (0)
  #endif
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
  #endif
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
#else
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__cuda__cuda
#define __PYX_HAVE_API__cuda__cuda
/* Early includes */
#include <stdint.h>
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <vector>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include <stdio.h>
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

static PyObject *__pyx_m = NULL;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_cython_runtime = NULL;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "cuda/cuda.pyx",
  "stringsource",
  "cuda/cuda.pxd",
  "cuda/_lib/utils.pxd",
  "type.pxd",
};

/* "cuda/ccuda.pxd":11
 * 
 * 
 * ctypedef uint32_t cuuint32_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef uint64_t cuuint64_t
 */
typedef uint32_t __pyx_t_4cuda_5ccuda_cuuint32_t;

/* "cuda/ccuda.pxd":13
 * ctypedef uint32_t cuuint32_t
 * 
 * ctypedef uint64_t cuuint64_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef unsigned long long CUdeviceptr_v2
 */
typedef uint64_t __pyx_t_4cuda_5ccuda_cuuint64_t;

/* "cuda/ccuda.pxd":15
 * ctypedef uint64_t cuuint64_t
 * 
 * ctypedef unsigned long long CUdeviceptr_v2             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUdeviceptr_v2 CUdeviceptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_5ccuda_CUdeviceptr_v2;

/* "cuda/ccuda.pxd":17
 * ctypedef unsigned long long CUdeviceptr_v2
 * 
 * ctypedef CUdeviceptr_v2 CUdeviceptr             # <<<<<<<<<<<<<<
 * 
 * ctypedef int CUdevice_v1
 */
typedef __pyx_t_4cuda_5ccuda_CUdeviceptr_v2 __pyx_t_4cuda_5ccuda_CUdeviceptr;

/* "cuda/ccuda.pxd":19
 * ctypedef CUdeviceptr_v2 CUdeviceptr
 * 
 * ctypedef int CUdevice_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUdevice_v1 CUdevice
 */
typedef int __pyx_t_4cuda_5ccuda_CUdevice_v1;

/* "cuda/ccuda.pxd":21
 * ctypedef int CUdevice_v1
 * 
 * ctypedef CUdevice_v1 CUdevice             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef __pyx_t_4cuda_5ccuda_CUdevice_v1 __pyx_t_4cuda_5ccuda_CUdevice;

/* "cuda/ccuda.pxd":73
 * ctypedef CUgraphicsResource_st* CUgraphicsResource
 * 
 * ctypedef unsigned long long CUtexObject_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUtexObject_v1 CUtexObject
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_5ccuda_CUtexObject_v1;

/* "cuda/ccuda.pxd":75
 * ctypedef unsigned long long CUtexObject_v1
 * 
 * ctypedef CUtexObject_v1 CUtexObject             # <<<<<<<<<<<<<<
 * 
 * ctypedef unsigned long long CUsurfObject_v1
 */
typedef __pyx_t_4cuda_5ccuda_CUtexObject_v1 __pyx_t_4cuda_5ccuda_CUtexObject;

/* "cuda/ccuda.pxd":77
 * ctypedef CUtexObject_v1 CUtexObject
 * 
 * ctypedef unsigned long long CUsurfObject_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUsurfObject_v1 CUsurfObject
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_5ccuda_CUsurfObject_v1;

/* "cuda/ccuda.pxd":79
 * ctypedef unsigned long long CUsurfObject_v1
 * 
 * ctypedef CUsurfObject_v1 CUsurfObject             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef __pyx_t_4cuda_5ccuda_CUsurfObject_v1 __pyx_t_4cuda_5ccuda_CUsurfObject;

/* "cuda/ccuda.pxd":1340
 * ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 CUDA_EXT_SEM_WAIT_NODE_PARAMS
 * 
 * ctypedef unsigned long long CUmemGenericAllocationHandle_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUmemGenericAllocationHandle_v1 CUmemGenericAllocationHandle
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1;

/* "cuda/ccuda.pxd":1342
 * ctypedef unsigned long long CUmemGenericAllocationHandle_v1
 * 
 * ctypedef CUmemGenericAllocationHandle_v1 CUmemGenericAllocationHandle             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemAllocationHandleType_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1 __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle;

/* "cuda/cuda.pyx":20
 * from cpython.bytes cimport PyBytes_FromStringAndSize
 * 
 * ctypedef unsigned long long signed_char_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_char_ptr
 * ctypedef unsigned long long char_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_signed_char_ptr;

/* "cuda/cuda.pyx":21
 * 
 * ctypedef unsigned long long signed_char_ptr
 * ctypedef unsigned long long unsigned_char_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long char_ptr
 * ctypedef unsigned long long short_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_char_ptr;

/* "cuda/cuda.pyx":22
 * ctypedef unsigned long long signed_char_ptr
 * ctypedef unsigned long long unsigned_char_ptr
 * ctypedef unsigned long long char_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long short_ptr
 * ctypedef unsigned long long unsigned_short_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_char_ptr;

/* "cuda/cuda.pyx":23
 * ctypedef unsigned long long unsigned_char_ptr
 * ctypedef unsigned long long char_ptr
 * ctypedef unsigned long long short_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_short_ptr
 * ctypedef unsigned long long int_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_short_ptr;

/* "cuda/cuda.pyx":24
 * ctypedef unsigned long long char_ptr
 * ctypedef unsigned long long short_ptr
 * ctypedef unsigned long long unsigned_short_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long int_ptr
 * ctypedef unsigned long long long_int_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_short_ptr;

/* "cuda/cuda.pyx":25
 * ctypedef unsigned long long short_ptr
 * ctypedef unsigned long long unsigned_short_ptr
 * ctypedef unsigned long long int_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long long_int_ptr
 * ctypedef unsigned long long long_long_int_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_int_ptr;

/* "cuda/cuda.pyx":26
 * ctypedef unsigned long long unsigned_short_ptr
 * ctypedef unsigned long long int_ptr
 * ctypedef unsigned long long long_int_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long long_long_int_ptr
 * ctypedef unsigned long long unsigned_int_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_long_int_ptr;

/* "cuda/cuda.pyx":27
 * ctypedef unsigned long long int_ptr
 * ctypedef unsigned long long long_int_ptr
 * ctypedef unsigned long long long_long_int_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_int_ptr
 * ctypedef unsigned long long unsigned_long_int_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_long_long_int_ptr;

/* "cuda/cuda.pyx":28
 * ctypedef unsigned long long long_int_ptr
 * ctypedef unsigned long long long_long_int_ptr
 * ctypedef unsigned long long unsigned_int_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_long_int_ptr
 * ctypedef unsigned long long unsigned_long_long_int_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_int_ptr;

/* "cuda/cuda.pyx":29
 * ctypedef unsigned long long long_long_int_ptr
 * ctypedef unsigned long long unsigned_int_ptr
 * ctypedef unsigned long long unsigned_long_int_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_long_long_int_ptr
 * ctypedef unsigned long long uint32_t_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_long_int_ptr;

/* "cuda/cuda.pyx":30
 * ctypedef unsigned long long unsigned_int_ptr
 * ctypedef unsigned long long unsigned_long_int_ptr
 * ctypedef unsigned long long unsigned_long_long_int_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long uint32_t_ptr
 * ctypedef unsigned long long uint64_t_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_long_long_int_ptr;

/* "cuda/cuda.pyx":31
 * ctypedef unsigned long long unsigned_long_int_ptr
 * ctypedef unsigned long long unsigned_long_long_int_ptr
 * ctypedef unsigned long long uint32_t_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long uint64_t_ptr
 * ctypedef unsigned long long int32_t_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_uint32_t_ptr;

/* "cuda/cuda.pyx":32
 * ctypedef unsigned long long unsigned_long_long_int_ptr
 * ctypedef unsigned long long uint32_t_ptr
 * ctypedef unsigned long long uint64_t_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long int32_t_ptr
 * ctypedef unsigned long long int64_t_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_uint64_t_ptr;

/* "cuda/cuda.pyx":33
 * ctypedef unsigned long long uint32_t_ptr
 * ctypedef unsigned long long uint64_t_ptr
 * ctypedef unsigned long long int32_t_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long int64_t_ptr
 * ctypedef unsigned long long unsigned_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_int32_t_ptr;

/* "cuda/cuda.pyx":34
 * ctypedef unsigned long long uint64_t_ptr
 * ctypedef unsigned long long int32_t_ptr
 * ctypedef unsigned long long int64_t_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_ptr
 * ctypedef unsigned long long unsigned_long_long_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_int64_t_ptr;

/* "cuda/cuda.pyx":35
 * ctypedef unsigned long long int32_t_ptr
 * ctypedef unsigned long long int64_t_ptr
 * ctypedef unsigned long long unsigned_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long unsigned_long_long_ptr
 * ctypedef unsigned long long size_t_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_ptr;

/* "cuda/cuda.pyx":36
 * ctypedef unsigned long long int64_t_ptr
 * ctypedef unsigned long long unsigned_ptr
 * ctypedef unsigned long long unsigned_long_long_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long size_t_ptr
 * ctypedef unsigned long long float_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_unsigned_long_long_ptr;

/* "cuda/cuda.pyx":37
 * ctypedef unsigned long long unsigned_ptr
 * ctypedef unsigned long long unsigned_long_long_ptr
 * ctypedef unsigned long long size_t_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long float_ptr
 * ctypedef unsigned long long double_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_size_t_ptr;

/* "cuda/cuda.pyx":38
 * ctypedef unsigned long long unsigned_long_long_ptr
 * ctypedef unsigned long long size_t_ptr
 * ctypedef unsigned long long float_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long double_ptr
 * ctypedef unsigned long long void_ptr
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_float_ptr;

/* "cuda/cuda.pyx":39
 * ctypedef unsigned long long size_t_ptr
 * ctypedef unsigned long long float_ptr
 * ctypedef unsigned long long double_ptr             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long void_ptr
 * 
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_double_ptr;

/* "cuda/cuda.pyx":40
 * ctypedef unsigned long long float_ptr
 * ctypedef unsigned long long double_ptr
 * ctypedef unsigned long long void_ptr             # <<<<<<<<<<<<<<
 * 
 * CUDA_VERSION = ccuda.CUDA_VERSION
 */
typedef unsigned PY_LONG_LONG __pyx_t_4cuda_4cuda_void_ptr;

/*--- Type declarations ---*/
struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams;
struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr;
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute;
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmem_range_attribute;
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute;
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute;
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUjit_option;
struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper;
struct __pyx_obj_4cuda_4cuda_CUcontext;
struct __pyx_obj_4cuda_4cuda_CUmodule;
struct __pyx_obj_4cuda_4cuda_CUfunction;
struct __pyx_obj_4cuda_4cuda_CUarray;
struct __pyx_obj_4cuda_4cuda_CUmipmappedArray;
struct __pyx_obj_4cuda_4cuda_CUtexref;
struct __pyx_obj_4cuda_4cuda_CUsurfref;
struct __pyx_obj_4cuda_4cuda_CUevent;
struct __pyx_obj_4cuda_4cuda_CUstream;
struct __pyx_obj_4cuda_4cuda_CUgraphicsResource;
struct __pyx_obj_4cuda_4cuda_CUexternalMemory;
struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore;
struct __pyx_obj_4cuda_4cuda_CUgraph;
struct __pyx_obj_4cuda_4cuda_CUgraphNode;
struct __pyx_obj_4cuda_4cuda_CUgraphExec;
struct __pyx_obj_4cuda_4cuda_CUmemoryPool;
struct __pyx_obj_4cuda_4cuda_CUuserObject;
struct __pyx_obj_4cuda_4cuda_CUlinkState;
struct __pyx_obj_4cuda_4cuda_CUhostFn;
struct __pyx_obj_4cuda_4cuda_CUstreamCallback;
struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize;
struct __pyx_obj_4cuda_4cuda_CUuuid_st;
struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st;
struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st;
struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st;
struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st;
struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st;
struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union;
struct __pyx_obj_4cuda_4cuda_CUdevprop_st;
struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st;
struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st;
struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st;
struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union;
struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union;
struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st;
struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u;
struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st;
struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st;
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s;
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s;
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s;
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s;
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s;
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u;
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st;
struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st;
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st;
struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st;
struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s;
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st;
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st;
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st;
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u;
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s;
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s;
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u;
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u;
struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st;
struct __pyx_obj_4cuda_4cuda_CUmemLocation_st;
struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s;
struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st;
struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st;
struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st;
struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st;
struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st;
struct __pyx_obj_4cuda_4cuda_CUuuid;
struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_v1;
struct __pyx_obj_4cuda_4cuda_CUipcEventHandle;
struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_v1;
struct __pyx_obj_4cuda_4cuda_CUipcMemHandle;
struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_v1;
struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams;
struct __pyx_obj_4cuda_4cuda_CUdevprop_v1;
struct __pyx_obj_4cuda_4cuda_CUdevprop;
struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_v1;
struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow;
struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_v1;
struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue;
struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_v1;
struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue;
struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_v1;
struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount;
struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_v1;
struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_v2;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_v2;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES;
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS;
struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1;
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS;
struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_v1;
struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo;
struct __pyx_obj_4cuda_4cuda_CUmemLocation_v1;
struct __pyx_obj_4cuda_4cuda_CUmemLocation;
struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_v1;
struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp;
struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_v1;
struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc;
struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_v1;
struct __pyx_obj_4cuda_4cuda_CUmemPoolProps;
struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_v1;
struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData;
struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS;
struct __pyx_obj_4cuda_4cuda_cuuint32_t;
struct __pyx_obj_4cuda_4cuda_cuuint64_t;
struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2;
struct __pyx_obj_4cuda_4cuda_CUdeviceptr;
struct __pyx_obj_4cuda_4cuda_CUdevice_v1;
struct __pyx_obj_4cuda_4cuda_CUdevice;
struct __pyx_obj_4cuda_4cuda_CUtexObject_v1;
struct __pyx_obj_4cuda_4cuda_CUtexObject;
struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1;
struct __pyx_obj_4cuda_4cuda_CUsurfObject;
struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1;
struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr;
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr;
struct __pyx_t_4cuda_5ccuda_CUuuid_st;
struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st;
struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st;
struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st;
struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st;
struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st;
union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union;
struct __pyx_t_4cuda_5ccuda_CUdevprop_st;
struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st;
struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st;
struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st;
struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st;
union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union;
union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union;
struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st;
union __pyx_t_4cuda_5ccuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u;
struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st;
struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st;
struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st;
struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st;
struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st;
struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st;
struct __pyx_t_4cuda_5ccuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s;
struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st;
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s;
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s;
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s;
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s;
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s;
union __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u;
struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st;
struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st;
struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st;
struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st;
struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s;
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u;
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st;
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st;
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s;
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u;
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s;
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s;
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s;
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s;
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s;
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st;
struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st;
struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st;
union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u;
struct __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s;
struct __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s;
union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u;
union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u;
struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st;
struct __pyx_t_4cuda_5ccuda_CUmemLocation_st;
struct __pyx_t_4cuda_5ccuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s;
struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st;
struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st;
struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st;
struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st;
struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st;

/* "cuda/ccuda.pxd":135
 * ctypedef CUipcMemHandle_v1 CUipcMemHandle
 * 
 * cdef enum CUipcMem_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = 0x1
 * 
 */
enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = 0x1
};

/* "cuda/ccuda.pxd":140
 * ctypedef CUipcMem_flags_enum CUipcMem_flags
 * 
 * cdef enum CUmemAttach_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_ATTACH_GLOBAL = 0x1
 *     CU_MEM_ATTACH_HOST = 0x2
 */
enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_ATTACH_GLOBAL = 0x1,
  __pyx_e_4cuda_5ccuda_CU_MEM_ATTACH_HOST = 0x2,
  __pyx_e_4cuda_5ccuda_CU_MEM_ATTACH_SINGLE = 0x4
};

/* "cuda/ccuda.pxd":147
 * ctypedef CUmemAttach_flags_enum CUmemAttach_flags
 * 
 * cdef enum CUctx_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_CTX_SCHED_AUTO = 0x00
 *     CU_CTX_SCHED_SPIN = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_CTX_SCHED_AUTO = 0x00,
  __pyx_e_4cuda_5ccuda_CU_CTX_SCHED_SPIN = 0x01,
  __pyx_e_4cuda_5ccuda_CU_CTX_SCHED_YIELD = 0x02,
  __pyx_e_4cuda_5ccuda_CU_CTX_SCHED_BLOCKING_SYNC = 0x04,
  __pyx_e_4cuda_5ccuda_CU_CTX_BLOCKING_SYNC = 0x04,
  __pyx_e_4cuda_5ccuda_CU_CTX_SCHED_MASK = 0x07,
  __pyx_e_4cuda_5ccuda_CU_CTX_MAP_HOST = 0x08,
  __pyx_e_4cuda_5ccuda_CU_CTX_LMEM_RESIZE_TO_MAX = 0x10,
  __pyx_e_4cuda_5ccuda_CU_CTX_FLAGS_MASK = 0x1f
};

/* "cuda/ccuda.pxd":160
 * ctypedef CUctx_flags_enum CUctx_flags
 * 
 * cdef enum CUstream_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_DEFAULT = 0x0
 *     CU_STREAM_NON_BLOCKING = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_DEFAULT = 0x0,
  __pyx_e_4cuda_5ccuda_CU_STREAM_NON_BLOCKING = 0x1
};

/* "cuda/ccuda.pxd":166
 * ctypedef CUstream_flags_enum CUstream_flags
 * 
 * cdef enum CUevent_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_EVENT_DEFAULT = 0x0
 *     CU_EVENT_BLOCKING_SYNC = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_EVENT_DEFAULT = 0x0,
  __pyx_e_4cuda_5ccuda_CU_EVENT_BLOCKING_SYNC = 0x1,
  __pyx_e_4cuda_5ccuda_CU_EVENT_DISABLE_TIMING = 0x2,
  __pyx_e_4cuda_5ccuda_CU_EVENT_INTERPROCESS = 0x4
};

/* "cuda/ccuda.pxd":174
 * ctypedef CUevent_flags_enum CUevent_flags
 * 
 * cdef enum CUevent_record_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_EVENT_RECORD_DEFAULT = 0x0
 *     CU_EVENT_RECORD_EXTERNAL = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_EVENT_RECORD_DEFAULT = 0x0,
  __pyx_e_4cuda_5ccuda_CU_EVENT_RECORD_EXTERNAL = 0x1
};

/* "cuda/ccuda.pxd":180
 * ctypedef CUevent_record_flags_enum CUevent_record_flags
 * 
 * cdef enum CUevent_wait_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_EVENT_WAIT_DEFAULT = 0x0
 *     CU_EVENT_WAIT_EXTERNAL = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_EVENT_WAIT_DEFAULT = 0x0,
  __pyx_e_4cuda_5ccuda_CU_EVENT_WAIT_EXTERNAL = 0x1
};

/* "cuda/ccuda.pxd":186
 * ctypedef CUevent_wait_flags_enum CUevent_wait_flags
 * 
 * cdef enum CUstreamWaitValue_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_WAIT_VALUE_GEQ = 0x0
 *     CU_STREAM_WAIT_VALUE_EQ = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum {

  /* "cuda/ccuda.pxd":191
 *     CU_STREAM_WAIT_VALUE_AND = 0x2
 *     CU_STREAM_WAIT_VALUE_NOR = 0x3
 *     CU_STREAM_WAIT_VALUE_FLUSH = 1<<30             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUstreamWaitValue_flags_enum CUstreamWaitValue_flags
 */
  __pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_GEQ = 0x0,
  __pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_EQ = 0x1,
  __pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_AND = 0x2,
  __pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_NOR = 0x3,
  __pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_FLUSH = (1 << 30)
};

/* "cuda/ccuda.pxd":195
 * ctypedef CUstreamWaitValue_flags_enum CUstreamWaitValue_flags
 * 
 * cdef enum CUstreamWriteValue_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_WRITE_VALUE_DEFAULT = 0x0
 *     CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_WRITE_VALUE_DEFAULT = 0x0,
  __pyx_e_4cuda_5ccuda_CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = 0x1
};

/* "cuda/ccuda.pxd":201
 * ctypedef CUstreamWriteValue_flags_enum CUstreamWriteValue_flags
 * 
 * cdef enum CUstreamBatchMemOpType_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_MEM_OP_WAIT_VALUE_32 = 1
 *     CU_STREAM_MEM_OP_WRITE_VALUE_32 = 2
 */
enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WAIT_VALUE_32 = 1,
  __pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WRITE_VALUE_32 = 2,
  __pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WAIT_VALUE_64 = 4,
  __pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WRITE_VALUE_64 = 5,
  __pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = 3
};

/* "cuda/ccuda.pxd":239
 * ctypedef CUstreamBatchMemOpParams_v1 CUstreamBatchMemOpParams
 * 
 * cdef enum CUoccupancy_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_OCCUPANCY_DEFAULT = 0x0
 *     CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_OCCUPANCY_DEFAULT = 0x0,
  __pyx_e_4cuda_5ccuda_CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = 0x1
};

/* "cuda/ccuda.pxd":245
 * ctypedef CUoccupancy_flags_enum CUoccupancy_flags
 * 
 * cdef enum CUstreamUpdateCaptureDependencies_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_ADD_CAPTURE_DEPENDENCIES = 0x0
 *     CU_STREAM_SET_CAPTURE_DEPENDENCIES = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_ADD_CAPTURE_DEPENDENCIES = 0x0,
  __pyx_e_4cuda_5ccuda_CU_STREAM_SET_CAPTURE_DEPENDENCIES = 0x1
};

/* "cuda/ccuda.pxd":251
 * ctypedef CUstreamUpdateCaptureDependencies_flags_enum CUstreamUpdateCaptureDependencies_flags
 * 
 * cdef enum CUarray_format_enum:             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNSIGNED_INT8 = 0x01
 *     CU_AD_FORMAT_UNSIGNED_INT16 = 0x02
 */
enum __pyx_t_4cuda_5ccuda_CUarray_format_enum {
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNSIGNED_INT8 = 0x01,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNSIGNED_INT16 = 0x02,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNSIGNED_INT32 = 0x03,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SIGNED_INT8 = 0x08,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SIGNED_INT16 = 0x09,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SIGNED_INT32 = 0x0a,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_HALF = 0x10,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_FLOAT = 0x20,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_NV12 = 0xb0,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT8X1 = 0xc0,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT8X2 = 0xc1,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT8X4 = 0xc2,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT16X1 = 0xc3,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT16X2 = 0xc4,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT16X4 = 0xc5,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT8X1 = 0xc6,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT8X2 = 0xc7,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT8X4 = 0xc8,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT16X1 = 0xc9,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT16X2 = 0xca,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT16X4 = 0xcb,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC1_UNORM = 0x91,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC1_UNORM_SRGB = 0x92,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC2_UNORM = 0x93,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC2_UNORM_SRGB = 0x94,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC3_UNORM = 0x95,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC3_UNORM_SRGB = 0x96,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC4_UNORM = 0x97,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC4_SNORM = 0x98,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC5_UNORM = 0x99,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC5_SNORM = 0x9a,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC6H_UF16 = 0x9b,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC6H_SF16 = 0x9c,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC7_UNORM = 0x9d,
  __pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC7_UNORM_SRGB = 0x9e
};

/* "cuda/ccuda.pxd":290
 * ctypedef CUarray_format_enum CUarray_format
 * 
 * cdef enum CUaddress_mode_enum:             # <<<<<<<<<<<<<<
 *     CU_TR_ADDRESS_MODE_WRAP = 0
 *     CU_TR_ADDRESS_MODE_CLAMP = 1
 */
enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum {
  __pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_WRAP = 0,
  __pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_CLAMP = 1,
  __pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_MIRROR = 2,
  __pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_BORDER = 3
};

/* "cuda/ccuda.pxd":298
 * ctypedef CUaddress_mode_enum CUaddress_mode
 * 
 * cdef enum CUfilter_mode_enum:             # <<<<<<<<<<<<<<
 *     CU_TR_FILTER_MODE_POINT = 0
 *     CU_TR_FILTER_MODE_LINEAR = 1
 */
enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum {
  __pyx_e_4cuda_5ccuda_CU_TR_FILTER_MODE_POINT = 0,
  __pyx_e_4cuda_5ccuda_CU_TR_FILTER_MODE_LINEAR = 1
};

/* "cuda/ccuda.pxd":304
 * ctypedef CUfilter_mode_enum CUfilter_mode
 * 
 * cdef enum CUdevice_attribute_enum:             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = 2
 */
enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum {
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = 2,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = 3,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = 4,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = 5,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = 6,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = 7,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = 8,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = 8,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = 9,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_WARP_SIZE = 10,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_PITCH = 11,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = 12,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = 12,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CLOCK_RATE = 13,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = 14,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = 15,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = 16,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = 17,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_INTEGRATED = 18,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = 19,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = 20,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = 21,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = 22,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = 23,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = 24,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = 25,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = 26,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = 27,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = 28,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = 29,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = 27,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = 28,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = 29,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = 30,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = 31,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_ECC_ENABLED = 32,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = 33,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = 34,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TCC_DRIVER = 35,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = 36,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = 37,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = 38,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = 39,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = 40,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = 41,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = 42,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = 43,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = 44,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = 45,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = 46,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = 47,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = 48,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = 49,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = 50,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = 51,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = 52,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = 53,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = 54,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = 55,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = 56,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = 57,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = 58,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = 59,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = 60,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = 61,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = 62,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = 63,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = 64,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = 65,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = 66,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = 67,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = 68,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = 69,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = 70,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = 71,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = 72,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = 73,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = 74,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = 75,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = 76,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = 77,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = 78,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = 79,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = 80,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = 81,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = 82,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = 83,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = 84,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = 85,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = 86,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = 87,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = 88,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = 89,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = 90,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = 91,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = 92,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = 93,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = 94,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = 95,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = 96,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = 97,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = 98,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = 99,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = 0x64,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = 0x65,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = 0x66,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = 0x66,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = 0x67,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = 0x68,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = 0x69,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = 0x6A,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = 0x6B,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = 0x6C,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = 0x6D,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = 0x6E,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = 0x6F,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = 0x70,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = 0x71,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = 0x72,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = 0x73,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = 0x74,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = 0x75,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = 0x76,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = 0x77,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX
};

/* "cuda/ccuda.pxd":450
 * ctypedef CUdevprop_v1 CUdevprop
 * 
 * cdef enum CUpointer_attribute_enum:             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_CONTEXT = 1
 *     CU_POINTER_ATTRIBUTE_MEMORY_TYPE = 2
 */
enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum {
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_CONTEXT = 1,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_MEMORY_TYPE = 2,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_DEVICE_POINTER = 3,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_HOST_POINTER = 4,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_P2P_TOKENS = 5,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = 6,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_BUFFER_ID = 7,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_IS_MANAGED = 8,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = 9,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = 10,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = 11,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_RANGE_SIZE = 12,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_MAPPED = 13,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = 14,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = 15,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = 16,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = 17
};

/* "cuda/ccuda.pxd":471
 * ctypedef CUpointer_attribute_enum CUpointer_attribute
 * 
 * cdef enum CUfunction_attribute_enum:             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0
 *     CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1
 */
enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum {
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = 2,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = 3,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_NUM_REGS = 4,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_PTX_VERSION = 5,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_BINARY_VERSION = 6,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = 7,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = 8,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = 9,
  __pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_MAX
};

/* "cuda/ccuda.pxd":486
 * ctypedef CUfunction_attribute_enum CUfunction_attribute
 * 
 * cdef enum CUfunc_cache_enum:             # <<<<<<<<<<<<<<
 *     CU_FUNC_CACHE_PREFER_NONE = 0x00
 *     CU_FUNC_CACHE_PREFER_SHARED = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum {
  __pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_NONE = 0x00,
  __pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_SHARED = 0x01,
  __pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_L1 = 0x02,
  __pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_EQUAL = 0x03
};

/* "cuda/ccuda.pxd":494
 * ctypedef CUfunc_cache_enum CUfunc_cache
 * 
 * cdef enum CUsharedconfig_enum:             # <<<<<<<<<<<<<<
 *     CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = 0x00
 *     CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum {
  __pyx_e_4cuda_5ccuda_CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = 0x00,
  __pyx_e_4cuda_5ccuda_CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = 0x01,
  __pyx_e_4cuda_5ccuda_CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = 0x02
};

/* "cuda/ccuda.pxd":501
 * ctypedef CUsharedconfig_enum CUsharedconfig
 * 
 * cdef enum CUshared_carveout_enum:             # <<<<<<<<<<<<<<
 *     CU_SHAREDMEM_CARVEOUT_DEFAULT = -1
 *     CU_SHAREDMEM_CARVEOUT_MAX_SHARED = 100
 */
enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum {
  __pyx_e_4cuda_5ccuda_CU_SHAREDMEM_CARVEOUT_DEFAULT = -1L,
  __pyx_e_4cuda_5ccuda_CU_SHAREDMEM_CARVEOUT_MAX_SHARED = 0x64,
  __pyx_e_4cuda_5ccuda_CU_SHAREDMEM_CARVEOUT_MAX_L1 = 0
};

/* "cuda/ccuda.pxd":508
 * ctypedef CUshared_carveout_enum CUshared_carveout
 * 
 * cdef enum CUmemorytype_enum:             # <<<<<<<<<<<<<<
 *     CU_MEMORYTYPE_HOST = 0x01
 *     CU_MEMORYTYPE_DEVICE = 0x02
 */
enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum {
  __pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_HOST = 0x01,
  __pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_DEVICE = 0x02,
  __pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_ARRAY = 0x03,
  __pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_UNIFIED = 0x04
};

/* "cuda/ccuda.pxd":516
 * ctypedef CUmemorytype_enum CUmemorytype
 * 
 * cdef enum CUcomputemode_enum:             # <<<<<<<<<<<<<<
 *     CU_COMPUTEMODE_DEFAULT = 0
 *     CU_COMPUTEMODE_PROHIBITED = 2
 */
enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum {
  __pyx_e_4cuda_5ccuda_CU_COMPUTEMODE_DEFAULT = 0,
  __pyx_e_4cuda_5ccuda_CU_COMPUTEMODE_PROHIBITED = 2,
  __pyx_e_4cuda_5ccuda_CU_COMPUTEMODE_EXCLUSIVE_PROCESS = 3
};

/* "cuda/ccuda.pxd":523
 * ctypedef CUcomputemode_enum CUcomputemode
 * 
 * cdef enum CUmem_advise_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_ADVISE_SET_READ_MOSTLY = 1
 *     CU_MEM_ADVISE_UNSET_READ_MOSTLY = 2
 */
enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_SET_READ_MOSTLY = 1,
  __pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_UNSET_READ_MOSTLY = 2,
  __pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_SET_PREFERRED_LOCATION = 3,
  __pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = 4,
  __pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_SET_ACCESSED_BY = 5,
  __pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_UNSET_ACCESSED_BY = 6
};

/* "cuda/ccuda.pxd":533
 * ctypedef CUmem_advise_enum CUmem_advise
 * 
 * cdef enum CUmem_range_attribute_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = 1
 *     CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = 2
 */
enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = 1,
  __pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = 2,
  __pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = 3,
  __pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = 4
};

/* "cuda/ccuda.pxd":541
 * ctypedef CUmem_range_attribute_enum CUmem_range_attribute
 * 
 * cdef enum CUjit_option_enum:             # <<<<<<<<<<<<<<
 *     CU_JIT_MAX_REGISTERS = 0
 *     CU_JIT_THREADS_PER_BLOCK
 */
enum __pyx_t_4cuda_5ccuda_CUjit_option_enum {
  __pyx_e_4cuda_5ccuda_CU_JIT_MAX_REGISTERS = 0,
  __pyx_e_4cuda_5ccuda_CU_JIT_THREADS_PER_BLOCK,
  __pyx_e_4cuda_5ccuda_CU_JIT_WALL_TIME,
  __pyx_e_4cuda_5ccuda_CU_JIT_INFO_LOG_BUFFER,
  __pyx_e_4cuda_5ccuda_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES,
  __pyx_e_4cuda_5ccuda_CU_JIT_ERROR_LOG_BUFFER,
  __pyx_e_4cuda_5ccuda_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES,
  __pyx_e_4cuda_5ccuda_CU_JIT_OPTIMIZATION_LEVEL,
  __pyx_e_4cuda_5ccuda_CU_JIT_TARGET_FROM_CUCONTEXT,
  __pyx_e_4cuda_5ccuda_CU_JIT_TARGET,
  __pyx_e_4cuda_5ccuda_CU_JIT_FALLBACK_STRATEGY,
  __pyx_e_4cuda_5ccuda_CU_JIT_GENERATE_DEBUG_INFO,
  __pyx_e_4cuda_5ccuda_CU_JIT_LOG_VERBOSE,
  __pyx_e_4cuda_5ccuda_CU_JIT_GENERATE_LINE_INFO,
  __pyx_e_4cuda_5ccuda_CU_JIT_CACHE_MODE,
  __pyx_e_4cuda_5ccuda_CU_JIT_NEW_SM3X_OPT,
  __pyx_e_4cuda_5ccuda_CU_JIT_FAST_COMPILE,
  __pyx_e_4cuda_5ccuda_CU_JIT_GLOBAL_SYMBOL_NAMES,
  __pyx_e_4cuda_5ccuda_CU_JIT_GLOBAL_SYMBOL_ADDRESSES,
  __pyx_e_4cuda_5ccuda_CU_JIT_GLOBAL_SYMBOL_COUNT,
  __pyx_e_4cuda_5ccuda_CU_JIT_LTO,
  __pyx_e_4cuda_5ccuda_CU_JIT_FTZ,
  __pyx_e_4cuda_5ccuda_CU_JIT_PREC_DIV,
  __pyx_e_4cuda_5ccuda_CU_JIT_PREC_SQRT,
  __pyx_e_4cuda_5ccuda_CU_JIT_FMA,
  __pyx_e_4cuda_5ccuda_CU_JIT_NUM_OPTIONS
};

/* "cuda/ccuda.pxd":571
 * ctypedef CUjit_option_enum CUjit_option
 * 
 * cdef enum CUjit_target_enum:             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_20 = 20
 *     CU_TARGET_COMPUTE_21 = 21
 */
enum __pyx_t_4cuda_5ccuda_CUjit_target_enum {
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_20 = 20,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_21 = 21,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_30 = 30,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_32 = 32,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_35 = 35,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_37 = 37,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_50 = 50,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_52 = 52,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_53 = 53,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_60 = 60,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_61 = 61,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_62 = 62,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_70 = 70,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_72 = 72,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_75 = 75,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_80 = 80,
  __pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_86 = 86
};

/* "cuda/ccuda.pxd":592
 * ctypedef CUjit_target_enum CUjit_target
 * 
 * cdef enum CUjit_fallback_enum:             # <<<<<<<<<<<<<<
 *     CU_PREFER_PTX = 0
 *     CU_PREFER_BINARY
 */
enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum {
  __pyx_e_4cuda_5ccuda_CU_PREFER_PTX = 0,
  __pyx_e_4cuda_5ccuda_CU_PREFER_BINARY
};

/* "cuda/ccuda.pxd":598
 * ctypedef CUjit_fallback_enum CUjit_fallback
 * 
 * cdef enum CUjit_cacheMode_enum:             # <<<<<<<<<<<<<<
 *     CU_JIT_CACHE_OPTION_NONE = 0
 *     CU_JIT_CACHE_OPTION_CG
 */
enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum {
  __pyx_e_4cuda_5ccuda_CU_JIT_CACHE_OPTION_NONE = 0,
  __pyx_e_4cuda_5ccuda_CU_JIT_CACHE_OPTION_CG,
  __pyx_e_4cuda_5ccuda_CU_JIT_CACHE_OPTION_CA
};

/* "cuda/ccuda.pxd":605
 * ctypedef CUjit_cacheMode_enum CUjit_cacheMode
 * 
 * cdef enum CUjitInputType_enum:             # <<<<<<<<<<<<<<
 *     CU_JIT_INPUT_CUBIN = 0
 *     CU_JIT_INPUT_PTX
 */
enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum {
  __pyx_e_4cuda_5ccuda_CU_JIT_INPUT_CUBIN = 0,
  __pyx_e_4cuda_5ccuda_CU_JIT_INPUT_PTX,
  __pyx_e_4cuda_5ccuda_CU_JIT_INPUT_FATBINARY,
  __pyx_e_4cuda_5ccuda_CU_JIT_INPUT_OBJECT,
  __pyx_e_4cuda_5ccuda_CU_JIT_INPUT_LIBRARY,
  __pyx_e_4cuda_5ccuda_CU_JIT_INPUT_NVVM,
  __pyx_e_4cuda_5ccuda_CU_JIT_NUM_INPUT_TYPES
};

/* "cuda/ccuda.pxd":621
 * ctypedef CUlinkState_st* CUlinkState
 * 
 * cdef enum CUgraphicsRegisterFlags_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_REGISTER_FLAGS_NONE = 0x00
 *     CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum {
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_NONE = 0x00,
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = 0x01,
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = 0x02,
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = 0x04,
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = 0x08
};

/* "cuda/ccuda.pxd":630
 * ctypedef CUgraphicsRegisterFlags_enum CUgraphicsRegisterFlags
 * 
 * cdef enum CUgraphicsMapResourceFlags_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = 0x00
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum {
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = 0x00,
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = 0x01,
  __pyx_e_4cuda_5ccuda_CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = 0x02
};

/* "cuda/ccuda.pxd":637
 * ctypedef CUgraphicsMapResourceFlags_enum CUgraphicsMapResourceFlags
 * 
 * cdef enum CUarray_cubemap_face_enum:             # <<<<<<<<<<<<<<
 *     CU_CUBEMAP_FACE_POSITIVE_X = 0x00
 *     CU_CUBEMAP_FACE_NEGATIVE_X = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum {
  __pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_POSITIVE_X = 0x00,
  __pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_NEGATIVE_X = 0x01,
  __pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_POSITIVE_Y = 0x02,
  __pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_NEGATIVE_Y = 0x03,
  __pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_POSITIVE_Z = 0x04,
  __pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_NEGATIVE_Z = 0x05
};

/* "cuda/ccuda.pxd":647
 * ctypedef CUarray_cubemap_face_enum CUarray_cubemap_face
 * 
 * cdef enum CUlimit_enum:             # <<<<<<<<<<<<<<
 *     CU_LIMIT_STACK_SIZE = 0x00
 *     CU_LIMIT_PRINTF_FIFO_SIZE = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUlimit_enum {
  __pyx_e_4cuda_5ccuda_CU_LIMIT_STACK_SIZE = 0x00,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_PRINTF_FIFO_SIZE = 0x01,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_MALLOC_HEAP_SIZE = 0x02,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = 0x03,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = 0x04,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_MAX_L2_FETCH_GRANULARITY = 0x05,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_PERSISTING_L2_CACHE_SIZE = 0x06,
  __pyx_e_4cuda_5ccuda_CU_LIMIT_MAX
};

/* "cuda/ccuda.pxd":659
 * ctypedef CUlimit_enum CUlimit
 * 
 * cdef enum CUresourcetype_enum:             # <<<<<<<<<<<<<<
 *     CU_RESOURCE_TYPE_ARRAY = 0x00
 *     CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum {
  __pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_ARRAY = 0x00,
  __pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = 0x01,
  __pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_LINEAR = 0x02,
  __pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_PITCH2D = 0x03
};

/* "cuda/ccuda.pxd":669
 * ctypedef void (*CUhostFn)(void* userData)
 * 
 * cdef enum CUaccessProperty_enum:             # <<<<<<<<<<<<<<
 *     CU_ACCESS_PROPERTY_NORMAL = 0
 *     CU_ACCESS_PROPERTY_STREAMING = 1
 */
enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum {
  __pyx_e_4cuda_5ccuda_CU_ACCESS_PROPERTY_NORMAL = 0,
  __pyx_e_4cuda_5ccuda_CU_ACCESS_PROPERTY_STREAMING = 1,
  __pyx_e_4cuda_5ccuda_CU_ACCESS_PROPERTY_PERSISTING = 2
};

/* "cuda/ccuda.pxd":723
 * ctypedef CUDA_HOST_NODE_PARAMS_v1 CUDA_HOST_NODE_PARAMS
 * 
 * cdef enum CUgraphNodeType_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_KERNEL = 0
 *     CU_GRAPH_NODE_TYPE_MEMCPY = 1
 */
enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum {
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_KERNEL = 0,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEMCPY = 1,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEMSET = 2,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_HOST = 3,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_GRAPH = 4,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EMPTY = 5,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_WAIT_EVENT = 6,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EVENT_RECORD = 7,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = 8,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = 9,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEM_ALLOC = 10,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEM_FREE = 11
};

/* "cuda/ccuda.pxd":739
 * ctypedef CUgraphNodeType_enum CUgraphNodeType
 * 
 * cdef enum CUsynchronizationPolicy_enum:             # <<<<<<<<<<<<<<
 *     CU_SYNC_POLICY_AUTO = 1
 *     CU_SYNC_POLICY_SPIN = 2
 */
enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum {
  __pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_AUTO = 1,
  __pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_SPIN = 2,
  __pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_YIELD = 3,
  __pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_BLOCKING_SYNC = 4
};

/* "cuda/ccuda.pxd":747
 * ctypedef CUsynchronizationPolicy_enum CUsynchronizationPolicy
 * 
 * cdef enum CUkernelNodeAttrID_enum:             # <<<<<<<<<<<<<<
 *     CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1
 *     CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = 2
 */
enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum {
  __pyx_e_4cuda_5ccuda_CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1,
  __pyx_e_4cuda_5ccuda_CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = 2
};

/* "cuda/ccuda.pxd":761
 * ctypedef CUkernelNodeAttrValue_v1 CUkernelNodeAttrValue
 * 
 * cdef enum CUstreamCaptureStatus_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_CAPTURE_STATUS_NONE = 0
 *     CU_STREAM_CAPTURE_STATUS_ACTIVE = 1
 */
enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_STATUS_NONE = 0,
  __pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_STATUS_ACTIVE = 1,
  __pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_STATUS_INVALIDATED = 2
};

/* "cuda/ccuda.pxd":768
 * ctypedef CUstreamCaptureStatus_enum CUstreamCaptureStatus
 * 
 * cdef enum CUstreamCaptureMode_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_CAPTURE_MODE_GLOBAL = 0
 *     CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = 1
 */
enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_MODE_GLOBAL = 0,
  __pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = 1,
  __pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_MODE_RELAXED = 2
};

/* "cuda/ccuda.pxd":775
 * ctypedef CUstreamCaptureMode_enum CUstreamCaptureMode
 * 
 * cdef enum CUstreamAttrID_enum:             # <<<<<<<<<<<<<<
 *     CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1
 *     CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = 3
 */
enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum {
  __pyx_e_4cuda_5ccuda_CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1,
  __pyx_e_4cuda_5ccuda_CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = 3
};

/* "cuda/ccuda.pxd":789
 * ctypedef CUstreamAttrValue_v1 CUstreamAttrValue
 * 
 * cdef enum CUdriverProcAddress_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_GET_PROC_ADDRESS_DEFAULT = 0
 *     CU_GET_PROC_ADDRESS_LEGACY_STREAM = 1 << 0
 */
enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum {

  /* "cuda/ccuda.pxd":792
 *     CU_GET_PROC_ADDRESS_DEFAULT = 0
 *     CU_GET_PROC_ADDRESS_LEGACY_STREAM = 1 << 0
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = 1 << 1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUdriverProcAddress_flags_enum CUdriverProcAddress_flags
 */
  __pyx_e_4cuda_5ccuda_CU_GET_PROC_ADDRESS_DEFAULT = 0,
  __pyx_e_4cuda_5ccuda_CU_GET_PROC_ADDRESS_LEGACY_STREAM = (1 << 0),
  __pyx_e_4cuda_5ccuda_CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = (1 << 1)
};

/* "cuda/ccuda.pxd":796
 * ctypedef CUdriverProcAddress_flags_enum CUdriverProcAddress_flags
 * 
 * cdef enum CUexecAffinityType_enum:             # <<<<<<<<<<<<<<
 *     CU_EXEC_AFFINITY_TYPE_SM_COUNT = 0
 *     CU_EXEC_AFFINITY_TYPE_MAX
 */
enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum {
  __pyx_e_4cuda_5ccuda_CU_EXEC_AFFINITY_TYPE_SM_COUNT = 0,
  __pyx_e_4cuda_5ccuda_CU_EXEC_AFFINITY_TYPE_MAX
};

/* "cuda/ccuda.pxd":820
 * ctypedef CUexecAffinityParam_v1 CUexecAffinityParam
 * 
 * cdef enum cudaError_enum:             # <<<<<<<<<<<<<<
 *     CUDA_SUCCESS = 0
 *     CUDA_ERROR_INVALID_VALUE = 1
 */
enum __pyx_t_4cuda_5ccuda_cudaError_enum {
  __pyx_e_4cuda_5ccuda_CUDA_SUCCESS = 0,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_VALUE = 1,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_OUT_OF_MEMORY = 2,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_INITIALIZED = 3,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_DEINITIALIZED = 4,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_DISABLED = 5,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_NOT_INITIALIZED = 6,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_ALREADY_STARTED = 7,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_ALREADY_STOPPED = 8,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STUB_LIBRARY = 34,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NO_DEVICE = 0x64,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_DEVICE = 0x65,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_DEVICE_NOT_LICENSED = 0x66,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_IMAGE = 0xC8,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_CONTEXT = 0xC9,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_CONTEXT_ALREADY_CURRENT = 0xCA,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MAP_FAILED = 0xCD,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_UNMAP_FAILED = 0xCE,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ARRAY_IS_MAPPED = 0xCF,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ALREADY_MAPPED = 0xD0,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NO_BINARY_FOR_GPU = 0xD1,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ALREADY_ACQUIRED = 0xD2,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_MAPPED = 0xD3,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_MAPPED_AS_ARRAY = 0xD4,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_MAPPED_AS_POINTER = 0xD5,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ECC_UNCORRECTABLE = 0xD6,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_UNSUPPORTED_LIMIT = 0xD7,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_CONTEXT_ALREADY_IN_USE = 0xD8,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = 0xD9,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_PTX = 0xDA,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = 0xDB,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NVLINK_UNCORRECTABLE = 0xDC,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_JIT_COMPILER_NOT_FOUND = 0xDD,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_UNSUPPORTED_PTX_VERSION = 0xDE,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_JIT_COMPILATION_DISABLED = 0xDF,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = 0xE0,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_SOURCE = 0x12C,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_FILE_NOT_FOUND = 0x12D,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = 0x12E,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = 0x12F,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_OPERATING_SYSTEM = 0x130,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_HANDLE = 0x190,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ILLEGAL_STATE = 0x191,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND = 0x1F4,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_READY = 0x258,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ILLEGAL_ADDRESS = 0x2BC,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = 0x2BD,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_TIMEOUT = 0x2BE,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = 0x2BF,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = 0x2C0,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = 0x2C1,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = 0x2C4,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_CONTEXT_IS_DESTROYED = 0x2C5,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ASSERT = 0x2C6,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_TOO_MANY_PEERS = 0x2C7,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = 0x2C8,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = 0x2C9,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_HARDWARE_STACK_ERROR = 0x2CA,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_ILLEGAL_INSTRUCTION = 0x2CB,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MISALIGNED_ADDRESS = 0x2CC,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_ADDRESS_SPACE = 0x2CD,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_PC = 0x2CE,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_FAILED = 0x2CF,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = 0x2D0,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_PERMITTED = 0x320,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_SUPPORTED = 0x321,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_SYSTEM_NOT_READY = 0x322,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = 0x323,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = 0x324,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_CONNECTION_FAILED = 0x325,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_RPC_FAILURE = 0x326,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_SERVER_NOT_READY = 0x327,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = 0x328,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = 0x329,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = 0x384,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = 0x385,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_MERGE = 0x386,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = 0x387,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_UNJOINED = 0x388,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_ISOLATION = 0x389,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = 0x38A,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_CAPTURED_EVENT = 0x38B,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = 0x38C,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_TIMEOUT = 0x38D,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = 0x38E,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_EXTERNAL_DEVICE = 0x38F,
  __pyx_e_4cuda_5ccuda_CUDA_ERROR_UNKNOWN = 0x3E7
};

/* "cuda/ccuda.pxd":911
 * ctypedef cudaError_enum CUresult
 * 
 * cdef enum CUdevice_P2PAttribute_enum:             # <<<<<<<<<<<<<<
 *     CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = 0x01
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = 0x02
 */
enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum {
  __pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = 0x01,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = 0x02,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = 0x03,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = 0x04,
  __pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = 0x04
};

/* "cuda/ccuda.pxd":1101
 * ctypedef CUDA_TEXTURE_DESC_v1 CUDA_TEXTURE_DESC
 * 
 * cdef enum CUresourceViewFormat_enum:             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_NONE = 0x00
 *     CU_RES_VIEW_FORMAT_UINT_1X8 = 0x01
 */
enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum {
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_NONE = 0x00,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_1X8 = 0x01,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_2X8 = 0x02,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_4X8 = 0x03,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_1X8 = 0x04,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_2X8 = 0x05,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_4X8 = 0x06,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_1X16 = 0x07,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_2X16 = 0x08,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_4X16 = 0x09,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_1X16 = 0x0a,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_2X16 = 0x0b,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_4X16 = 0x0c,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_1X32 = 0x0d,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_2X32 = 0x0e,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_4X32 = 0x0f,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_1X32 = 0x10,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_2X32 = 0x11,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_4X32 = 0x12,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_1X16 = 0x13,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_2X16 = 0x14,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_4X16 = 0x15,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_1X32 = 0x16,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_2X32 = 0x17,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_4X32 = 0x18,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = 0x19,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = 0x1a,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = 0x1b,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = 0x1c,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SIGNED_BC4 = 0x1d,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = 0x1e,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SIGNED_BC5 = 0x1f,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = 0x20,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SIGNED_BC6H = 0x21,
  __pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = 0x22
};

/* "cuda/ccuda.pxd":1163
 * ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 CUDA_POINTER_ATTRIBUTE_P2P_TOKENS
 * 
 * cdef enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum:             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = 0x0
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum {
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = 0x0,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = 0x1,
  __pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = 0x3
};

/* "cuda/ccuda.pxd":1186
 * ctypedef CUDA_LAUNCH_PARAMS_v1 CUDA_LAUNCH_PARAMS
 * 
 * cdef enum CUexternalMemoryHandleType_enum:             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = 1
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = 2
 */
enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum {
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = 1,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = 2,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = 4,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = 5,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = 6,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = 7,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = 8
};

/* "cuda/ccuda.pxd":1238
 * ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC
 * 
 * cdef enum CUexternalSemaphoreHandleType_enum:             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = 1
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = 2
 */
enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum {
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = 1,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = 2,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = 4,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = 5,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = 6,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = 7,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = 8,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = 9,
  __pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = 10
};

/* "cuda/ccuda.pxd":1344
 * ctypedef CUmemGenericAllocationHandle_v1 CUmemGenericAllocationHandle
 * 
 * cdef enum CUmemAllocationHandleType_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_HANDLE_TYPE_NONE = 0x0
 *     CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_NONE = 0x0,
  __pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = 0x1,
  __pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_WIN32 = 0x2,
  __pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_WIN32_KMT = 0x4,
  __pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_MAX = 0x7FFFFFFF
};

/* "cuda/ccuda.pxd":1353
 * ctypedef CUmemAllocationHandleType_enum CUmemAllocationHandleType
 * 
 * cdef enum CUmemAccess_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_ACCESS_FLAGS_PROT_NONE = 0x0
 *     CU_MEM_ACCESS_FLAGS_PROT_READ = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_NONE = 0x0,
  __pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_READ = 0x1,
  __pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_READWRITE = 0x3,
  __pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_MAX = 0x7FFFFFFF
};

/* "cuda/ccuda.pxd":1361
 * ctypedef CUmemAccess_flags_enum CUmemAccess_flags
 * 
 * cdef enum CUmemLocationType_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_LOCATION_TYPE_INVALID = 0x0
 *     CU_MEM_LOCATION_TYPE_DEVICE = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_LOCATION_TYPE_INVALID = 0x0,
  __pyx_e_4cuda_5ccuda_CU_MEM_LOCATION_TYPE_DEVICE = 0x1,
  __pyx_e_4cuda_5ccuda_CU_MEM_LOCATION_TYPE_MAX = 0x7FFFFFFF
};

/* "cuda/ccuda.pxd":1368
 * ctypedef CUmemLocationType_enum CUmemLocationType
 * 
 * cdef enum CUmemAllocationType_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOCATION_TYPE_INVALID = 0x0
 *     CU_MEM_ALLOCATION_TYPE_PINNED = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_TYPE_INVALID = 0x0,
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_TYPE_PINNED = 0x1,
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_TYPE_MAX = 0x7FFFFFFF
};

/* "cuda/ccuda.pxd":1375
 * ctypedef CUmemAllocationType_enum CUmemAllocationType
 * 
 * cdef enum CUmemAllocationGranularity_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOC_GRANULARITY_MINIMUM = 0x0
 *     CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOC_GRANULARITY_MINIMUM = 0x0,
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = 0x1
};

/* "cuda/ccuda.pxd":1381
 * ctypedef CUmemAllocationGranularity_flags_enum CUmemAllocationGranularity_flags
 * 
 * cdef enum CUarraySparseSubresourceType_enum:             # <<<<<<<<<<<<<<
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL = 0
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = 1
 */
enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum {
  __pyx_e_4cuda_5ccuda_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL = 0,
  __pyx_e_4cuda_5ccuda_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = 1
};

/* "cuda/ccuda.pxd":1387
 * ctypedef CUarraySparseSubresourceType_enum CUarraySparseSubresourceType
 * 
 * cdef enum CUmemOperationType_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_OPERATION_TYPE_MAP = 1
 *     CU_MEM_OPERATION_TYPE_UNMAP = 2
 */
enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_OPERATION_TYPE_MAP = 1,
  __pyx_e_4cuda_5ccuda_CU_MEM_OPERATION_TYPE_UNMAP = 2
};

/* "cuda/ccuda.pxd":1393
 * ctypedef CUmemOperationType_enum CUmemOperationType
 * 
 * cdef enum CUmemHandleType_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_HANDLE_TYPE_GENERIC = 0
 * 
 */
enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_GENERIC = 0
};

/* "cuda/ccuda.pxd":1449
 * ctypedef CUmemLocation_v1 CUmemLocation
 * 
 * cdef enum CUmemAllocationCompType_enum:             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOCATION_COMP_NONE = 0x0
 *     CU_MEM_ALLOCATION_COMP_GENERIC = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum {
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_COMP_NONE = 0x0,
  __pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_COMP_GENERIC = 0x1
};

/* "cuda/ccuda.pxd":1480
 * ctypedef CUmemAccessDesc_v1 CUmemAccessDesc
 * 
 * cdef enum CUgraphExecUpdateResult_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_SUCCESS = 0x0
 *     CU_GRAPH_EXEC_UPDATE_ERROR = 0x1
 */
enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum {
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_SUCCESS = 0x0,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR = 0x1,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = 0x2,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = 0x3,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = 0x4,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = 0x5,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = 0x6,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = 0x7
};

/* "cuda/ccuda.pxd":1492
 * ctypedef CUgraphExecUpdateResult_enum CUgraphExecUpdateResult
 * 
 * cdef enum CUmemPool_attribute_enum:             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = 1
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC
 */
enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum {
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = 1,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_RELEASE_THRESHOLD,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_USED_MEM_CURRENT,
  __pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_USED_MEM_HIGH
};

/* "cuda/ccuda.pxd":1531
 * ctypedef CUDA_MEM_ALLOC_NODE_PARAMS_st CUDA_MEM_ALLOC_NODE_PARAMS
 * 
 * cdef enum CUgraphMem_attribute_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT
 *     CU_GRAPH_MEM_ATTR_USED_MEM_HIGH
 */
enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum {
  __pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT,
  __pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
};

/* "cuda/ccuda.pxd":1539
 * ctypedef CUgraphMem_attribute_enum CUgraphMem_attribute
 * 
 * cdef enum CUflushGPUDirectRDMAWritesOptions_enum:             # <<<<<<<<<<<<<<
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = 1<<0
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = 1<<1
 */
enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum {

  /* "cuda/ccuda.pxd":1541
 * cdef enum CUflushGPUDirectRDMAWritesOptions_enum:
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = 1<<0
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = 1<<1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUflushGPUDirectRDMAWritesOptions_enum CUflushGPUDirectRDMAWritesOptions
 */
  __pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = (1 << 0),
  __pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = (1 << 1)
};

/* "cuda/ccuda.pxd":1545
 * ctypedef CUflushGPUDirectRDMAWritesOptions_enum CUflushGPUDirectRDMAWritesOptions
 * 
 * cdef enum CUGPUDirectRDMAWritesOrdering_enum:             # <<<<<<<<<<<<<<
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = 0
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = 100
 */
enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum {
  __pyx_e_4cuda_5ccuda_CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = 0,
  __pyx_e_4cuda_5ccuda_CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = 0x64,
  __pyx_e_4cuda_5ccuda_CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = 0xC8
};

/* "cuda/ccuda.pxd":1552
 * ctypedef CUGPUDirectRDMAWritesOrdering_enum CUGPUDirectRDMAWritesOrdering
 * 
 * cdef enum CUflushGPUDirectRDMAWritesScope_enum:             # <<<<<<<<<<<<<<
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER = 100
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = 200
 */
enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum {
  __pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER = 0x64,
  __pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = 0xC8
};

/* "cuda/ccuda.pxd":1558
 * ctypedef CUflushGPUDirectRDMAWritesScope_enum CUflushGPUDirectRDMAWritesScope
 * 
 * cdef enum CUflushGPUDirectRDMAWritesTarget_enum:             # <<<<<<<<<<<<<<
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = 0
 * 
 */
enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum {
  __pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = 0
};

/* "cuda/ccuda.pxd":1563
 * ctypedef CUflushGPUDirectRDMAWritesTarget_enum CUflushGPUDirectRDMAWritesTarget
 * 
 * cdef enum CUgraphDebugDot_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = 1<<0
 *     CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = 1<<1
 */
enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum {

  /* "cuda/ccuda.pxd":1576
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = 1<<10
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = 1<<11
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = 1<<12             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUgraphDebugDot_flags_enum CUgraphDebugDot_flags
 */
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = (1 << 0),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = (1 << 1),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = (1 << 2),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = (1 << 3),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = (1 << 4),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = (1 << 5),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = (1 << 6),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = (1 << 7),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = (1 << 8),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = (1 << 9),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = (1 << 10),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = (1 << 11),
  __pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = (1 << 12)
};

/* "cuda/ccuda.pxd":1580
 * ctypedef CUgraphDebugDot_flags_enum CUgraphDebugDot_flags
 * 
 * cdef enum CUuserObject_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = 1
 * 
 */
enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = 1
};

/* "cuda/ccuda.pxd":1585
 * ctypedef CUuserObject_flags_enum CUuserObject_flags
 * 
 * cdef enum CUuserObjectRetain_flags_enum:             # <<<<<<<<<<<<<<
 *     CU_GRAPH_USER_OBJECT_MOVE = 1
 * 
 */
enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum {
  __pyx_e_4cuda_5ccuda_CU_GRAPH_USER_OBJECT_MOVE = 1
};

/* "cuda/ccuda.pxd":1590
 * ctypedef CUuserObjectRetain_flags_enum CUuserObjectRetain_flags
 * 
 * cdef enum CUgraphInstantiate_flags_enum:             # <<<<<<<<<<<<<<
 *     CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH = 1
 * 
 */
enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum {
  __pyx_e_4cuda_5ccuda_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH = 1
};

/* "cuda/ccuda.pxd":2295
 * cdef CUresult cuGetExportTable(const void** ppExportTable, const CUuuid* pExportTableId) nogil except ?CUDA_ERROR_NOT_FOUND
 * 
 * cdef enum: CUDA_VERSION = 11050             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_IPC_HANDLE_SIZE = 64
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_VERSION = 0x2B2A
};

/* "cuda/ccuda.pxd":2297
 * cdef enum: CUDA_VERSION = 11050
 * 
 * cdef enum: CU_IPC_HANDLE_SIZE = 64             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_STREAM_LEGACY = 0x1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_IPC_HANDLE_SIZE = 64
};

/* "cuda/ccuda.pxd":2299
 * cdef enum: CU_IPC_HANDLE_SIZE = 64
 * 
 * cdef enum: CU_STREAM_LEGACY = 0x1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_STREAM_PER_THREAD = 0x2
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_STREAM_LEGACY = 0x1
};

/* "cuda/ccuda.pxd":2301
 * cdef enum: CU_STREAM_LEGACY = 0x1
 * 
 * cdef enum: CU_STREAM_PER_THREAD = 0x2             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTALLOC_PORTABLE = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_STREAM_PER_THREAD = 0x2
};

/* "cuda/ccuda.pxd":2303
 * cdef enum: CU_STREAM_PER_THREAD = 0x2
 * 
 * cdef enum: CU_MEMHOSTALLOC_PORTABLE = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTALLOC_DEVICEMAP = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTALLOC_PORTABLE = 0x01
};

/* "cuda/ccuda.pxd":2305
 * cdef enum: CU_MEMHOSTALLOC_PORTABLE = 0x01
 * 
 * cdef enum: CU_MEMHOSTALLOC_DEVICEMAP = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTALLOC_WRITECOMBINED = 0x04
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTALLOC_DEVICEMAP = 0x02
};

/* "cuda/ccuda.pxd":2307
 * cdef enum: CU_MEMHOSTALLOC_DEVICEMAP = 0x02
 * 
 * cdef enum: CU_MEMHOSTALLOC_WRITECOMBINED = 0x04             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTREGISTER_PORTABLE = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTALLOC_WRITECOMBINED = 0x04
};

/* "cuda/ccuda.pxd":2309
 * cdef enum: CU_MEMHOSTALLOC_WRITECOMBINED = 0x04
 * 
 * cdef enum: CU_MEMHOSTREGISTER_PORTABLE = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTREGISTER_DEVICEMAP = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_PORTABLE = 0x01
};

/* "cuda/ccuda.pxd":2311
 * cdef enum: CU_MEMHOSTREGISTER_PORTABLE = 0x01
 * 
 * cdef enum: CU_MEMHOSTREGISTER_DEVICEMAP = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTREGISTER_IOMEMORY = 0x04
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_DEVICEMAP = 0x02
};

/* "cuda/ccuda.pxd":2313
 * cdef enum: CU_MEMHOSTREGISTER_DEVICEMAP = 0x02
 * 
 * cdef enum: CU_MEMHOSTREGISTER_IOMEMORY = 0x04             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEMHOSTREGISTER_READ_ONLY = 0x08
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_IOMEMORY = 0x04
};

/* "cuda/ccuda.pxd":2315
 * cdef enum: CU_MEMHOSTREGISTER_IOMEMORY = 0x04
 * 
 * cdef enum: CU_MEMHOSTREGISTER_READ_ONLY = 0x08             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = 0x1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_READ_ONLY = 0x08
};

/* "cuda/ccuda.pxd":2317
 * cdef enum: CU_MEMHOSTREGISTER_READ_ONLY = 0x08
 * 
 * cdef enum: CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = 0x1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_EXTERNAL_MEMORY_DEDICATED = 0x1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = 0x1
};

/* "cuda/ccuda.pxd":2319
 * cdef enum: CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = 0x1
 * 
 * cdef enum: CUDA_EXTERNAL_MEMORY_DEDICATED = 0x1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_DEDICATED = 0x1
};

/* "cuda/ccuda.pxd":2321
 * cdef enum: CUDA_EXTERNAL_MEMORY_DEDICATED = 0x1
 * 
 * cdef enum: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = 0x01
};

/* "cuda/ccuda.pxd":2323
 * cdef enum: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = 0x01
 * 
 * cdef enum: CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_NVSCISYNC_ATTR_SIGNAL = 0x1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = 0x02
};

/* "cuda/ccuda.pxd":2325
 * cdef enum: CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = 0x02
 * 
 * cdef enum: CUDA_NVSCISYNC_ATTR_SIGNAL = 0x1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_NVSCISYNC_ATTR_WAIT = 0x2
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_NVSCISYNC_ATTR_SIGNAL = 0x1
};

/* "cuda/ccuda.pxd":2327
 * cdef enum: CUDA_NVSCISYNC_ATTR_SIGNAL = 0x1
 * 
 * cdef enum: CUDA_NVSCISYNC_ATTR_WAIT = 0x2             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_MEM_CREATE_USAGE_TILE_POOL = 0x1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_NVSCISYNC_ATTR_WAIT = 0x2
};

/* "cuda/ccuda.pxd":2329
 * cdef enum: CUDA_NVSCISYNC_ATTR_WAIT = 0x2
 * 
 * cdef enum: CU_MEM_CREATE_USAGE_TILE_POOL = 0x1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_MEM_CREATE_USAGE_TILE_POOL = 0x1
};

/* "cuda/ccuda.pxd":2331
 * cdef enum: CU_MEM_CREATE_USAGE_TILE_POOL = 0x1
 * 
 * cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = 0x01
};

/* "cuda/ccuda.pxd":2333
 * cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = 0x01
 * 
 * cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_LAYERED = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = 0x02
};

/* "cuda/ccuda.pxd":2335
 * cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = 0x02
 * 
 * cdef enum: CUDA_ARRAY3D_LAYERED = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_2DARRAY = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_LAYERED = 0x01
};

/* "cuda/ccuda.pxd":2337
 * cdef enum: CUDA_ARRAY3D_LAYERED = 0x01
 * 
 * cdef enum: CUDA_ARRAY3D_2DARRAY = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_SURFACE_LDST = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_2DARRAY = 0x01
};

/* "cuda/ccuda.pxd":2339
 * cdef enum: CUDA_ARRAY3D_2DARRAY = 0x01
 * 
 * cdef enum: CUDA_ARRAY3D_SURFACE_LDST = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_CUBEMAP = 0x04
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_SURFACE_LDST = 0x02
};

/* "cuda/ccuda.pxd":2341
 * cdef enum: CUDA_ARRAY3D_SURFACE_LDST = 0x02
 * 
 * cdef enum: CUDA_ARRAY3D_CUBEMAP = 0x04             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_TEXTURE_GATHER = 0x08
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_CUBEMAP = 0x04
};

/* "cuda/ccuda.pxd":2343
 * cdef enum: CUDA_ARRAY3D_CUBEMAP = 0x04
 * 
 * cdef enum: CUDA_ARRAY3D_TEXTURE_GATHER = 0x08             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_DEPTH_TEXTURE = 0x10
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_TEXTURE_GATHER = 0x08
};

/* "cuda/ccuda.pxd":2345
 * cdef enum: CUDA_ARRAY3D_TEXTURE_GATHER = 0x08
 * 
 * cdef enum: CUDA_ARRAY3D_DEPTH_TEXTURE = 0x10             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_COLOR_ATTACHMENT = 0x20
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_DEPTH_TEXTURE = 0x10
};

/* "cuda/ccuda.pxd":2347
 * cdef enum: CUDA_ARRAY3D_DEPTH_TEXTURE = 0x10
 * 
 * cdef enum: CUDA_ARRAY3D_COLOR_ATTACHMENT = 0x20             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CUDA_ARRAY3D_SPARSE = 0x40
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_COLOR_ATTACHMENT = 0x20
};

/* "cuda/ccuda.pxd":2349
 * cdef enum: CUDA_ARRAY3D_COLOR_ATTACHMENT = 0x20
 * 
 * cdef enum: CUDA_ARRAY3D_SPARSE = 0x40             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_TRSA_OVERRIDE_FORMAT = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_SPARSE = 0x40
};

/* "cuda/ccuda.pxd":2351
 * cdef enum: CUDA_ARRAY3D_SPARSE = 0x40
 * 
 * cdef enum: CU_TRSA_OVERRIDE_FORMAT = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_TRSF_READ_AS_INTEGER = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_TRSA_OVERRIDE_FORMAT = 0x01
};

/* "cuda/ccuda.pxd":2353
 * cdef enum: CU_TRSA_OVERRIDE_FORMAT = 0x01
 * 
 * cdef enum: CU_TRSF_READ_AS_INTEGER = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_TRSF_NORMALIZED_COORDINATES = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_TRSF_READ_AS_INTEGER = 0x01
};

/* "cuda/ccuda.pxd":2355
 * cdef enum: CU_TRSF_READ_AS_INTEGER = 0x01
 * 
 * cdef enum: CU_TRSF_NORMALIZED_COORDINATES = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_TRSF_SRGB = 0x10
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_TRSF_NORMALIZED_COORDINATES = 0x02
};

/* "cuda/ccuda.pxd":2357
 * cdef enum: CU_TRSF_NORMALIZED_COORDINATES = 0x02
 * 
 * cdef enum: CU_TRSF_SRGB = 0x10             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = 0x20
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_TRSF_SRGB = 0x10
};

/* "cuda/ccuda.pxd":2359
 * cdef enum: CU_TRSF_SRGB = 0x10
 * 
 * cdef enum: CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = 0x20             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_LAUNCH_PARAM_END = 0x00
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = 0x20
};

/* "cuda/ccuda.pxd":2361
 * cdef enum: CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = 0x20
 * 
 * cdef enum: CU_LAUNCH_PARAM_END = 0x00             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_LAUNCH_PARAM_BUFFER_POINTER = 0x01
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_LAUNCH_PARAM_END = 0x00
};

/* "cuda/ccuda.pxd":2363
 * cdef enum: CU_LAUNCH_PARAM_END = 0x00
 * 
 * cdef enum: CU_LAUNCH_PARAM_BUFFER_POINTER = 0x01             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_LAUNCH_PARAM_BUFFER_SIZE = 0x02
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_LAUNCH_PARAM_BUFFER_POINTER = 0x01
};

/* "cuda/ccuda.pxd":2365
 * cdef enum: CU_LAUNCH_PARAM_BUFFER_POINTER = 0x01
 * 
 * cdef enum: CU_LAUNCH_PARAM_BUFFER_SIZE = 0x02             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_PARAM_TR_DEFAULT = -1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_LAUNCH_PARAM_BUFFER_SIZE = 0x02
};

/* "cuda/ccuda.pxd":2367
 * cdef enum: CU_LAUNCH_PARAM_BUFFER_SIZE = 0x02
 * 
 * cdef enum: CU_PARAM_TR_DEFAULT = -1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_DEVICE_CPU = -1
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_PARAM_TR_DEFAULT = -1L
};

/* "cuda/ccuda.pxd":2369
 * cdef enum: CU_PARAM_TR_DEFAULT = -1
 * 
 * cdef enum: CU_DEVICE_CPU = -1             # <<<<<<<<<<<<<<
 * 
 * cdef enum: CU_DEVICE_INVALID = -2
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_DEVICE_CPU = -1L
};

/* "cuda/ccuda.pxd":2371
 * cdef enum: CU_DEVICE_CPU = -1
 * 
 * cdef enum: CU_DEVICE_INVALID = -2             # <<<<<<<<<<<<<<
 */
enum  {
  __pyx_e_4cuda_5ccuda_CU_DEVICE_INVALID = -2L
};

/* "cuda/ccuda.pxd":26
 *     cdef struct CUctx_st:
 *         pass
 * ctypedef CUctx_st* CUcontext             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUctx_st *__pyx_t_4cuda_5ccuda_CUcontext;

/* "cuda/ccuda.pxd":31
 *     cdef struct CUmod_st:
 *         pass
 * ctypedef CUmod_st* CUmodule             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUmod_st *__pyx_t_4cuda_5ccuda_CUmodule;

/* "cuda/ccuda.pxd":36
 *     cdef struct CUfunc_st:
 *         pass
 * ctypedef CUfunc_st* CUfunction             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUfunc_st *__pyx_t_4cuda_5ccuda_CUfunction;

/* "cuda/ccuda.pxd":41
 *     cdef struct CUarray_st:
 *         pass
 * ctypedef CUarray_st* CUarray             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUarray_st *__pyx_t_4cuda_5ccuda_CUarray;

/* "cuda/ccuda.pxd":46
 *     cdef struct CUmipmappedArray_st:
 *         pass
 * ctypedef CUmipmappedArray_st* CUmipmappedArray             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUmipmappedArray_st *__pyx_t_4cuda_5ccuda_CUmipmappedArray;

/* "cuda/ccuda.pxd":51
 *     cdef struct CUtexref_st:
 *         pass
 * ctypedef CUtexref_st* CUtexref             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUtexref_st *__pyx_t_4cuda_5ccuda_CUtexref;

/* "cuda/ccuda.pxd":56
 *     cdef struct CUsurfref_st:
 *         pass
 * ctypedef CUsurfref_st* CUsurfref             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUsurfref_st *__pyx_t_4cuda_5ccuda_CUsurfref;

/* "cuda/ccuda.pxd":61
 *     cdef struct CUevent_st:
 *         pass
 * ctypedef CUevent_st* CUevent             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUevent_st *__pyx_t_4cuda_5ccuda_CUevent;

/* "cuda/ccuda.pxd":66
 *     cdef struct CUstream_st:
 *         pass
 * ctypedef CUstream_st* CUstream             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUstream_st *__pyx_t_4cuda_5ccuda_CUstream;

/* "cuda/ccuda.pxd":71
 *     cdef struct CUgraphicsResource_st:
 *         pass
 * ctypedef CUgraphicsResource_st* CUgraphicsResource             # <<<<<<<<<<<<<<
 * 
 * ctypedef unsigned long long CUtexObject_v1
 */
typedef struct CUgraphicsResource_st *__pyx_t_4cuda_5ccuda_CUgraphicsResource;

/* "cuda/ccuda.pxd":84
 *     cdef struct CUextMemory_st:
 *         pass
 * ctypedef CUextMemory_st* CUexternalMemory             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUextMemory_st *__pyx_t_4cuda_5ccuda_CUexternalMemory;

/* "cuda/ccuda.pxd":89
 *     cdef struct CUextSemaphore_st:
 *         pass
 * ctypedef CUextSemaphore_st* CUexternalSemaphore             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUextSemaphore_st *__pyx_t_4cuda_5ccuda_CUexternalSemaphore;

/* "cuda/ccuda.pxd":94
 *     cdef struct CUgraph_st:
 *         pass
 * ctypedef CUgraph_st* CUgraph             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUgraph_st *__pyx_t_4cuda_5ccuda_CUgraph;

/* "cuda/ccuda.pxd":99
 *     cdef struct CUgraphNode_st:
 *         pass
 * ctypedef CUgraphNode_st* CUgraphNode             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUgraphNode_st *__pyx_t_4cuda_5ccuda_CUgraphNode;

/* "cuda/ccuda.pxd":104
 *     cdef struct CUgraphExec_st:
 *         pass
 * ctypedef CUgraphExec_st* CUgraphExec             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUgraphExec_st *__pyx_t_4cuda_5ccuda_CUgraphExec;

/* "cuda/ccuda.pxd":109
 *     cdef struct CUmemPoolHandle_st:
 *         pass
 * ctypedef CUmemPoolHandle_st* CUmemoryPool             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef struct CUmemPoolHandle_st *__pyx_t_4cuda_5ccuda_CUmemoryPool;

/* "cuda/ccuda.pxd":114
 *     cdef struct CUuserObject_st:
 *         pass
 * ctypedef CUuserObject_st* CUuserObject             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUuuid_st:
 */
typedef struct CUuserObject_st *__pyx_t_4cuda_5ccuda_CUuserObject;

/* "cuda/ccuda.pxd":116
 * ctypedef CUuserObject_st* CUuserObject
 * 
 * cdef struct CUuuid_st:             # <<<<<<<<<<<<<<
 *     char bytes[16]
 * 
 */
struct __pyx_t_4cuda_5ccuda_CUuuid_st {
  char bytes[16];
};

/* "cuda/ccuda.pxd":119
 *     char bytes[16]
 * 
 * ctypedef CUuuid_st CUuuid             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUipcEventHandle_st:
 */
typedef struct __pyx_t_4cuda_5ccuda_CUuuid_st __pyx_t_4cuda_5ccuda_CUuuid;

/* "cuda/ccuda.pxd":121
 * ctypedef CUuuid_st CUuuid
 * 
 * cdef struct CUipcEventHandle_st:             # <<<<<<<<<<<<<<
 *     char reserved[64]
 * 
 */
struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st {
  char reserved[64];
};

/* "cuda/ccuda.pxd":124
 *     char reserved[64]
 * 
 * ctypedef CUipcEventHandle_st CUipcEventHandle_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUipcEventHandle_v1 CUipcEventHandle
 */
typedef struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st __pyx_t_4cuda_5ccuda_CUipcEventHandle_v1;

/* "cuda/ccuda.pxd":126
 * ctypedef CUipcEventHandle_st CUipcEventHandle_v1
 * 
 * ctypedef CUipcEventHandle_v1 CUipcEventHandle             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUipcMemHandle_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUipcEventHandle_v1 __pyx_t_4cuda_5ccuda_CUipcEventHandle;

/* "cuda/ccuda.pxd":128
 * ctypedef CUipcEventHandle_v1 CUipcEventHandle
 * 
 * cdef struct CUipcMemHandle_st:             # <<<<<<<<<<<<<<
 *     char reserved[64]
 * 
 */
struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st {
  char reserved[64];
};

/* "cuda/ccuda.pxd":131
 *     char reserved[64]
 * 
 * ctypedef CUipcMemHandle_st CUipcMemHandle_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUipcMemHandle_v1 CUipcMemHandle
 */
typedef struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st __pyx_t_4cuda_5ccuda_CUipcMemHandle_v1;

/* "cuda/ccuda.pxd":133
 * ctypedef CUipcMemHandle_st CUipcMemHandle_v1
 * 
 * ctypedef CUipcMemHandle_v1 CUipcMemHandle             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUipcMem_flags_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUipcMemHandle_v1 __pyx_t_4cuda_5ccuda_CUipcMemHandle;

/* "cuda/ccuda.pxd":138
 *     CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = 0x1
 * 
 * ctypedef CUipcMem_flags_enum CUipcMem_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemAttach_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum __pyx_t_4cuda_5ccuda_CUipcMem_flags;

/* "cuda/ccuda.pxd":145
 *     CU_MEM_ATTACH_SINGLE = 0x4
 * 
 * ctypedef CUmemAttach_flags_enum CUmemAttach_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUctx_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags;

/* "cuda/ccuda.pxd":158
 *     CU_CTX_FLAGS_MASK = 0x1f
 * 
 * ctypedef CUctx_flags_enum CUctx_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstream_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum __pyx_t_4cuda_5ccuda_CUctx_flags;

/* "cuda/ccuda.pxd":164
 *     CU_STREAM_NON_BLOCKING = 0x1
 * 
 * ctypedef CUstream_flags_enum CUstream_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUevent_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum __pyx_t_4cuda_5ccuda_CUstream_flags;

/* "cuda/ccuda.pxd":172
 *     CU_EVENT_INTERPROCESS = 0x4
 * 
 * ctypedef CUevent_flags_enum CUevent_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUevent_record_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum __pyx_t_4cuda_5ccuda_CUevent_flags;

/* "cuda/ccuda.pxd":178
 *     CU_EVENT_RECORD_EXTERNAL = 0x1
 * 
 * ctypedef CUevent_record_flags_enum CUevent_record_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUevent_wait_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum __pyx_t_4cuda_5ccuda_CUevent_record_flags;

/* "cuda/ccuda.pxd":184
 *     CU_EVENT_WAIT_EXTERNAL = 0x1
 * 
 * ctypedef CUevent_wait_flags_enum CUevent_wait_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamWaitValue_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags;

/* "cuda/ccuda.pxd":193
 *     CU_STREAM_WAIT_VALUE_FLUSH = 1<<30
 * 
 * ctypedef CUstreamWaitValue_flags_enum CUstreamWaitValue_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamWriteValue_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags;

/* "cuda/ccuda.pxd":199
 *     CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = 0x1
 * 
 * ctypedef CUstreamWriteValue_flags_enum CUstreamWriteValue_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamBatchMemOpType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags;

/* "cuda/ccuda.pxd":208
 *     CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = 3
 * 
 * ctypedef CUstreamBatchMemOpType_enum CUstreamBatchMemOpType             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUstreamMemOpWaitValueParams_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType;

/* "cuda/ccuda.pxd":210
 * ctypedef CUstreamBatchMemOpType_enum CUstreamBatchMemOpType
 * 
 * cdef struct CUstreamMemOpWaitValueParams_st:             # <<<<<<<<<<<<<<
 *     CUstreamBatchMemOpType operation
 *     CUdeviceptr address
 */
struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st {
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType operation;
  __pyx_t_4cuda_5ccuda_CUdeviceptr address;
  __pyx_t_4cuda_5ccuda_cuuint64_t value64;
  unsigned int flags;
  __pyx_t_4cuda_5ccuda_CUdeviceptr alias;
};

/* "cuda/ccuda.pxd":217
 *     CUdeviceptr alias
 * 
 * cdef struct CUstreamMemOpWriteValueParams_st:             # <<<<<<<<<<<<<<
 *     CUstreamBatchMemOpType operation
 *     CUdeviceptr address
 */
struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st {
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType operation;
  __pyx_t_4cuda_5ccuda_CUdeviceptr address;
  __pyx_t_4cuda_5ccuda_cuuint64_t value64;
  unsigned int flags;
  __pyx_t_4cuda_5ccuda_CUdeviceptr alias;
};

/* "cuda/ccuda.pxd":224
 *     CUdeviceptr alias
 * 
 * cdef struct CUstreamMemOpFlushRemoteWritesParams_st:             # <<<<<<<<<<<<<<
 *     CUstreamBatchMemOpType operation
 *     unsigned int flags
 */
struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st {
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType operation;
  unsigned int flags;
};

/* "cuda/ccuda.pxd":228
 *     unsigned int flags
 * 
 * cdef union CUstreamBatchMemOpParams_union:             # <<<<<<<<<<<<<<
 *     CUstreamBatchMemOpType operation
 *     CUstreamMemOpWaitValueParams_st waitValue
 */
union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union {
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType operation;
  struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st waitValue;
  struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st writeValue;
  struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st flushRemoteWrites;
  __pyx_t_4cuda_5ccuda_cuuint64_t pad[6];
};

/* "cuda/ccuda.pxd":235
 *     cuuint64_t pad[6]
 * 
 * ctypedef CUstreamBatchMemOpParams_union CUstreamBatchMemOpParams_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUstreamBatchMemOpParams_v1 CUstreamBatchMemOpParams
 */
typedef union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_v1;

/* "cuda/ccuda.pxd":237
 * ctypedef CUstreamBatchMemOpParams_union CUstreamBatchMemOpParams_v1
 * 
 * ctypedef CUstreamBatchMemOpParams_v1 CUstreamBatchMemOpParams             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUoccupancy_flags_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_v1 __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams;

/* "cuda/ccuda.pxd":243
 *     CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = 0x1
 * 
 * ctypedef CUoccupancy_flags_enum CUoccupancy_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamUpdateCaptureDependencies_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags;

/* "cuda/ccuda.pxd":249
 *     CU_STREAM_SET_CAPTURE_DEPENDENCIES = 0x1
 * 
 * ctypedef CUstreamUpdateCaptureDependencies_flags_enum CUstreamUpdateCaptureDependencies_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUarray_format_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags;

/* "cuda/ccuda.pxd":288
 *     CU_AD_FORMAT_BC7_UNORM_SRGB = 0x9e
 * 
 * ctypedef CUarray_format_enum CUarray_format             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUaddress_mode_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUarray_format_enum __pyx_t_4cuda_5ccuda_CUarray_format;

/* "cuda/ccuda.pxd":296
 *     CU_TR_ADDRESS_MODE_BORDER = 3
 * 
 * ctypedef CUaddress_mode_enum CUaddress_mode             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUfilter_mode_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum __pyx_t_4cuda_5ccuda_CUaddress_mode;

/* "cuda/ccuda.pxd":302
 *     CU_TR_FILTER_MODE_LINEAR = 1
 * 
 * ctypedef CUfilter_mode_enum CUfilter_mode             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUdevice_attribute_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum __pyx_t_4cuda_5ccuda_CUfilter_mode;

/* "cuda/ccuda.pxd":432
 *     CU_DEVICE_ATTRIBUTE_MAX
 * 
 * ctypedef CUdevice_attribute_enum CUdevice_attribute             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUdevprop_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum __pyx_t_4cuda_5ccuda_CUdevice_attribute;

/* "cuda/ccuda.pxd":434
 * ctypedef CUdevice_attribute_enum CUdevice_attribute
 * 
 * cdef struct CUdevprop_st:             # <<<<<<<<<<<<<<
 *     int maxThreadsPerBlock
 *     int maxThreadsDim[3]
 */
struct __pyx_t_4cuda_5ccuda_CUdevprop_st {
  int maxThreadsPerBlock;
  int maxThreadsDim[3];
  int maxGridSize[3];
  int sharedMemPerBlock;
  int totalConstantMemory;
  int SIMDWidth;
  int memPitch;
  int regsPerBlock;
  int clockRate;
  int textureAlign;
};

/* "cuda/ccuda.pxd":446
 *     int textureAlign
 * 
 * ctypedef CUdevprop_st CUdevprop_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUdevprop_v1 CUdevprop
 */
typedef struct __pyx_t_4cuda_5ccuda_CUdevprop_st __pyx_t_4cuda_5ccuda_CUdevprop_v1;

/* "cuda/ccuda.pxd":448
 * ctypedef CUdevprop_st CUdevprop_v1
 * 
 * ctypedef CUdevprop_v1 CUdevprop             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUpointer_attribute_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUdevprop_v1 __pyx_t_4cuda_5ccuda_CUdevprop;

/* "cuda/ccuda.pxd":469
 *     CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = 17
 * 
 * ctypedef CUpointer_attribute_enum CUpointer_attribute             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUfunction_attribute_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum __pyx_t_4cuda_5ccuda_CUpointer_attribute;

/* "cuda/ccuda.pxd":484
 *     CU_FUNC_ATTRIBUTE_MAX
 * 
 * ctypedef CUfunction_attribute_enum CUfunction_attribute             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUfunc_cache_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum __pyx_t_4cuda_5ccuda_CUfunction_attribute;

/* "cuda/ccuda.pxd":492
 *     CU_FUNC_CACHE_PREFER_EQUAL = 0x03
 * 
 * ctypedef CUfunc_cache_enum CUfunc_cache             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUsharedconfig_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum __pyx_t_4cuda_5ccuda_CUfunc_cache;

/* "cuda/ccuda.pxd":499
 *     CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = 0x02
 * 
 * ctypedef CUsharedconfig_enum CUsharedconfig             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUshared_carveout_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum __pyx_t_4cuda_5ccuda_CUsharedconfig;

/* "cuda/ccuda.pxd":506
 *     CU_SHAREDMEM_CARVEOUT_MAX_L1 = 0
 * 
 * ctypedef CUshared_carveout_enum CUshared_carveout             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemorytype_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum __pyx_t_4cuda_5ccuda_CUshared_carveout;

/* "cuda/ccuda.pxd":514
 *     CU_MEMORYTYPE_UNIFIED = 0x04
 * 
 * ctypedef CUmemorytype_enum CUmemorytype             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUcomputemode_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum __pyx_t_4cuda_5ccuda_CUmemorytype;

/* "cuda/ccuda.pxd":521
 *     CU_COMPUTEMODE_EXCLUSIVE_PROCESS = 3
 * 
 * ctypedef CUcomputemode_enum CUcomputemode             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmem_advise_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum __pyx_t_4cuda_5ccuda_CUcomputemode;

/* "cuda/ccuda.pxd":531
 *     CU_MEM_ADVISE_UNSET_ACCESSED_BY = 6
 * 
 * ctypedef CUmem_advise_enum CUmem_advise             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmem_range_attribute_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum __pyx_t_4cuda_5ccuda_CUmem_advise;

/* "cuda/ccuda.pxd":539
 *     CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = 4
 * 
 * ctypedef CUmem_range_attribute_enum CUmem_range_attribute             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUjit_option_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute;

/* "cuda/ccuda.pxd":569
 *     CU_JIT_NUM_OPTIONS
 * 
 * ctypedef CUjit_option_enum CUjit_option             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUjit_target_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUjit_option_enum __pyx_t_4cuda_5ccuda_CUjit_option;

/* "cuda/ccuda.pxd":590
 *     CU_TARGET_COMPUTE_86 = 86
 * 
 * ctypedef CUjit_target_enum CUjit_target             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUjit_fallback_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUjit_target_enum __pyx_t_4cuda_5ccuda_CUjit_target;

/* "cuda/ccuda.pxd":596
 *     CU_PREFER_BINARY
 * 
 * ctypedef CUjit_fallback_enum CUjit_fallback             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUjit_cacheMode_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum __pyx_t_4cuda_5ccuda_CUjit_fallback;

/* "cuda/ccuda.pxd":603
 *     CU_JIT_CACHE_OPTION_CA
 * 
 * ctypedef CUjit_cacheMode_enum CUjit_cacheMode             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUjitInputType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode;

/* "cuda/ccuda.pxd":614
 *     CU_JIT_NUM_INPUT_TYPES
 * 
 * ctypedef CUjitInputType_enum CUjitInputType             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "":
 */
typedef enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum __pyx_t_4cuda_5ccuda_CUjitInputType;

/* "cuda/ccuda.pxd":619
 *     cdef struct CUlinkState_st:
 *         pass
 * ctypedef CUlinkState_st* CUlinkState             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphicsRegisterFlags_enum:
 */
typedef struct CUlinkState_st *__pyx_t_4cuda_5ccuda_CUlinkState;

/* "cuda/ccuda.pxd":628
 *     CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = 0x08
 * 
 * ctypedef CUgraphicsRegisterFlags_enum CUgraphicsRegisterFlags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphicsMapResourceFlags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags;

/* "cuda/ccuda.pxd":635
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = 0x02
 * 
 * ctypedef CUgraphicsMapResourceFlags_enum CUgraphicsMapResourceFlags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUarray_cubemap_face_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags;

/* "cuda/ccuda.pxd":645
 *     CU_CUBEMAP_FACE_NEGATIVE_Z = 0x05
 * 
 * ctypedef CUarray_cubemap_face_enum CUarray_cubemap_face             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUlimit_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face;

/* "cuda/ccuda.pxd":657
 *     CU_LIMIT_MAX
 * 
 * ctypedef CUlimit_enum CUlimit             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUresourcetype_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUlimit_enum __pyx_t_4cuda_5ccuda_CUlimit;

/* "cuda/ccuda.pxd":665
 *     CU_RESOURCE_TYPE_PITCH2D = 0x03
 * 
 * ctypedef CUresourcetype_enum CUresourcetype             # <<<<<<<<<<<<<<
 * 
 * ctypedef void (*CUhostFn)(void* userData)
 */
typedef enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum __pyx_t_4cuda_5ccuda_CUresourcetype;

/* "cuda/ccuda.pxd":667
 * ctypedef CUresourcetype_enum CUresourcetype
 * 
 * ctypedef void (*CUhostFn)(void* userData)             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUaccessProperty_enum:
 */
typedef void (*__pyx_t_4cuda_5ccuda_CUhostFn)(void *);

/* "cuda/ccuda.pxd":674
 *     CU_ACCESS_PROPERTY_PERSISTING = 2
 * 
 * ctypedef CUaccessProperty_enum CUaccessProperty             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUaccessPolicyWindow_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum __pyx_t_4cuda_5ccuda_CUaccessProperty;

/* "cuda/ccuda.pxd":676
 * ctypedef CUaccessProperty_enum CUaccessProperty
 * 
 * cdef struct CUaccessPolicyWindow_st:             # <<<<<<<<<<<<<<
 *     void* base_ptr
 *     size_t num_bytes
 */
struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st {
  void *base_ptr;
  size_t num_bytes;
  float hitRatio;
  __pyx_t_4cuda_5ccuda_CUaccessProperty hitProp;
  __pyx_t_4cuda_5ccuda_CUaccessProperty missProp;
};

/* "cuda/ccuda.pxd":683
 *     CUaccessProperty missProp
 * 
 * ctypedef CUaccessPolicyWindow_st CUaccessPolicyWindow_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUaccessPolicyWindow_v1 CUaccessPolicyWindow
 */
typedef struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_v1;

/* "cuda/ccuda.pxd":685
 * ctypedef CUaccessPolicyWindow_st CUaccessPolicyWindow_v1
 * 
 * ctypedef CUaccessPolicyWindow_v1 CUaccessPolicyWindow             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_KERNEL_NODE_PARAMS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_v1 __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow;

/* "cuda/ccuda.pxd":687
 * ctypedef CUaccessPolicyWindow_v1 CUaccessPolicyWindow
 * 
 * cdef struct CUDA_KERNEL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUfunction func
 *     unsigned int gridDimX
 */
struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUfunction func;
  unsigned int gridDimX;
  unsigned int gridDimY;
  unsigned int gridDimZ;
  unsigned int blockDimX;
  unsigned int blockDimY;
  unsigned int blockDimZ;
  unsigned int sharedMemBytes;
  void **kernelParams;
  void **extra;
};

/* "cuda/ccuda.pxd":699
 *     void** extra
 * 
 * ctypedef CUDA_KERNEL_NODE_PARAMS_st CUDA_KERNEL_NODE_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_KERNEL_NODE_PARAMS_v1 CUDA_KERNEL_NODE_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_v1;

/* "cuda/ccuda.pxd":701
 * ctypedef CUDA_KERNEL_NODE_PARAMS_st CUDA_KERNEL_NODE_PARAMS_v1
 * 
 * ctypedef CUDA_KERNEL_NODE_PARAMS_v1 CUDA_KERNEL_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_MEMSET_NODE_PARAMS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS;

/* "cuda/ccuda.pxd":703
 * ctypedef CUDA_KERNEL_NODE_PARAMS_v1 CUDA_KERNEL_NODE_PARAMS
 * 
 * cdef struct CUDA_MEMSET_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUdeviceptr dst
 *     size_t pitch
 */
struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUdeviceptr dst;
  size_t pitch;
  unsigned int value;
  unsigned int elementSize;
  size_t width;
  size_t height;
};

/* "cuda/ccuda.pxd":711
 *     size_t height
 * 
 * ctypedef CUDA_MEMSET_NODE_PARAMS_st CUDA_MEMSET_NODE_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_MEMSET_NODE_PARAMS_v1 CUDA_MEMSET_NODE_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_v1;

/* "cuda/ccuda.pxd":713
 * ctypedef CUDA_MEMSET_NODE_PARAMS_st CUDA_MEMSET_NODE_PARAMS_v1
 * 
 * ctypedef CUDA_MEMSET_NODE_PARAMS_v1 CUDA_MEMSET_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_HOST_NODE_PARAMS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS;

/* "cuda/ccuda.pxd":715
 * ctypedef CUDA_MEMSET_NODE_PARAMS_v1 CUDA_MEMSET_NODE_PARAMS
 * 
 * cdef struct CUDA_HOST_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUhostFn fn
 *     void* userData
 */
struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUhostFn fn;
  void *userData;
};

/* "cuda/ccuda.pxd":719
 *     void* userData
 * 
 * ctypedef CUDA_HOST_NODE_PARAMS_st CUDA_HOST_NODE_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_HOST_NODE_PARAMS_v1 CUDA_HOST_NODE_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_v1;

/* "cuda/ccuda.pxd":721
 * ctypedef CUDA_HOST_NODE_PARAMS_st CUDA_HOST_NODE_PARAMS_v1
 * 
 * ctypedef CUDA_HOST_NODE_PARAMS_v1 CUDA_HOST_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphNodeType_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS;

/* "cuda/ccuda.pxd":737
 *     CU_GRAPH_NODE_TYPE_MEM_FREE = 11
 * 
 * ctypedef CUgraphNodeType_enum CUgraphNodeType             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUsynchronizationPolicy_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum __pyx_t_4cuda_5ccuda_CUgraphNodeType;

/* "cuda/ccuda.pxd":745
 *     CU_SYNC_POLICY_BLOCKING_SYNC = 4
 * 
 * ctypedef CUsynchronizationPolicy_enum CUsynchronizationPolicy             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUkernelNodeAttrID_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy;

/* "cuda/ccuda.pxd":751
 *     CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = 2
 * 
 * ctypedef CUkernelNodeAttrID_enum CUkernelNodeAttrID             # <<<<<<<<<<<<<<
 * 
 * cdef union CUkernelNodeAttrValue_union:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID;

/* "cuda/ccuda.pxd":753
 * ctypedef CUkernelNodeAttrID_enum CUkernelNodeAttrID
 * 
 * cdef union CUkernelNodeAttrValue_union:             # <<<<<<<<<<<<<<
 *     CUaccessPolicyWindow accessPolicyWindow
 *     int cooperative
 */
union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union {
  __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow accessPolicyWindow;
  int cooperative;
};

/* "cuda/ccuda.pxd":757
 *     int cooperative
 * 
 * ctypedef CUkernelNodeAttrValue_union CUkernelNodeAttrValue_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUkernelNodeAttrValue_v1 CUkernelNodeAttrValue
 */
typedef union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_v1;

/* "cuda/ccuda.pxd":759
 * ctypedef CUkernelNodeAttrValue_union CUkernelNodeAttrValue_v1
 * 
 * ctypedef CUkernelNodeAttrValue_v1 CUkernelNodeAttrValue             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamCaptureStatus_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_v1 __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue;

/* "cuda/ccuda.pxd":766
 *     CU_STREAM_CAPTURE_STATUS_INVALIDATED = 2
 * 
 * ctypedef CUstreamCaptureStatus_enum CUstreamCaptureStatus             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamCaptureMode_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus;

/* "cuda/ccuda.pxd":773
 *     CU_STREAM_CAPTURE_MODE_RELAXED = 2
 * 
 * ctypedef CUstreamCaptureMode_enum CUstreamCaptureMode             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUstreamAttrID_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode;

/* "cuda/ccuda.pxd":779
 *     CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = 3
 * 
 * ctypedef CUstreamAttrID_enum CUstreamAttrID             # <<<<<<<<<<<<<<
 * 
 * cdef union CUstreamAttrValue_union:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum __pyx_t_4cuda_5ccuda_CUstreamAttrID;

/* "cuda/ccuda.pxd":781
 * ctypedef CUstreamAttrID_enum CUstreamAttrID
 * 
 * cdef union CUstreamAttrValue_union:             # <<<<<<<<<<<<<<
 *     CUaccessPolicyWindow accessPolicyWindow
 *     CUsynchronizationPolicy syncPolicy
 */
union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union {
  __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow accessPolicyWindow;
  __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy syncPolicy;
};

/* "cuda/ccuda.pxd":785
 *     CUsynchronizationPolicy syncPolicy
 * 
 * ctypedef CUstreamAttrValue_union CUstreamAttrValue_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUstreamAttrValue_v1 CUstreamAttrValue
 */
typedef union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_v1;

/* "cuda/ccuda.pxd":787
 * ctypedef CUstreamAttrValue_union CUstreamAttrValue_v1
 * 
 * ctypedef CUstreamAttrValue_v1 CUstreamAttrValue             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUdriverProcAddress_flags_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUstreamAttrValue_v1 __pyx_t_4cuda_5ccuda_CUstreamAttrValue;

/* "cuda/ccuda.pxd":794
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = 1 << 1
 * 
 * ctypedef CUdriverProcAddress_flags_enum CUdriverProcAddress_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUexecAffinityType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags;

/* "cuda/ccuda.pxd":800
 *     CU_EXEC_AFFINITY_TYPE_MAX
 * 
 * ctypedef CUexecAffinityType_enum CUexecAffinityType             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUexecAffinitySmCount_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum __pyx_t_4cuda_5ccuda_CUexecAffinityType;

/* "cuda/ccuda.pxd":802
 * ctypedef CUexecAffinityType_enum CUexecAffinityType
 * 
 * cdef struct CUexecAffinitySmCount_st:             # <<<<<<<<<<<<<<
 *     unsigned int val
 * 
 */
struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st {
  unsigned int val;
};

/* "cuda/ccuda.pxd":805
 *     unsigned int val
 * 
 * ctypedef CUexecAffinitySmCount_st CUexecAffinitySmCount_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUexecAffinitySmCount_v1 CUexecAffinitySmCount
 */
typedef struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_v1;

/* "cuda/ccuda.pxd":807
 * ctypedef CUexecAffinitySmCount_st CUexecAffinitySmCount_v1
 * 
 * ctypedef CUexecAffinitySmCount_v1 CUexecAffinitySmCount             # <<<<<<<<<<<<<<
 * 
 * cdef union _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u:
 */
typedef __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_v1 __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount;

/* "cuda/ccuda.pxd":809
 * ctypedef CUexecAffinitySmCount_v1 CUexecAffinitySmCount
 * 
 * cdef union _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u:             # <<<<<<<<<<<<<<
 *     CUexecAffinitySmCount smCount
 * 
 */
union __pyx_t_4cuda_5ccuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u {
  __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount smCount;
};

/* "cuda/ccuda.pxd":812
 *     CUexecAffinitySmCount smCount
 * 
 * cdef struct CUexecAffinityParam_st:             # <<<<<<<<<<<<<<
 *     CUexecAffinityType type
 *     _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u param
 */
struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st {
  __pyx_t_4cuda_5ccuda_CUexecAffinityType type;
  union __pyx_t_4cuda_5ccuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u param;
};

/* "cuda/ccuda.pxd":816
 *     _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u param
 * 
 * ctypedef CUexecAffinityParam_st CUexecAffinityParam_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUexecAffinityParam_v1 CUexecAffinityParam
 */
typedef struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st __pyx_t_4cuda_5ccuda_CUexecAffinityParam_v1;

/* "cuda/ccuda.pxd":818
 * ctypedef CUexecAffinityParam_st CUexecAffinityParam_v1
 * 
 * ctypedef CUexecAffinityParam_v1 CUexecAffinityParam             # <<<<<<<<<<<<<<
 * 
 * cdef enum cudaError_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUexecAffinityParam_v1 __pyx_t_4cuda_5ccuda_CUexecAffinityParam;

/* "cuda/ccuda.pxd":909
 *     CUDA_ERROR_UNKNOWN = 999
 * 
 * ctypedef cudaError_enum CUresult             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUdevice_P2PAttribute_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_cudaError_enum __pyx_t_4cuda_5ccuda_CUresult;

/* "cuda/ccuda.pxd":918
 *     CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = 0x04
 * 
 * ctypedef CUdevice_P2PAttribute_enum CUdevice_P2PAttribute             # <<<<<<<<<<<<<<
 * 
 * ctypedef void (*CUstreamCallback)(CUstream hStream, CUresult status, void* userData)
 */
typedef enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute;

/* "cuda/ccuda.pxd":920
 * ctypedef CUdevice_P2PAttribute_enum CUdevice_P2PAttribute
 * 
 * ctypedef void (*CUstreamCallback)(CUstream hStream, CUresult status, void* userData)             # <<<<<<<<<<<<<<
 * 
 * ctypedef size_t (*CUoccupancyB2DSize)(int blockSize)
 */
typedef void (*__pyx_t_4cuda_5ccuda_CUstreamCallback)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUresult, void *);

/* "cuda/ccuda.pxd":922
 * ctypedef void (*CUstreamCallback)(CUstream hStream, CUresult status, void* userData)
 * 
 * ctypedef size_t (*CUoccupancyB2DSize)(int blockSize)             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_MEMCPY2D_st:
 */
typedef size_t (*__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize)(int);

/* "cuda/ccuda.pxd":924
 * ctypedef size_t (*CUoccupancyB2DSize)(int blockSize)
 * 
 * cdef struct CUDA_MEMCPY2D_st:             # <<<<<<<<<<<<<<
 *     size_t srcXInBytes
 *     size_t srcY
 */
struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st {
  size_t srcXInBytes;
  size_t srcY;
  __pyx_t_4cuda_5ccuda_CUmemorytype srcMemoryType;
  void const *srcHost;
  __pyx_t_4cuda_5ccuda_CUdeviceptr srcDevice;
  __pyx_t_4cuda_5ccuda_CUarray srcArray;
  size_t srcPitch;
  size_t dstXInBytes;
  size_t dstY;
  __pyx_t_4cuda_5ccuda_CUmemorytype dstMemoryType;
  void *dstHost;
  __pyx_t_4cuda_5ccuda_CUdeviceptr dstDevice;
  __pyx_t_4cuda_5ccuda_CUarray dstArray;
  size_t dstPitch;
  size_t WidthInBytes;
  size_t Height;
};

/* "cuda/ccuda.pxd":942
 *     size_t Height
 * 
 * ctypedef CUDA_MEMCPY2D_st CUDA_MEMCPY2D_v2             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_MEMCPY2D_v2 CUDA_MEMCPY2D
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_v2;

/* "cuda/ccuda.pxd":944
 * ctypedef CUDA_MEMCPY2D_st CUDA_MEMCPY2D_v2
 * 
 * ctypedef CUDA_MEMCPY2D_v2 CUDA_MEMCPY2D             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_MEMCPY3D_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_v2 __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D;

/* "cuda/ccuda.pxd":946
 * ctypedef CUDA_MEMCPY2D_v2 CUDA_MEMCPY2D
 * 
 * cdef struct CUDA_MEMCPY3D_st:             # <<<<<<<<<<<<<<
 *     size_t srcXInBytes
 *     size_t srcY
 */
struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st {
  size_t srcXInBytes;
  size_t srcY;
  size_t srcZ;
  size_t srcLOD;
  __pyx_t_4cuda_5ccuda_CUmemorytype srcMemoryType;
  void const *srcHost;
  __pyx_t_4cuda_5ccuda_CUdeviceptr srcDevice;
  __pyx_t_4cuda_5ccuda_CUarray srcArray;
  void *reserved0;
  size_t srcPitch;
  size_t srcHeight;
  size_t dstXInBytes;
  size_t dstY;
  size_t dstZ;
  size_t dstLOD;
  __pyx_t_4cuda_5ccuda_CUmemorytype dstMemoryType;
  void *dstHost;
  __pyx_t_4cuda_5ccuda_CUdeviceptr dstDevice;
  __pyx_t_4cuda_5ccuda_CUarray dstArray;
  void *reserved1;
  size_t dstPitch;
  size_t dstHeight;
  size_t WidthInBytes;
  size_t Height;
  size_t Depth;
};

/* "cuda/ccuda.pxd":973
 *     size_t Depth
 * 
 * ctypedef CUDA_MEMCPY3D_st CUDA_MEMCPY3D_v2             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_MEMCPY3D_v2 CUDA_MEMCPY3D
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_v2;

/* "cuda/ccuda.pxd":975
 * ctypedef CUDA_MEMCPY3D_st CUDA_MEMCPY3D_v2
 * 
 * ctypedef CUDA_MEMCPY3D_v2 CUDA_MEMCPY3D             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_MEMCPY3D_PEER_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_v2 __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D;

/* "cuda/ccuda.pxd":977
 * ctypedef CUDA_MEMCPY3D_v2 CUDA_MEMCPY3D
 * 
 * cdef struct CUDA_MEMCPY3D_PEER_st:             # <<<<<<<<<<<<<<
 *     size_t srcXInBytes
 *     size_t srcY
 */
struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st {
  size_t srcXInBytes;
  size_t srcY;
  size_t srcZ;
  size_t srcLOD;
  __pyx_t_4cuda_5ccuda_CUmemorytype srcMemoryType;
  void const *srcHost;
  __pyx_t_4cuda_5ccuda_CUdeviceptr srcDevice;
  __pyx_t_4cuda_5ccuda_CUarray srcArray;
  __pyx_t_4cuda_5ccuda_CUcontext srcContext;
  size_t srcPitch;
  size_t srcHeight;
  size_t dstXInBytes;
  size_t dstY;
  size_t dstZ;
  size_t dstLOD;
  __pyx_t_4cuda_5ccuda_CUmemorytype dstMemoryType;
  void *dstHost;
  __pyx_t_4cuda_5ccuda_CUdeviceptr dstDevice;
  __pyx_t_4cuda_5ccuda_CUarray dstArray;
  __pyx_t_4cuda_5ccuda_CUcontext dstContext;
  size_t dstPitch;
  size_t dstHeight;
  size_t WidthInBytes;
  size_t Height;
  size_t Depth;
};

/* "cuda/ccuda.pxd":1004
 *     size_t Depth
 * 
 * ctypedef CUDA_MEMCPY3D_PEER_st CUDA_MEMCPY3D_PEER_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_MEMCPY3D_PEER_v1 CUDA_MEMCPY3D_PEER
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_v1;

/* "cuda/ccuda.pxd":1006
 * ctypedef CUDA_MEMCPY3D_PEER_st CUDA_MEMCPY3D_PEER_v1
 * 
 * ctypedef CUDA_MEMCPY3D_PEER_v1 CUDA_MEMCPY3D_PEER             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_ARRAY_DESCRIPTOR_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_v1 __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER;

/* "cuda/ccuda.pxd":1008
 * ctypedef CUDA_MEMCPY3D_PEER_v1 CUDA_MEMCPY3D_PEER
 * 
 * cdef struct CUDA_ARRAY_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *     size_t Width
 *     size_t Height
 */
struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st {
  size_t Width;
  size_t Height;
  __pyx_t_4cuda_5ccuda_CUarray_format Format;
  unsigned int NumChannels;
};

/* "cuda/ccuda.pxd":1014
 *     unsigned int NumChannels
 * 
 * ctypedef CUDA_ARRAY_DESCRIPTOR_st CUDA_ARRAY_DESCRIPTOR_v2             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_ARRAY_DESCRIPTOR_v2 CUDA_ARRAY_DESCRIPTOR
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_v2;

/* "cuda/ccuda.pxd":1016
 * ctypedef CUDA_ARRAY_DESCRIPTOR_st CUDA_ARRAY_DESCRIPTOR_v2
 * 
 * ctypedef CUDA_ARRAY_DESCRIPTOR_v2 CUDA_ARRAY_DESCRIPTOR             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_ARRAY3D_DESCRIPTOR_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_v2 __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR;

/* "cuda/ccuda.pxd":1018
 * ctypedef CUDA_ARRAY_DESCRIPTOR_v2 CUDA_ARRAY_DESCRIPTOR
 * 
 * cdef struct CUDA_ARRAY3D_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *     size_t Width
 *     size_t Height
 */
struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st {
  size_t Width;
  size_t Height;
  size_t Depth;
  __pyx_t_4cuda_5ccuda_CUarray_format Format;
  unsigned int NumChannels;
  unsigned int Flags;
};

/* "cuda/ccuda.pxd":1026
 *     unsigned int Flags
 * 
 * ctypedef CUDA_ARRAY3D_DESCRIPTOR_st CUDA_ARRAY3D_DESCRIPTOR_v2             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_ARRAY3D_DESCRIPTOR_v2 CUDA_ARRAY3D_DESCRIPTOR
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_v2;

/* "cuda/ccuda.pxd":1028
 * ctypedef CUDA_ARRAY3D_DESCRIPTOR_st CUDA_ARRAY3D_DESCRIPTOR_v2
 * 
 * ctypedef CUDA_ARRAY3D_DESCRIPTOR_v2 CUDA_ARRAY3D_DESCRIPTOR             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_v2 __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR;

/* "cuda/ccuda.pxd":1030
 * ctypedef CUDA_ARRAY3D_DESCRIPTOR_v2 CUDA_ARRAY3D_DESCRIPTOR
 * 
 * cdef struct _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s:             # <<<<<<<<<<<<<<
 *     unsigned int width
 *     unsigned int height
 */
struct __pyx_t_4cuda_5ccuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s {
  unsigned int width;
  unsigned int height;
  unsigned int depth;
};

/* "cuda/ccuda.pxd":1035
 *     unsigned int depth
 * 
 * cdef struct CUDA_ARRAY_SPARSE_PROPERTIES_st:             # <<<<<<<<<<<<<<
 *     _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s tileExtent
 *     unsigned int miptailFirstLevel
 */
struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st {
  struct __pyx_t_4cuda_5ccuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s tileExtent;
  unsigned int miptailFirstLevel;
  unsigned PY_LONG_LONG miptailSize;
  unsigned int flags;
  unsigned int reserved[4];
};

/* "cuda/ccuda.pxd":1042
 *     unsigned int reserved[4]
 * 
 * ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_st CUDA_ARRAY_SPARSE_PROPERTIES_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_v1 CUDA_ARRAY_SPARSE_PROPERTIES
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1;

/* "cuda/ccuda.pxd":1044
 * ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_st CUDA_ARRAY_SPARSE_PROPERTIES_v1
 * 
 * ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_v1 CUDA_ARRAY_SPARSE_PROPERTIES             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1 __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES;

/* "cuda/ccuda.pxd":1046
 * ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_v1 CUDA_ARRAY_SPARSE_PROPERTIES
 * 
 * cdef struct _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s:             # <<<<<<<<<<<<<<
 *     CUarray hArray
 * 
 */
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s {
  __pyx_t_4cuda_5ccuda_CUarray hArray;
};

/* "cuda/ccuda.pxd":1049
 *     CUarray hArray
 * 
 * cdef struct _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s:             # <<<<<<<<<<<<<<
 *     CUmipmappedArray hMipmappedArray
 * 
 */
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s {
  __pyx_t_4cuda_5ccuda_CUmipmappedArray hMipmappedArray;
};

/* "cuda/ccuda.pxd":1052
 *     CUmipmappedArray hMipmappedArray
 * 
 * cdef struct _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s:             # <<<<<<<<<<<<<<
 *     CUdeviceptr devPtr
 *     CUarray_format format
 */
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s {
  __pyx_t_4cuda_5ccuda_CUdeviceptr devPtr;
  __pyx_t_4cuda_5ccuda_CUarray_format format;
  unsigned int numChannels;
  size_t sizeInBytes;
};

/* "cuda/ccuda.pxd":1058
 *     size_t sizeInBytes
 * 
 * cdef struct _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s:             # <<<<<<<<<<<<<<
 *     CUdeviceptr devPtr
 *     CUarray_format format
 */
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s {
  __pyx_t_4cuda_5ccuda_CUdeviceptr devPtr;
  __pyx_t_4cuda_5ccuda_CUarray_format format;
  unsigned int numChannels;
  size_t width;
  size_t height;
  size_t pitchInBytes;
};

/* "cuda/ccuda.pxd":1066
 *     size_t pitchInBytes
 * 
 * cdef struct _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s:             # <<<<<<<<<<<<<<
 *     int reserved[32]
 * 
 */
struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s {
  int reserved[32];
};

/* "cuda/ccuda.pxd":1069
 *     int reserved[32]
 * 
 * cdef union _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u:             # <<<<<<<<<<<<<<
 *     _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s array
 *     _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s mipmap
 */
union __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u {
  struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s array;
  struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s mipmap;
  struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s linear;
  struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s pitch2D;
  struct __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s reserved;
};

/* "cuda/ccuda.pxd":1076
 *     _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s reserved
 * 
 * cdef struct CUDA_RESOURCE_DESC_st:             # <<<<<<<<<<<<<<
 *     CUresourcetype resType
 *     _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u res
 */
struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st {
  __pyx_t_4cuda_5ccuda_CUresourcetype resType;
  union __pyx_t_4cuda_5ccuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u res;
  unsigned int flags;
};

/* "cuda/ccuda.pxd":1081
 *     unsigned int flags
 * 
 * ctypedef CUDA_RESOURCE_DESC_st CUDA_RESOURCE_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_RESOURCE_DESC_v1 CUDA_RESOURCE_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_v1;

/* "cuda/ccuda.pxd":1083
 * ctypedef CUDA_RESOURCE_DESC_st CUDA_RESOURCE_DESC_v1
 * 
 * ctypedef CUDA_RESOURCE_DESC_v1 CUDA_RESOURCE_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_TEXTURE_DESC_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC;

/* "cuda/ccuda.pxd":1085
 * ctypedef CUDA_RESOURCE_DESC_v1 CUDA_RESOURCE_DESC
 * 
 * cdef struct CUDA_TEXTURE_DESC_st:             # <<<<<<<<<<<<<<
 *     CUaddress_mode addressMode[3]
 *     CUfilter_mode filterMode
 */
struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st {
  __pyx_t_4cuda_5ccuda_CUaddress_mode addressMode[3];
  __pyx_t_4cuda_5ccuda_CUfilter_mode filterMode;
  unsigned int flags;
  unsigned int maxAnisotropy;
  __pyx_t_4cuda_5ccuda_CUfilter_mode mipmapFilterMode;
  float mipmapLevelBias;
  float minMipmapLevelClamp;
  float maxMipmapLevelClamp;
  float borderColor[4];
  int reserved[12];
};

/* "cuda/ccuda.pxd":1097
 *     int reserved[12]
 * 
 * ctypedef CUDA_TEXTURE_DESC_st CUDA_TEXTURE_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_TEXTURE_DESC_v1 CUDA_TEXTURE_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_v1;

/* "cuda/ccuda.pxd":1099
 * ctypedef CUDA_TEXTURE_DESC_st CUDA_TEXTURE_DESC_v1
 * 
 * ctypedef CUDA_TEXTURE_DESC_v1 CUDA_TEXTURE_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUresourceViewFormat_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC;

/* "cuda/ccuda.pxd":1138
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = 0x22
 * 
 * ctypedef CUresourceViewFormat_enum CUresourceViewFormat             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_RESOURCE_VIEW_DESC_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat;

/* "cuda/ccuda.pxd":1140
 * ctypedef CUresourceViewFormat_enum CUresourceViewFormat
 * 
 * cdef struct CUDA_RESOURCE_VIEW_DESC_st:             # <<<<<<<<<<<<<<
 *     CUresourceViewFormat format
 *     size_t width
 */
struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st {
  __pyx_t_4cuda_5ccuda_CUresourceViewFormat format;
  size_t width;
  size_t height;
  size_t depth;
  unsigned int firstMipmapLevel;
  unsigned int lastMipmapLevel;
  unsigned int firstLayer;
  unsigned int lastLayer;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1151
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_RESOURCE_VIEW_DESC_st CUDA_RESOURCE_VIEW_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_RESOURCE_VIEW_DESC_v1 CUDA_RESOURCE_VIEW_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_v1;

/* "cuda/ccuda.pxd":1153
 * ctypedef CUDA_RESOURCE_VIEW_DESC_st CUDA_RESOURCE_VIEW_DESC_v1
 * 
 * ctypedef CUDA_RESOURCE_VIEW_DESC_v1 CUDA_RESOURCE_VIEW_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC;

/* "cuda/ccuda.pxd":1155
 * ctypedef CUDA_RESOURCE_VIEW_DESC_v1 CUDA_RESOURCE_VIEW_DESC
 * 
 * cdef struct CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:             # <<<<<<<<<<<<<<
 *     unsigned long long p2pToken
 *     unsigned int vaSpaceToken
 */
struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st {
  unsigned PY_LONG_LONG p2pToken;
  unsigned int vaSpaceToken;
};

/* "cuda/ccuda.pxd":1159
 *     unsigned int vaSpaceToken
 * 
 * ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 CUDA_POINTER_ATTRIBUTE_P2P_TOKENS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1;

/* "cuda/ccuda.pxd":1161
 * ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1
 * 
 * ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 CUDA_POINTER_ATTRIBUTE_P2P_TOKENS             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS;

/* "cuda/ccuda.pxd":1168
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = 0x3
 * 
 * ctypedef CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_LAUNCH_PARAMS_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS;

/* "cuda/ccuda.pxd":1170
 * ctypedef CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS
 * 
 * cdef struct CUDA_LAUNCH_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUfunction function
 *     unsigned int gridDimX
 */
struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUfunction function;
  unsigned int gridDimX;
  unsigned int gridDimY;
  unsigned int gridDimZ;
  unsigned int blockDimX;
  unsigned int blockDimY;
  unsigned int blockDimZ;
  unsigned int sharedMemBytes;
  __pyx_t_4cuda_5ccuda_CUstream hStream;
  void **kernelParams;
};

/* "cuda/ccuda.pxd":1182
 *     void** kernelParams
 * 
 * ctypedef CUDA_LAUNCH_PARAMS_st CUDA_LAUNCH_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_LAUNCH_PARAMS_v1 CUDA_LAUNCH_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_v1;

/* "cuda/ccuda.pxd":1184
 * ctypedef CUDA_LAUNCH_PARAMS_st CUDA_LAUNCH_PARAMS_v1
 * 
 * ctypedef CUDA_LAUNCH_PARAMS_v1 CUDA_LAUNCH_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUexternalMemoryHandleType_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS;

/* "cuda/ccuda.pxd":1196
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = 8
 * 
 * ctypedef CUexternalMemoryHandleType_enum CUexternalMemoryHandleType             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType;

/* "cuda/ccuda.pxd":1198
 * ctypedef CUexternalMemoryHandleType_enum CUexternalMemoryHandleType
 * 
 * cdef struct _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s:             # <<<<<<<<<<<<<<
 *     void* handle
 *     void* name
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s {
  void *handle;
  void *name;
};

/* "cuda/ccuda.pxd":1202
 *     void* name
 * 
 * cdef union _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u:             # <<<<<<<<<<<<<<
 *     int fd
 *     _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s win32
 */
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u {
  int fd;
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s win32;
  void *nvSciBufObject;
};

/* "cuda/ccuda.pxd":1207
 *     void* nvSciBufObject
 * 
 * cdef struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *     CUexternalMemoryHandleType type
 *     _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u handle
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st {
  __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType type;
  union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u handle;
  unsigned PY_LONG_LONG size;
  unsigned int flags;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1214
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 CUDA_EXTERNAL_MEMORY_HANDLE_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1;

/* "cuda/ccuda.pxd":1216
 * ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 CUDA_EXTERNAL_MEMORY_HANDLE_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC;

/* "cuda/ccuda.pxd":1218
 * ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 CUDA_EXTERNAL_MEMORY_HANDLE_DESC
 * 
 * cdef struct CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:             # <<<<<<<<<<<<<<
 *     unsigned long long offset
 *     unsigned long long size
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st {
  unsigned PY_LONG_LONG offset;
  unsigned PY_LONG_LONG size;
  unsigned int flags;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1224
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 CUDA_EXTERNAL_MEMORY_BUFFER_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1;

/* "cuda/ccuda.pxd":1226
 * ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 CUDA_EXTERNAL_MEMORY_BUFFER_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC;

/* "cuda/ccuda.pxd":1228
 * ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 CUDA_EXTERNAL_MEMORY_BUFFER_DESC
 * 
 * cdef struct CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:             # <<<<<<<<<<<<<<
 *     unsigned long long offset
 *     CUDA_ARRAY3D_DESCRIPTOR arrayDesc
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st {
  unsigned PY_LONG_LONG offset;
  __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR arrayDesc;
  unsigned int numLevels;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1234
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1;

/* "cuda/ccuda.pxd":1236
 * ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1
 * 
 * ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUexternalSemaphoreHandleType_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC;

/* "cuda/ccuda.pxd":1250
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = 10
 * 
 * ctypedef CUexternalSemaphoreHandleType_enum CUexternalSemaphoreHandleType             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType;

/* "cuda/ccuda.pxd":1252
 * ctypedef CUexternalSemaphoreHandleType_enum CUexternalSemaphoreHandleType
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s:             # <<<<<<<<<<<<<<
 *     void* handle
 *     void* name
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s {
  void *handle;
  void *name;
};

/* "cuda/ccuda.pxd":1256
 *     void* name
 * 
 * cdef union _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u:             # <<<<<<<<<<<<<<
 *     int fd
 *     _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s win32
 */
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u {
  int fd;
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s win32;
  void *nvSciSyncObj;
};

/* "cuda/ccuda.pxd":1261
 *     void* nvSciSyncObj
 * 
 * cdef struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *     CUexternalSemaphoreHandleType type
 *     _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u handle
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st {
  __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType type;
  union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u handle;
  unsigned int flags;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1267
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1;

/* "cuda/ccuda.pxd":1269
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC;

/* "cuda/ccuda.pxd":1271
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s:             # <<<<<<<<<<<<<<
 *     unsigned long long value
 * 
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s {
  unsigned PY_LONG_LONG value;
};

/* "cuda/ccuda.pxd":1274
 *     unsigned long long value
 * 
 * cdef union _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u:             # <<<<<<<<<<<<<<
 *     void* fence
 *     unsigned long long reserved
 */
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u {
  void *fence;
  unsigned PY_LONG_LONG reserved;
};

/* "cuda/ccuda.pxd":1278
 *     unsigned long long reserved
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s:             # <<<<<<<<<<<<<<
 *     unsigned long long key
 * 
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s {
  unsigned PY_LONG_LONG key;
};

/* "cuda/ccuda.pxd":1281
 *     unsigned long long key
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s:             # <<<<<<<<<<<<<<
 *     _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s fence
 *     _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u nvSciSync
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s {
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s fence;
  union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u nvSciSync;
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s keyedMutex;
  unsigned int reserved[12];
};

/* "cuda/ccuda.pxd":1287
 *     unsigned int reserved[12]
 * 
 * cdef struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:             # <<<<<<<<<<<<<<
 *     _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s params
 *     unsigned int flags
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st {
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s params;
  unsigned int flags;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1292
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1;

/* "cuda/ccuda.pxd":1294
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS;

/* "cuda/ccuda.pxd":1296
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s:             # <<<<<<<<<<<<<<
 *     unsigned long long value
 * 
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s {
  unsigned PY_LONG_LONG value;
};

/* "cuda/ccuda.pxd":1299
 *     unsigned long long value
 * 
 * cdef union _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u:             # <<<<<<<<<<<<<<
 *     void* fence
 *     unsigned long long reserved
 */
union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u {
  void *fence;
  unsigned PY_LONG_LONG reserved;
};

/* "cuda/ccuda.pxd":1303
 *     unsigned long long reserved
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s:             # <<<<<<<<<<<<<<
 *     unsigned long long key
 *     unsigned int timeoutMs
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s {
  unsigned PY_LONG_LONG key;
  unsigned int timeoutMs;
};

/* "cuda/ccuda.pxd":1307
 *     unsigned int timeoutMs
 * 
 * cdef struct _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s:             # <<<<<<<<<<<<<<
 *     _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s fence
 *     _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u nvSciSync
 */
struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s {
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s fence;
  union __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u nvSciSync;
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s keyedMutex;
  unsigned int reserved[10];
};

/* "cuda/ccuda.pxd":1313
 *     unsigned int reserved[10]
 * 
 * cdef struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:             # <<<<<<<<<<<<<<
 *     _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s params
 *     unsigned int flags
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st {
  struct __pyx_t_4cuda_5ccuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s params;
  unsigned int flags;
  unsigned int reserved[16];
};

/* "cuda/ccuda.pxd":1318
 *     unsigned int reserved[16]
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1;

/* "cuda/ccuda.pxd":1320
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1
 * 
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS;

/* "cuda/ccuda.pxd":1322
 * ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS
 * 
 * cdef struct CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUexternalSemaphore* extSemArray
 *     const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* paramsArray
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *extSemArray;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS const *paramsArray;
  unsigned int numExtSems;
};

/* "cuda/ccuda.pxd":1327
 *     unsigned int numExtSems
 * 
 * ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 CUDA_EXT_SEM_SIGNAL_NODE_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1;

/* "cuda/ccuda.pxd":1329
 * ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1
 * 
 * ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 CUDA_EXT_SEM_SIGNAL_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS;

/* "cuda/ccuda.pxd":1331
 * ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 CUDA_EXT_SEM_SIGNAL_NODE_PARAMS
 * 
 * cdef struct CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUexternalSemaphore* extSemArray
 *     const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* paramsArray
 */
struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *extSemArray;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS const *paramsArray;
  unsigned int numExtSems;
};

/* "cuda/ccuda.pxd":1336
 *     unsigned int numExtSems
 * 
 * ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_st CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 CUDA_EXT_SEM_WAIT_NODE_PARAMS
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1;

/* "cuda/ccuda.pxd":1338
 * ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_st CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1
 * 
 * ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 CUDA_EXT_SEM_WAIT_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * ctypedef unsigned long long CUmemGenericAllocationHandle_v1
 */
typedef __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS;

/* "cuda/ccuda.pxd":1351
 *     CU_MEM_HANDLE_TYPE_MAX = 0x7FFFFFFF
 * 
 * ctypedef CUmemAllocationHandleType_enum CUmemAllocationHandleType             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemAccess_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType;

/* "cuda/ccuda.pxd":1359
 *     CU_MEM_ACCESS_FLAGS_PROT_MAX = 0x7FFFFFFF
 * 
 * ctypedef CUmemAccess_flags_enum CUmemAccess_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemLocationType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags;

/* "cuda/ccuda.pxd":1366
 *     CU_MEM_LOCATION_TYPE_MAX = 0x7FFFFFFF
 * 
 * ctypedef CUmemLocationType_enum CUmemLocationType             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemAllocationType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum __pyx_t_4cuda_5ccuda_CUmemLocationType;

/* "cuda/ccuda.pxd":1373
 *     CU_MEM_ALLOCATION_TYPE_MAX = 0x7FFFFFFF
 * 
 * ctypedef CUmemAllocationType_enum CUmemAllocationType             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemAllocationGranularity_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum __pyx_t_4cuda_5ccuda_CUmemAllocationType;

/* "cuda/ccuda.pxd":1379
 *     CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = 0x1
 * 
 * ctypedef CUmemAllocationGranularity_flags_enum CUmemAllocationGranularity_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUarraySparseSubresourceType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags;

/* "cuda/ccuda.pxd":1385
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = 1
 * 
 * ctypedef CUarraySparseSubresourceType_enum CUarraySparseSubresourceType             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemOperationType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType;

/* "cuda/ccuda.pxd":1391
 *     CU_MEM_OPERATION_TYPE_UNMAP = 2
 * 
 * ctypedef CUmemOperationType_enum CUmemOperationType             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemHandleType_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum __pyx_t_4cuda_5ccuda_CUmemOperationType;

/* "cuda/ccuda.pxd":1396
 *     CU_MEM_HANDLE_TYPE_GENERIC = 0
 * 
 * ctypedef CUmemHandleType_enum CUmemHandleType             # <<<<<<<<<<<<<<
 * 
 * cdef union _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum __pyx_t_4cuda_5ccuda_CUmemHandleType;

/* "cuda/ccuda.pxd":1398
 * ctypedef CUmemHandleType_enum CUmemHandleType
 * 
 * cdef union _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u:             # <<<<<<<<<<<<<<
 *     CUmipmappedArray mipmap
 *     CUarray array
 */
union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u {
  __pyx_t_4cuda_5ccuda_CUmipmappedArray mipmap;
  __pyx_t_4cuda_5ccuda_CUarray array;
};

/* "cuda/ccuda.pxd":1402
 *     CUarray array
 * 
 * cdef struct _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s:             # <<<<<<<<<<<<<<
 *     unsigned int level
 *     unsigned int layer
 */
struct __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s {
  unsigned int level;
  unsigned int layer;
  unsigned int offsetX;
  unsigned int offsetY;
  unsigned int offsetZ;
  unsigned int extentWidth;
  unsigned int extentHeight;
  unsigned int extentDepth;
};

/* "cuda/ccuda.pxd":1412
 *     unsigned int extentDepth
 * 
 * cdef struct _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s:             # <<<<<<<<<<<<<<
 *     unsigned int layer
 *     unsigned long long offset
 */
struct __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s {
  unsigned int layer;
  unsigned PY_LONG_LONG offset;
  unsigned PY_LONG_LONG size;
};

/* "cuda/ccuda.pxd":1417
 *     unsigned long long size
 * 
 * cdef union _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u:             # <<<<<<<<<<<<<<
 *     _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s sparseLevel
 *     _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s miptail
 */
union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u {
  struct __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s sparseLevel;
  struct __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s miptail;
};

/* "cuda/ccuda.pxd":1421
 *     _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s miptail
 * 
 * cdef union _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u:             # <<<<<<<<<<<<<<
 *     CUmemGenericAllocationHandle memHandle
 * 
 */
union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u {
  __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle memHandle;
};

/* "cuda/ccuda.pxd":1424
 *     CUmemGenericAllocationHandle memHandle
 * 
 * cdef struct CUarrayMapInfo_st:             # <<<<<<<<<<<<<<
 *     CUresourcetype resourceType
 *     _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u resource
 */
struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st {
  __pyx_t_4cuda_5ccuda_CUresourcetype resourceType;
  union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u resource;
  __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType subresourceType;
  union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u subresource;
  __pyx_t_4cuda_5ccuda_CUmemOperationType memOperationType;
  __pyx_t_4cuda_5ccuda_CUmemHandleType memHandleType;
  union __pyx_t_4cuda_5ccuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u memHandle;
  unsigned PY_LONG_LONG offset;
  unsigned int deviceBitMask;
  unsigned int flags;
  unsigned int reserved[2];
};

/* "cuda/ccuda.pxd":1437
 *     unsigned int reserved[2]
 * 
 * ctypedef CUarrayMapInfo_st CUarrayMapInfo_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUarrayMapInfo_v1 CUarrayMapInfo
 */
typedef struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st __pyx_t_4cuda_5ccuda_CUarrayMapInfo_v1;

/* "cuda/ccuda.pxd":1439
 * ctypedef CUarrayMapInfo_st CUarrayMapInfo_v1
 * 
 * ctypedef CUarrayMapInfo_v1 CUarrayMapInfo             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUmemLocation_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUarrayMapInfo_v1 __pyx_t_4cuda_5ccuda_CUarrayMapInfo;

/* "cuda/ccuda.pxd":1441
 * ctypedef CUarrayMapInfo_v1 CUarrayMapInfo
 * 
 * cdef struct CUmemLocation_st:             # <<<<<<<<<<<<<<
 *     CUmemLocationType type
 *     int id
 */
struct __pyx_t_4cuda_5ccuda_CUmemLocation_st {
  __pyx_t_4cuda_5ccuda_CUmemLocationType type;
  int id;
};

/* "cuda/ccuda.pxd":1445
 *     int id
 * 
 * ctypedef CUmemLocation_st CUmemLocation_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUmemLocation_v1 CUmemLocation
 */
typedef struct __pyx_t_4cuda_5ccuda_CUmemLocation_st __pyx_t_4cuda_5ccuda_CUmemLocation_v1;

/* "cuda/ccuda.pxd":1447
 * ctypedef CUmemLocation_st CUmemLocation_v1
 * 
 * ctypedef CUmemLocation_v1 CUmemLocation             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemAllocationCompType_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUmemLocation_v1 __pyx_t_4cuda_5ccuda_CUmemLocation;

/* "cuda/ccuda.pxd":1453
 *     CU_MEM_ALLOCATION_COMP_GENERIC = 0x1
 * 
 * ctypedef CUmemAllocationCompType_enum CUmemAllocationCompType             # <<<<<<<<<<<<<<
 * 
 * cdef struct _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType;

/* "cuda/ccuda.pxd":1455
 * ctypedef CUmemAllocationCompType_enum CUmemAllocationCompType
 * 
 * cdef struct _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s:             # <<<<<<<<<<<<<<
 *     unsigned char compressionType
 *     unsigned char gpuDirectRDMACapable
 */
struct __pyx_t_4cuda_5ccuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s {
  unsigned char compressionType;
  unsigned char gpuDirectRDMACapable;
  unsigned short usage;
  unsigned char reserved[4];
};

/* "cuda/ccuda.pxd":1461
 *     unsigned char reserved[4]
 * 
 * cdef struct CUmemAllocationProp_st:             # <<<<<<<<<<<<<<
 *     CUmemAllocationType type
 *     CUmemAllocationHandleType requestedHandleTypes
 */
struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st {
  __pyx_t_4cuda_5ccuda_CUmemAllocationType type;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType requestedHandleTypes;
  __pyx_t_4cuda_5ccuda_CUmemLocation location;
  void *win32HandleMetaData;
  struct __pyx_t_4cuda_5ccuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s allocFlags;
};

/* "cuda/ccuda.pxd":1468
 *     _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s allocFlags
 * 
 * ctypedef CUmemAllocationProp_st CUmemAllocationProp_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUmemAllocationProp_v1 CUmemAllocationProp
 */
typedef struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st __pyx_t_4cuda_5ccuda_CUmemAllocationProp_v1;

/* "cuda/ccuda.pxd":1470
 * ctypedef CUmemAllocationProp_st CUmemAllocationProp_v1
 * 
 * ctypedef CUmemAllocationProp_v1 CUmemAllocationProp             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUmemAccessDesc_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUmemAllocationProp_v1 __pyx_t_4cuda_5ccuda_CUmemAllocationProp;

/* "cuda/ccuda.pxd":1472
 * ctypedef CUmemAllocationProp_v1 CUmemAllocationProp
 * 
 * cdef struct CUmemAccessDesc_st:             # <<<<<<<<<<<<<<
 *     CUmemLocation location
 *     CUmemAccess_flags flags
 */
struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st {
  __pyx_t_4cuda_5ccuda_CUmemLocation location;
  __pyx_t_4cuda_5ccuda_CUmemAccess_flags flags;
};

/* "cuda/ccuda.pxd":1476
 *     CUmemAccess_flags flags
 * 
 * ctypedef CUmemAccessDesc_st CUmemAccessDesc_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUmemAccessDesc_v1 CUmemAccessDesc
 */
typedef struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st __pyx_t_4cuda_5ccuda_CUmemAccessDesc_v1;

/* "cuda/ccuda.pxd":1478
 * ctypedef CUmemAccessDesc_st CUmemAccessDesc_v1
 * 
 * ctypedef CUmemAccessDesc_v1 CUmemAccessDesc             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphExecUpdateResult_enum:
 */
typedef __pyx_t_4cuda_5ccuda_CUmemAccessDesc_v1 __pyx_t_4cuda_5ccuda_CUmemAccessDesc;

/* "cuda/ccuda.pxd":1490
 *     CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = 0x7
 * 
 * ctypedef CUgraphExecUpdateResult_enum CUgraphExecUpdateResult             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUmemPool_attribute_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult;

/* "cuda/ccuda.pxd":1502
 *     CU_MEMPOOL_ATTR_USED_MEM_HIGH
 * 
 * ctypedef CUmemPool_attribute_enum CUmemPool_attribute             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUmemPoolProps_st:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute;

/* "cuda/ccuda.pxd":1504
 * ctypedef CUmemPool_attribute_enum CUmemPool_attribute
 * 
 * cdef struct CUmemPoolProps_st:             # <<<<<<<<<<<<<<
 *     CUmemAllocationType allocType
 *     CUmemAllocationHandleType handleTypes
 */
struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st {
  __pyx_t_4cuda_5ccuda_CUmemAllocationType allocType;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType handleTypes;
  __pyx_t_4cuda_5ccuda_CUmemLocation location;
  void *win32SecurityAttributes;
  unsigned char reserved[64];
};

/* "cuda/ccuda.pxd":1511
 *     unsigned char reserved[64]
 * 
 * ctypedef CUmemPoolProps_st CUmemPoolProps_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUmemPoolProps_v1 CUmemPoolProps
 */
typedef struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st __pyx_t_4cuda_5ccuda_CUmemPoolProps_v1;

/* "cuda/ccuda.pxd":1513
 * ctypedef CUmemPoolProps_st CUmemPoolProps_v1
 * 
 * ctypedef CUmemPoolProps_v1 CUmemPoolProps             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUmemPoolPtrExportData_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUmemPoolProps_v1 __pyx_t_4cuda_5ccuda_CUmemPoolProps;

/* "cuda/ccuda.pxd":1515
 * ctypedef CUmemPoolProps_v1 CUmemPoolProps
 * 
 * cdef struct CUmemPoolPtrExportData_st:             # <<<<<<<<<<<<<<
 *     unsigned char reserved[64]
 * 
 */
struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st {
  unsigned char reserved[64];
};

/* "cuda/ccuda.pxd":1518
 *     unsigned char reserved[64]
 * 
 * ctypedef CUmemPoolPtrExportData_st CUmemPoolPtrExportData_v1             # <<<<<<<<<<<<<<
 * 
 * ctypedef CUmemPoolPtrExportData_v1 CUmemPoolPtrExportData
 */
typedef struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_v1;

/* "cuda/ccuda.pxd":1520
 * ctypedef CUmemPoolPtrExportData_st CUmemPoolPtrExportData_v1
 * 
 * ctypedef CUmemPoolPtrExportData_v1 CUmemPoolPtrExportData             # <<<<<<<<<<<<<<
 * 
 * cdef struct CUDA_MEM_ALLOC_NODE_PARAMS_st:
 */
typedef __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_v1 __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData;

/* "cuda/ccuda.pxd":1522
 * ctypedef CUmemPoolPtrExportData_v1 CUmemPoolPtrExportData
 * 
 * cdef struct CUDA_MEM_ALLOC_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     CUmemPoolProps poolProps
 *     const CUmemAccessDesc* accessDescs
 */
struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st {
  __pyx_t_4cuda_5ccuda_CUmemPoolProps poolProps;
  __pyx_t_4cuda_5ccuda_CUmemAccessDesc const *accessDescs;
  size_t accessDescCount;
  size_t bytesize;
  __pyx_t_4cuda_5ccuda_CUdeviceptr dptr;
};

/* "cuda/ccuda.pxd":1529
 *     CUdeviceptr dptr
 * 
 * ctypedef CUDA_MEM_ALLOC_NODE_PARAMS_st CUDA_MEM_ALLOC_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphMem_attribute_enum:
 */
typedef struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS;

/* "cuda/ccuda.pxd":1537
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
 * 
 * ctypedef CUgraphMem_attribute_enum CUgraphMem_attribute             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUflushGPUDirectRDMAWritesOptions_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute;

/* "cuda/ccuda.pxd":1543
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = 1<<1
 * 
 * ctypedef CUflushGPUDirectRDMAWritesOptions_enum CUflushGPUDirectRDMAWritesOptions             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUGPUDirectRDMAWritesOrdering_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions;

/* "cuda/ccuda.pxd":1550
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = 200
 * 
 * ctypedef CUGPUDirectRDMAWritesOrdering_enum CUGPUDirectRDMAWritesOrdering             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUflushGPUDirectRDMAWritesScope_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering;

/* "cuda/ccuda.pxd":1556
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = 200
 * 
 * ctypedef CUflushGPUDirectRDMAWritesScope_enum CUflushGPUDirectRDMAWritesScope             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUflushGPUDirectRDMAWritesTarget_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope;

/* "cuda/ccuda.pxd":1561
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = 0
 * 
 * ctypedef CUflushGPUDirectRDMAWritesTarget_enum CUflushGPUDirectRDMAWritesTarget             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphDebugDot_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget;

/* "cuda/ccuda.pxd":1578
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = 1<<12
 * 
 * ctypedef CUgraphDebugDot_flags_enum CUgraphDebugDot_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUuserObject_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags;

/* "cuda/ccuda.pxd":1583
 *     CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = 1
 * 
 * ctypedef CUuserObject_flags_enum CUuserObject_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUuserObjectRetain_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum __pyx_t_4cuda_5ccuda_CUuserObject_flags;

/* "cuda/ccuda.pxd":1588
 *     CU_GRAPH_USER_OBJECT_MOVE = 1
 * 
 * ctypedef CUuserObjectRetain_flags_enum CUuserObjectRetain_flags             # <<<<<<<<<<<<<<
 * 
 * cdef enum CUgraphInstantiate_flags_enum:
 */
typedef enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags;

/* "cuda/ccuda.pxd":1593
 *     CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH = 1
 * 
 * ctypedef CUgraphInstantiate_flags_enum CUgraphInstantiate_flags             # <<<<<<<<<<<<<<
 * 
 * cdef CUresult cuGetErrorString(CUresult error, const char** pStr) nogil except ?CUDA_ERROR_NOT_FOUND
 */
typedef enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags;

/* "cuda/_lib/utils.pxd":12
 * from libcpp.vector cimport vector
 * 
 * cdef class HelperKernelParams:             # <<<<<<<<<<<<<<
 *     cdef Py_buffer _pybuffer
 *     cdef bint _pyobj_acquired
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams {
  PyObject_HEAD
  Py_buffer _pybuffer;
  int _pyobj_acquired;
  void **_ckernelParams;
  char *_ckernelParamsData;
  int _length;
  int _malloc_list_created;
};


/* "cuda/_lib/utils.pxd":20
 *     cdef bint _malloc_list_created
 * 
 * cdef class HelperInputVoidPtr:             # <<<<<<<<<<<<<<
 *     cdef Py_buffer _pybuffer
 *     cdef void* _cptr
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr {
  PyObject_HEAD
  Py_buffer _pybuffer;
  void *_cptr;
  int _pyobj_acquired;
};


/* "cuda/_lib/utils.pxd":25
 *     cdef bint _pyobj_acquired
 * 
 * cdef class HelperCUmemPool_attribute:             # <<<<<<<<<<<<<<
 *     cdef void* _cptr
 *     cdef ccuda.CUmemPool_attribute_enum _attr
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute {
  PyObject_HEAD
  void *_cptr;
  enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum _attr;
  int _is_getter;
  int _int_val;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *_cuuint64_t_val;
};


/* "cuda/_lib/utils.pxd":34
 *     cdef cuda.cuuint64_t _cuuint64_t_val
 * 
 * cdef class HelperCUmem_range_attribute:             # <<<<<<<<<<<<<<
 *     cdef void* _cptr
 *     cdef ccuda.CUmem_range_attribute_enum _attr
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmem_range_attribute {
  PyObject_HEAD
  void *_cptr;
  enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum _attr;
  size_t _data_size;
  int _int_val;
  int *_int_val_list;
};


/* "cuda/_lib/utils.pxd":43
 *     cdef int* _int_val_list # 32 bit integer array
 * 
 * cdef class HelperCUpointer_attribute:             # <<<<<<<<<<<<<<
 *     cdef void* _cptr
 *     cdef ccuda.CUpointer_attribute_enum _attr
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute {
  PyObject_HEAD
  void *_cptr;
  enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum _attr;
  int _is_getter;
  struct __pyx_obj_4cuda_4cuda_CUcontext *_ctx;
  unsigned int _uint;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_devptr;
  void **_void;
  struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS *_token;
  int _bool;
  unsigned PY_LONG_LONG _ull;
  size_t _size;
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *_mempool;
};


/* "cuda/_lib/utils.pxd":59
 *     cdef cuda.CUmemoryPool _mempool
 * 
 * cdef class HelperCUgraphMem_attribute:             # <<<<<<<<<<<<<<
 *     cdef void* _cptr
 *     cdef ccuda.CUgraphMem_attribute_enum _attr
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute {
  PyObject_HEAD
  void *_cptr;
  enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum _attr;
  int _is_getter;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *_cuuint64_t_val;
};


/* "cuda/_lib/utils.pxd":67
 *     cdef cuda.cuuint64_t _cuuint64_t_val
 * 
 * cdef class HelperCUjit_option:             # <<<<<<<<<<<<<<
 *     cdef void* _cptr
 *     cdef ccuda.CUjit_option_enum _attr
 */
struct __pyx_obj_4cuda_4_lib_5utils_HelperCUjit_option {
  PyObject_HEAD
  void *_cptr;
  enum __pyx_t_4cuda_5ccuda_CUjit_option_enum _attr;
  unsigned int _uint;
  float _float;
  char *_charstar;
  enum __pyx_t_4cuda_5ccuda_CUjit_target_enum _target;
  enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum _fallback;
  int _int;
  enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum _cacheMode;
  std::vector<char *>  _charstarstar;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *_voidstarstar;
};


/* "cuda/_lib/utils.pxd":82
 *     cdef InputVoidPtrPtrHelper _voidstarstar # list of addresses
 * 
 * cdef class InputVoidPtrPtrHelper:             # <<<<<<<<<<<<<<
 *     cdef void** _cptr
 */
struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper {
  PyObject_HEAD
  void **_cptr;
};


/* "cuda/cuda.pxd":11
 * cimport cuda._lib.utils as utils
 * 
 * cdef class CUcontext:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUcontext {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUcontext *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":24
 *     cdef bint _ptr_owner
 * 
 * cdef class CUmodule:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUmodule {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUmodule *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":37
 *     cdef bint _ptr_owner
 * 
 * cdef class CUfunction:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUfunction {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUfunction *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":50
 *     cdef bint _ptr_owner
 * 
 * cdef class CUarray:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUarray {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUarray *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":63
 *     cdef bint _ptr_owner
 * 
 * cdef class CUmipmappedArray:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUmipmappedArray {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUmipmappedArray *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":76
 *     cdef bint _ptr_owner
 * 
 * cdef class CUtexref:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUtexref {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUtexref *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":89
 *     cdef bint _ptr_owner
 * 
 * cdef class CUsurfref:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUsurfref {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUsurfref *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":102
 *     cdef bint _ptr_owner
 * 
 * cdef class CUevent:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUevent {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUevent *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":115
 *     cdef bint _ptr_owner
 * 
 * cdef class CUstream:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstream {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUstream *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":128
 *     cdef bint _ptr_owner
 * 
 * cdef class CUgraphicsResource:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUgraphicsResource {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUgraphicsResource *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":141
 *     cdef bint _ptr_owner
 * 
 * cdef class CUexternalMemory:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUexternalMemory {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUexternalMemory *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":154
 *     cdef bint _ptr_owner
 * 
 * cdef class CUexternalSemaphore:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":167
 *     cdef bint _ptr_owner
 * 
 * cdef class CUgraph:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUgraph {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUgraph *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":180
 *     cdef bint _ptr_owner
 * 
 * cdef class CUgraphNode:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUgraphNode {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUgraphNode *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":193
 *     cdef bint _ptr_owner
 * 
 * cdef class CUgraphExec:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUgraphExec {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUgraphExec *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":206
 *     cdef bint _ptr_owner
 * 
 * cdef class CUmemoryPool:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUmemoryPool {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUmemoryPool *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":219
 *     cdef bint _ptr_owner
 * 
 * cdef class CUuserObject:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUuserObject {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUuserObject *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":232
 *     cdef bint _ptr_owner
 * 
 * cdef class CUlinkState:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUlinkState {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUlinkState *_ptr;
  int _ptr_owner;
  PyObject *_keepalive;
};


/* "cuda/cuda.pxd":246
 *     cdef list _keepalive
 * 
 * cdef class CUhostFn:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUhostFn {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUhostFn *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":259
 *     cdef bint _ptr_owner
 * 
 * cdef class CUstreamCallback:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamCallback {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUstreamCallback *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":272
 *     cdef bint _ptr_owner
 * 
 * cdef class CUoccupancyB2DSize:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUoccupancyB2DSize *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":285
 *     cdef bint _ptr_owner
 * 
 * cdef class CUuuid_st:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUuuid_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUuuid_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":302
 *     cdef bint _ptr_owner
 * 
 * cdef class CUipcEventHandle_st:             # <<<<<<<<<<<<<<
 *     """
 *     CUDA IPC event handle
 */
struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":320
 *     cdef bint _ptr_owner
 * 
 * cdef class CUipcMemHandle_st:             # <<<<<<<<<<<<<<
 *     """
 *     CUDA IPC mem handle
 */
struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":338
 *     cdef bint _ptr_owner
 * 
 * cdef class CUstreamMemOpWaitValueParams_st:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_address;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *_value64;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_alias;
};


/* "cuda/cuda.pxd":366
 *     cdef CUdeviceptr _alias
 * 
 * cdef class CUstreamMemOpWriteValueParams_st:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_address;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *_value64;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_alias;
};


/* "cuda/cuda.pxd":394
 *     cdef CUdeviceptr _alias
 * 
 * cdef class CUstreamMemOpFlushRemoteWritesParams_st:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":413
 *     cdef bint _ptr_owner
 * 
 * cdef class CUstreamBatchMemOpParams_union:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union {
  PyObject_HEAD
  union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *_waitValue;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *_writeValue;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *_flushRemoteWrites;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *_pad;
};


/* "cuda/cuda.pxd":442
 *     cdef cuuint64_t _pad
 * 
 * cdef class CUdevprop_st:             # <<<<<<<<<<<<<<
 *     """
 *     Legacy device properties
 */
struct __pyx_obj_4cuda_4cuda_CUdevprop_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUdevprop_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":478
 *     cdef bint _ptr_owner
 * 
 * cdef class CUaccessPolicyWindow_st:             # <<<<<<<<<<<<<<
 *     """
 *     Specifies an access policy for a window, a contiguous extent of
 */
struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cbase_ptr;
};


/* "cuda/cuda.pxd":517
 *     cdef utils.HelperInputVoidPtr _cbase_ptr
 * 
 * cdef class CUDA_KERNEL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     GPU kernel node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUfunction *_func;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *_ckernelParams;
};


/* "cuda/cuda.pxd":555
 *     cdef utils.HelperKernelParams _ckernelParams
 * 
 * cdef class CUDA_MEMSET_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     Memset node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_dst;
};


/* "cuda/cuda.pxd":584
 *     cdef CUdeviceptr _dst
 * 
 * cdef class CUDA_HOST_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     Host node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUhostFn *_fn;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cuserData;
};


/* "cuda/cuda.pxd":606
 *     cdef utils.HelperInputVoidPtr _cuserData
 * 
 * cdef class CUkernelNodeAttrValue_union:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union {
  PyObject_HEAD
  union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *_accessPolicyWindow;
};


/* "cuda/cuda.pxd":626
 *     cdef CUaccessPolicyWindow _accessPolicyWindow
 * 
 * cdef class CUstreamAttrValue_union:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union {
  PyObject_HEAD
  union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *_accessPolicyWindow;
};


/* "cuda/cuda.pxd":646
 *     cdef CUaccessPolicyWindow _accessPolicyWindow
 * 
 * cdef class CUexecAffinitySmCount_st:             # <<<<<<<<<<<<<<
 *     """
 *     Value for CU_EXEC_AFFINITY_TYPE_SM_COUNT
 */
struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":664
 *     cdef bint _ptr_owner
 * 
 * cdef class _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *_smCount;
};


/* "cuda/cuda.pxd":681
 *     cdef CUexecAffinitySmCount _smCount
 * 
 * cdef class CUexecAffinityParam_st:             # <<<<<<<<<<<<<<
 *     """
 *     Execution Affinity Parameters
 */
struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *_param;
};


/* "cuda/cuda.pxd":702
 *     cdef _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u _param
 * 
 * cdef class CUDA_MEMCPY2D_st:             # <<<<<<<<<<<<<<
 *     """
 *     2D memory copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_csrcHost;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_srcDevice;
  struct __pyx_obj_4cuda_4cuda_CUarray *_srcArray;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cdstHost;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_dstDevice;
  struct __pyx_obj_4cuda_4cuda_CUarray *_dstArray;
};


/* "cuda/cuda.pxd":756
 *     cdef CUarray _dstArray
 * 
 * cdef class CUDA_MEMCPY3D_st:             # <<<<<<<<<<<<<<
 *     """
 *     3D memory copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_csrcHost;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_srcDevice;
  struct __pyx_obj_4cuda_4cuda_CUarray *_srcArray;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_creserved0;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cdstHost;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_dstDevice;
  struct __pyx_obj_4cuda_4cuda_CUarray *_dstArray;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_creserved1;
};


/* "cuda/cuda.pxd":831
 *     cdef utils.HelperInputVoidPtr _creserved1
 * 
 * cdef class CUDA_MEMCPY3D_PEER_st:             # <<<<<<<<<<<<<<
 *     """
 *     3D memory cross-context copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_csrcHost;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_srcDevice;
  struct __pyx_obj_4cuda_4cuda_CUarray *_srcArray;
  struct __pyx_obj_4cuda_4cuda_CUcontext *_srcContext;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cdstHost;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_dstDevice;
  struct __pyx_obj_4cuda_4cuda_CUarray *_dstArray;
  struct __pyx_obj_4cuda_4cuda_CUcontext *_dstContext;
};


/* "cuda/cuda.pxd":907
 *     cdef CUcontext _dstContext
 * 
 * cdef class CUDA_ARRAY_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *     """
 *     Array descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":931
 *     cdef bint _ptr_owner
 * 
 * cdef class CUDA_ARRAY3D_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *     """
 *     3D array descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":959
 *     cdef bint _ptr_owner
 * 
 * cdef class _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *_ptr;
};


/* "cuda/cuda.pxd":979
 *     cdef ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st* _ptr
 * 
 * cdef class CUDA_ARRAY_SPARSE_PROPERTIES_st:             # <<<<<<<<<<<<<<
 *     """
 *     CUDA array sparse properties
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *_tileExtent;
};


/* "cuda/cuda.pxd":1007
 *     cdef _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s _tileExtent
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUarray *_hArray;
};


/* "cuda/cuda.pxd":1024
 *     cdef CUarray _hArray
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *_hMipmappedArray;
};


/* "cuda/cuda.pxd":1041
 *     cdef CUmipmappedArray _hMipmappedArray
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_devPtr;
};


/* "cuda/cuda.pxd":1064
 *     cdef CUdeviceptr _devPtr
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_devPtr;
};


/* "cuda/cuda.pxd":1091
 *     cdef CUdeviceptr _devPtr
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
};


/* "cuda/cuda.pxd":1107
 *     cdef ccuda.CUDA_RESOURCE_DESC_st* _ptr
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *_array;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *_mipmap;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *_linear;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *_pitch2D;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *_reserved;
};


/* "cuda/cuda.pxd":1136
 *     cdef _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s _reserved
 * 
 * cdef class CUDA_RESOURCE_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Resource descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *_res;
};


/* "cuda/cuda.pxd":1159
 *     cdef _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u _res
 * 
 * cdef class CUDA_TEXTURE_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     Texture descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":1195
 *     cdef bint _ptr_owner
 * 
 * cdef class CUDA_RESOURCE_VIEW_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     Resource view descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":1229
 *     cdef bint _ptr_owner
 * 
 * cdef class CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:             # <<<<<<<<<<<<<<
 *     """
 *     GPU Direct v3 tokens
 */
struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":1249
 *     cdef bint _ptr_owner
 * 
 * cdef class CUDA_LAUNCH_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     Kernel launch parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUfunction *_function;
  struct __pyx_obj_4cuda_4cuda_CUstream *_hStream;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *_ckernelParams;
};


/* "cuda/cuda.pxd":1288
 *     cdef utils.HelperKernelParams _ckernelParams
 * 
 * cdef class _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_chandle;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cname;
};


/* "cuda/cuda.pxd":1308
 *     cdef utils.HelperInputVoidPtr _cname
 * 
 * cdef class _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *_win32;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cnvSciBufObject;
};


/* "cuda/cuda.pxd":1330
 *     cdef utils.HelperInputVoidPtr _cnvSciBufObject
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     External memory handle descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *_handle;
};


/* "cuda/cuda.pxd":1357
 *     cdef _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u _handle
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     External memory buffer descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":1381
 *     cdef bint _ptr_owner
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     External memory mipmap descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *_arrayDesc;
};


/* "cuda/cuda.pxd":1407
 *     cdef CUDA_ARRAY3D_DESCRIPTOR _arrayDesc
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_chandle;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cname;
};


/* "cuda/cuda.pxd":1427
 *     cdef utils.HelperInputVoidPtr _cname
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *_ptr;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *_win32;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cnvSciSyncObj;
};


/* "cuda/cuda.pxd":1449
 *     cdef utils.HelperInputVoidPtr _cnvSciSyncObj
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore handle descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *_handle;
};


/* "cuda/cuda.pxd":1474
 *     cdef _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u _handle
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *_ptr;
};


/* "cuda/cuda.pxd":1490
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st* _ptr
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *_ptr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cfence;
};


/* "cuda/cuda.pxd":1509
 *     cdef utils.HelperInputVoidPtr _cfence
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *_ptr;
};


/* "cuda/cuda.pxd":1525
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st* _ptr
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *_ptr;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *_fence;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *_nvSciSync;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *_keyedMutex;
};


/* "cuda/cuda.pxd":1550
 *     cdef _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s _keyedMutex
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore signal parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *_params;
};


/* "cuda/cuda.pxd":1580
 *     cdef _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s _params
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *_ptr;
};


/* "cuda/cuda.pxd":1596
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st* _ptr
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *_ptr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cfence;
};


/* "cuda/cuda.pxd":1615
 *     cdef utils.HelperInputVoidPtr _cfence
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *_ptr;
};


/* "cuda/cuda.pxd":1633
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st* _ptr
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *_ptr;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *_fence;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *_nvSciSync;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *_keyedMutex;
};


/* "cuda/cuda.pxd":1658
 *     cdef _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s _keyedMutex
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore wait parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *_params;
};


/* "cuda/cuda.pxd":1688
 *     cdef _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s _params
 * 
 * cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     Semaphore signal node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *_ptr;
  int _ptr_owner;
  size_t _extSemArray_length;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *_extSemArray;
  size_t _paramsArray_length;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *_paramsArray;
};


/* "cuda/cuda.pxd":1715
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* _paramsArray
 * 
 * cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     Semaphore wait node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *_ptr;
  int _ptr_owner;
  size_t _extSemArray_length;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *_extSemArray;
  size_t _paramsArray_length;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *_paramsArray;
};


/* "cuda/cuda.pxd":1742
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* _paramsArray
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *_mipmap;
  struct __pyx_obj_4cuda_4cuda_CUarray *_array;
};


/* "cuda/cuda.pxd":1762
 *     cdef CUarray _array
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *_ptr;
};


/* "cuda/cuda.pxd":1792
 *     cdef ccuda.CUarrayMapInfo_st* _ptr
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *_ptr;
};


/* "cuda/cuda.pxd":1812
 *     cdef ccuda.CUarrayMapInfo_st* _ptr
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *_ptr;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *_sparseLevel;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *_miptail;
};


/* "cuda/cuda.pxd":1832
 *     cdef _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s _miptail
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *_ptr;
  struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *_memHandle;
};


/* "cuda/cuda.pxd":1849
 *     cdef CUmemGenericAllocationHandle _memHandle
 * 
 * cdef class CUarrayMapInfo_st:             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the CUDA array or CUDA mipmapped array memory mapping
 */
struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *_resource;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *_subresource;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *_memHandle;
};


/* "cuda/cuda.pxd":1891
 *     cdef _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u _memHandle
 * 
 * cdef class CUmemLocation_st:             # <<<<<<<<<<<<<<
 *     """
 *     Specifies a memory location.
 */
struct __pyx_obj_4cuda_4cuda_CUmemLocation_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUmemLocation_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":1911
 *     cdef bint _ptr_owner
 * 
 * cdef class _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *_ptr;
};


/* "cuda/cuda.pxd":1933
 *     cdef ccuda.CUmemAllocationProp_st* _ptr
 * 
 * cdef class CUmemAllocationProp_st:             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the allocation properties for a allocation.
 */
struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUmemLocation *_location;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cwin32HandleMetaData;
  struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *_allocFlags;
};


/* "cuda/cuda.pxd":1966
 *     cdef _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s _allocFlags
 * 
 * cdef class CUmemAccessDesc_st:             # <<<<<<<<<<<<<<
 *     """
 *     Memory access descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUmemLocation *_location;
};


/* "cuda/cuda.pxd":1987
 *     cdef CUmemLocation _location
 * 
 * cdef class CUmemPoolProps_st:             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the properties of allocations made from the pool.
 */
struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUmemLocation *_location;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *_cwin32SecurityAttributes;
};


/* "cuda/cuda.pxd":2020
 *     cdef utils.HelperInputVoidPtr _cwin32SecurityAttributes
 * 
 * cdef class CUmemPoolPtrExportData_st:             # <<<<<<<<<<<<<<
 *     """
 *     Opaque data for exporting a pool allocation
 */
struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":2038
 *     cdef bint _ptr_owner
 * 
 * cdef class CUDA_MEM_ALLOC_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *     """
 *     Memory allocation node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st {
  PyObject_HEAD
  struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *_ptr;
  int _ptr_owner;
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *_poolProps;
  size_t _accessDescs_length;
  __pyx_t_4cuda_5ccuda_CUmemAccessDesc *_accessDescs;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *_dptr;
};


/* "cuda/cuda.pxd":2072
 *     cdef CUdeviceptr _dptr
 * 
 * cdef class CUuuid(CUuuid_st):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUuuid {
  struct __pyx_obj_4cuda_4cuda_CUuuid_st __pyx_base;
};


/* "cuda/cuda.pxd":2088
 *     pass
 * 
 * cdef class CUipcEventHandle_v1(CUipcEventHandle_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA IPC event handle
 */
struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_v1 {
  struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st __pyx_base;
};


/* "cuda/cuda.pxd":2105
 *     pass
 * 
 * cdef class CUipcEventHandle(CUipcEventHandle_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA IPC event handle
 */
struct __pyx_obj_4cuda_4cuda_CUipcEventHandle {
  struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st __pyx_base;
};


/* "cuda/cuda.pxd":2122
 *     pass
 * 
 * cdef class CUipcMemHandle_v1(CUipcMemHandle_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA IPC mem handle
 */
struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_v1 {
  struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st __pyx_base;
};


/* "cuda/cuda.pxd":2139
 *     pass
 * 
 * cdef class CUipcMemHandle(CUipcMemHandle_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA IPC mem handle
 */
struct __pyx_obj_4cuda_4cuda_CUipcMemHandle {
  struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st __pyx_base;
};


/* "cuda/cuda.pxd":2156
 *     pass
 * 
 * cdef class CUstreamBatchMemOpParams_v1(CUstreamBatchMemOpParams_union):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_v1 {
  struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union __pyx_base;
};


/* "cuda/cuda.pxd":2180
 *     pass
 * 
 * cdef class CUstreamBatchMemOpParams(CUstreamBatchMemOpParams_union):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams {
  struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union __pyx_base;
};


/* "cuda/cuda.pxd":2204
 *     pass
 * 
 * cdef class CUdevprop_v1(CUdevprop_st):             # <<<<<<<<<<<<<<
 *     """
 *     Legacy device properties
 */
struct __pyx_obj_4cuda_4cuda_CUdevprop_v1 {
  struct __pyx_obj_4cuda_4cuda_CUdevprop_st __pyx_base;
};


/* "cuda/cuda.pxd":2239
 *     pass
 * 
 * cdef class CUdevprop(CUdevprop_st):             # <<<<<<<<<<<<<<
 *     """
 *     Legacy device properties
 */
struct __pyx_obj_4cuda_4cuda_CUdevprop {
  struct __pyx_obj_4cuda_4cuda_CUdevprop_st __pyx_base;
};


/* "cuda/cuda.pxd":2274
 *     pass
 * 
 * cdef class CUaccessPolicyWindow_v1(CUaccessPolicyWindow_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies an access policy for a window, a contiguous extent of
 */
struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_v1 {
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st __pyx_base;
};


/* "cuda/cuda.pxd":2311
 *     pass
 * 
 * cdef class CUaccessPolicyWindow(CUaccessPolicyWindow_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies an access policy for a window, a contiguous extent of
 */
struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow {
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st __pyx_base;
};


/* "cuda/cuda.pxd":2348
 *     pass
 * 
 * cdef class CUDA_KERNEL_NODE_PARAMS_v1(CUDA_KERNEL_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     GPU kernel node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":2383
 *     pass
 * 
 * cdef class CUDA_KERNEL_NODE_PARAMS(CUDA_KERNEL_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     GPU kernel node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":2418
 *     pass
 * 
 * cdef class CUDA_MEMSET_NODE_PARAMS_v1(CUDA_MEMSET_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Memset node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":2445
 *     pass
 * 
 * cdef class CUDA_MEMSET_NODE_PARAMS(CUDA_MEMSET_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Memset node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":2472
 *     pass
 * 
 * cdef class CUDA_HOST_NODE_PARAMS_v1(CUDA_HOST_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Host node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":2491
 *     pass
 * 
 * cdef class CUDA_HOST_NODE_PARAMS(CUDA_HOST_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Host node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":2510
 *     pass
 * 
 * cdef class CUkernelNodeAttrValue_v1(CUkernelNodeAttrValue_union):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_v1 {
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union __pyx_base;
};


/* "cuda/cuda.pxd":2528
 *     pass
 * 
 * cdef class CUkernelNodeAttrValue(CUkernelNodeAttrValue_union):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue {
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union __pyx_base;
};


/* "cuda/cuda.pxd":2546
 *     pass
 * 
 * cdef class CUstreamAttrValue_v1(CUstreamAttrValue_union):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_v1 {
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union __pyx_base;
};


/* "cuda/cuda.pxd":2564
 *     pass
 * 
 * cdef class CUstreamAttrValue(CUstreamAttrValue_union):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue {
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union __pyx_base;
};


/* "cuda/cuda.pxd":2582
 *     pass
 * 
 * cdef class CUexecAffinitySmCount_v1(CUexecAffinitySmCount_st):             # <<<<<<<<<<<<<<
 *     """
 *     Value for CU_EXEC_AFFINITY_TYPE_SM_COUNT
 */
struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_v1 {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st __pyx_base;
};


/* "cuda/cuda.pxd":2599
 *     pass
 * 
 * cdef class CUexecAffinitySmCount(CUexecAffinitySmCount_st):             # <<<<<<<<<<<<<<
 *     """
 *     Value for CU_EXEC_AFFINITY_TYPE_SM_COUNT
 */
struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st __pyx_base;
};


/* "cuda/cuda.pxd":2616
 *     pass
 * 
 * cdef class CUexecAffinityParam_v1(CUexecAffinityParam_st):             # <<<<<<<<<<<<<<
 *     """
 *     Execution Affinity Parameters
 */
struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_v1 {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st __pyx_base;
};


/* "cuda/cuda.pxd":2635
 *     pass
 * 
 * cdef class CUexecAffinityParam(CUexecAffinityParam_st):             # <<<<<<<<<<<<<<
 *     """
 *     Execution Affinity Parameters
 */
struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st __pyx_base;
};


/* "cuda/cuda.pxd":2654
 *     pass
 * 
 * cdef class CUDA_MEMCPY2D_v2(CUDA_MEMCPY2D_st):             # <<<<<<<<<<<<<<
 *     """
 *     2D memory copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_v2 {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st __pyx_base;
};


/* "cuda/cuda.pxd":2701
 *     pass
 * 
 * cdef class CUDA_MEMCPY2D(CUDA_MEMCPY2D_st):             # <<<<<<<<<<<<<<
 *     """
 *     2D memory copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st __pyx_base;
};


/* "cuda/cuda.pxd":2748
 *     pass
 * 
 * cdef class CUDA_MEMCPY3D_v2(CUDA_MEMCPY3D_st):             # <<<<<<<<<<<<<<
 *     """
 *     3D memory copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_v2 {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st __pyx_base;
};


/* "cuda/cuda.pxd":2814
 *     pass
 * 
 * cdef class CUDA_MEMCPY3D(CUDA_MEMCPY3D_st):             # <<<<<<<<<<<<<<
 *     """
 *     3D memory copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st __pyx_base;
};


/* "cuda/cuda.pxd":2880
 *     pass
 * 
 * cdef class CUDA_MEMCPY3D_PEER_v1(CUDA_MEMCPY3D_PEER_st):             # <<<<<<<<<<<<<<
 *     """
 *     3D memory cross-context copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st __pyx_base;
};


/* "cuda/cuda.pxd":2947
 *     pass
 * 
 * cdef class CUDA_MEMCPY3D_PEER(CUDA_MEMCPY3D_PEER_st):             # <<<<<<<<<<<<<<
 *     """
 *     3D memory cross-context copy parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st __pyx_base;
};


/* "cuda/cuda.pxd":3014
 *     pass
 * 
 * cdef class CUDA_ARRAY_DESCRIPTOR_v2(CUDA_ARRAY_DESCRIPTOR_st):             # <<<<<<<<<<<<<<
 *     """
 *     Array descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2 {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st __pyx_base;
};


/* "cuda/cuda.pxd":3037
 *     pass
 * 
 * cdef class CUDA_ARRAY_DESCRIPTOR(CUDA_ARRAY_DESCRIPTOR_st):             # <<<<<<<<<<<<<<
 *     """
 *     Array descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st __pyx_base;
};


/* "cuda/cuda.pxd":3060
 *     pass
 * 
 * cdef class CUDA_ARRAY3D_DESCRIPTOR_v2(CUDA_ARRAY3D_DESCRIPTOR_st):             # <<<<<<<<<<<<<<
 *     """
 *     3D array descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2 {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st __pyx_base;
};


/* "cuda/cuda.pxd":3087
 *     pass
 * 
 * cdef class CUDA_ARRAY3D_DESCRIPTOR(CUDA_ARRAY3D_DESCRIPTOR_st):             # <<<<<<<<<<<<<<
 *     """
 *     3D array descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st __pyx_base;
};


/* "cuda/cuda.pxd":3114
 *     pass
 * 
 * cdef class CUDA_ARRAY_SPARSE_PROPERTIES_v1(CUDA_ARRAY_SPARSE_PROPERTIES_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA array sparse properties
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st __pyx_base;
};


/* "cuda/cuda.pxd":3140
 *     pass
 * 
 * cdef class CUDA_ARRAY_SPARSE_PROPERTIES(CUDA_ARRAY_SPARSE_PROPERTIES_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA array sparse properties
 */
struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st __pyx_base;
};


/* "cuda/cuda.pxd":3166
 *     pass
 * 
 * cdef class CUDA_RESOURCE_DESC_v1(CUDA_RESOURCE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Resource descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3187
 *     pass
 * 
 * cdef class CUDA_RESOURCE_DESC(CUDA_RESOURCE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Resource descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3208
 *     pass
 * 
 * cdef class CUDA_TEXTURE_DESC_v1(CUDA_TEXTURE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     Texture descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3243
 *     pass
 * 
 * cdef class CUDA_TEXTURE_DESC(CUDA_TEXTURE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     Texture descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3278
 *     pass
 * 
 * cdef class CUDA_RESOURCE_VIEW_DESC_v1(CUDA_RESOURCE_VIEW_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     Resource view descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3311
 *     pass
 * 
 * cdef class CUDA_RESOURCE_VIEW_DESC(CUDA_RESOURCE_VIEW_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     Resource view descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3344
 *     pass
 * 
 * cdef class CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st):             # <<<<<<<<<<<<<<
 *     """
 *     GPU Direct v3 tokens
 */
struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st __pyx_base;
};


/* "cuda/cuda.pxd":3363
 *     pass
 * 
 * cdef class CUDA_POINTER_ATTRIBUTE_P2P_TOKENS(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st):             # <<<<<<<<<<<<<<
 *     """
 *     GPU Direct v3 tokens
 */
struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS {
  struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st __pyx_base;
};


/* "cuda/cuda.pxd":3382
 *     pass
 * 
 * cdef class CUDA_LAUNCH_PARAMS_v1(CUDA_LAUNCH_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Kernel launch parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3417
 *     pass
 * 
 * cdef class CUDA_LAUNCH_PARAMS(CUDA_LAUNCH_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Kernel launch parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3452
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External memory handle descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3477
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_HANDLE_DESC(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External memory handle descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3502
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External memory buffer descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3525
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_BUFFER_DESC(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External memory buffer descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3548
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External memory mipmap descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3572
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External memory mipmap descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3596
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore handle descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3619
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore handle descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st __pyx_base;
};


/* "cuda/cuda.pxd":3642
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore signal parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3670
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore signal parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3698
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore wait parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3726
 *     pass
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore wait parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3754
 *     pass
 * 
 * cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Semaphore signal node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3776
 *     pass
 * 
 * cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Semaphore signal node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3798
 *     pass
 * 
 * cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Semaphore wait node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3820
 *     pass
 * 
 * cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Semaphore wait node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":3842
 *     pass
 * 
 * cdef class CUarrayMapInfo_v1(CUarrayMapInfo_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the CUDA array or CUDA mipmapped array memory mapping
 */
struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_v1 {
  struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st __pyx_base;
};


/* "cuda/cuda.pxd":3880
 *     pass
 * 
 * cdef class CUarrayMapInfo(CUarrayMapInfo_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the CUDA array or CUDA mipmapped array memory mapping
 */
struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo {
  struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st __pyx_base;
};


/* "cuda/cuda.pxd":3918
 *     pass
 * 
 * cdef class CUmemLocation_v1(CUmemLocation_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies a memory location.
 */
struct __pyx_obj_4cuda_4cuda_CUmemLocation_v1 {
  struct __pyx_obj_4cuda_4cuda_CUmemLocation_st __pyx_base;
};


/* "cuda/cuda.pxd":3937
 *     pass
 * 
 * cdef class CUmemLocation(CUmemLocation_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies a memory location.
 */
struct __pyx_obj_4cuda_4cuda_CUmemLocation {
  struct __pyx_obj_4cuda_4cuda_CUmemLocation_st __pyx_base;
};


/* "cuda/cuda.pxd":3956
 *     pass
 * 
 * cdef class CUmemAllocationProp_v1(CUmemAllocationProp_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the allocation properties for a allocation.
 */
struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_v1 {
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st __pyx_base;
};


/* "cuda/cuda.pxd":3985
 *     pass
 * 
 * cdef class CUmemAllocationProp(CUmemAllocationProp_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the allocation properties for a allocation.
 */
struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp {
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st __pyx_base;
};


/* "cuda/cuda.pxd":4014
 *     pass
 * 
 * cdef class CUmemAccessDesc_v1(CUmemAccessDesc_st):             # <<<<<<<<<<<<<<
 *     """
 *     Memory access descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_v1 {
  struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st __pyx_base;
};


/* "cuda/cuda.pxd":4033
 *     pass
 * 
 * cdef class CUmemAccessDesc(CUmemAccessDesc_st):             # <<<<<<<<<<<<<<
 *     """
 *     Memory access descriptor
 */
struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc {
  struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st __pyx_base;
};


/* "cuda/cuda.pxd":4052
 *     pass
 * 
 * cdef class CUmemPoolProps_v1(CUmemPoolProps_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the properties of allocations made from the pool.
 */
struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_v1 {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st __pyx_base;
};


/* "cuda/cuda.pxd":4082
 *     pass
 * 
 * cdef class CUmemPoolProps(CUmemPoolProps_st):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the properties of allocations made from the pool.
 */
struct __pyx_obj_4cuda_4cuda_CUmemPoolProps {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st __pyx_base;
};


/* "cuda/cuda.pxd":4112
 *     pass
 * 
 * cdef class CUmemPoolPtrExportData_v1(CUmemPoolPtrExportData_st):             # <<<<<<<<<<<<<<
 *     """
 *     Opaque data for exporting a pool allocation
 */
struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_v1 {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st __pyx_base;
};


/* "cuda/cuda.pxd":4129
 *     pass
 * 
 * cdef class CUmemPoolPtrExportData(CUmemPoolPtrExportData_st):             # <<<<<<<<<<<<<<
 *     """
 *     Opaque data for exporting a pool allocation
 */
struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st __pyx_base;
};


/* "cuda/cuda.pxd":4146
 *     pass
 * 
 * cdef class CUDA_MEM_ALLOC_NODE_PARAMS(CUDA_MEM_ALLOC_NODE_PARAMS_st):             # <<<<<<<<<<<<<<
 *     """
 *     Memory allocation node parameters
 */
struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st __pyx_base;
};


/* "cuda/cuda.pxd":4175
 *     pass
 * 
 * cdef class cuuint32_t:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_cuuint32_t {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_cuuint32_t *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4188
 *     cdef bint _ptr_owner
 * 
 * cdef class cuuint64_t:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_cuuint64_t {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_cuuint64_t *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4201
 *     cdef bint _ptr_owner
 * 
 * cdef class CUdeviceptr_v2:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUdeviceptr_v2 *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4214
 *     cdef bint _ptr_owner
 * 
 * cdef class CUdeviceptr:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUdeviceptr {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUdeviceptr *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4227
 *     cdef bint _ptr_owner
 * 
 * cdef class CUdevice_v1:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUdevice_v1 {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUdevice_v1 *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4240
 *     cdef bint _ptr_owner
 * 
 * cdef class CUdevice:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUdevice {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUdevice *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4253
 *     cdef bint _ptr_owner
 * 
 * cdef class CUtexObject_v1:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUtexObject_v1 *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4266
 *     cdef bint _ptr_owner
 * 
 * cdef class CUtexObject:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUtexObject {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUtexObject *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4279
 *     cdef bint _ptr_owner
 * 
 * cdef class CUsurfObject_v1:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUsurfObject_v1 *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4292
 *     cdef bint _ptr_owner
 * 
 * cdef class CUsurfObject:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUsurfObject {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUsurfObject *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4305
 *     cdef bint _ptr_owner
 * 
 * cdef class CUmemGenericAllocationHandle_v1:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1 *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pxd":4318
 *     cdef bint _ptr_owner
 * 
 * cdef class CUmemGenericAllocationHandle:             # <<<<<<<<<<<<<<
 *     """
 * 
 */
struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle {
  PyObject_HEAD
  __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *_ptr;
  int _ptr_owner;
};


/* "cuda/cuda.pyx":9112
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate_v3(paramsArray : List[CUexecAffinityParam], int numParams, unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context with execution affinity.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 {
  PyObject_HEAD
  PyObject *__pyx_v_paramsArray;
};


/* "cuda/cuda.pyx":9224
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 *     cdef CUcontext pctx = CUcontext()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":10284
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadDataEx(image, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Load a module's data with options.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx {
  PyObject_HEAD
  PyObject *__pyx_v_options;
};


/* "cuda/cuda.pyx":10337
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef CUmodule module = CUmodule()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":10618
 * 
 * @cython.embedsignature(True)
 * def cuLinkCreate(unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Creates a pending JIT linker invocation.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate {
  PyObject_HEAD
  PyObject *__pyx_v_options;
};


/* "cuda/cuda.pyx":10667
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":10682
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddData(state not None : CUlinkState, typename not None : CUjitInputType, data, size_t size, char* name, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add an input to a pending linker invocation.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData {
  PyObject_HEAD
  PyObject *__pyx_v_options;
};


/* "cuda/cuda.pyx":10735
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":10749
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddFile(state not None : CUlinkState, typename not None : CUjitInputType, char* path, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add a file input to a pending linker invocation.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile {
  PyObject_HEAD
  PyObject *__pyx_v_options;
};


/* "cuda/cuda.pyx":10801
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":16437
 * 
 * @cython.embedsignature(True)
 * def cuMemMapArrayAsync(mapInfoList : List[CUarrayMapInfo], unsigned int count, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync {
  PyObject_HEAD
  PyObject *__pyx_v_mapInfoList;
};


/* "cuda/cuda.pyx":16579
 *     """
 *     mapInfoList = [] if mapInfoList is None else mapInfoList
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":16639
 * 
 * @cython.embedsignature(True)
 * def cuMemSetAccess(ptr not None : CUdeviceptr, size_t size, desc : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Set the access flags for each location specified in `desc` for the given virtual address range.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess {
  PyObject_HEAD
  PyObject *__pyx_v_desc;
};


/* "cuda/cuda.pyx":16676
 *     """
 *     desc = [] if desc is None else desc
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":17201
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAccess(pool not None : CUmemoryPool, map : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Controls visibility of pools between devices.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess {
  PyObject_HEAD
  PyObject *__pyx_v_map;
};


/* "cuda/cuda.pyx":17232
 *     """
 *     map = [] if map is None else map
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":18047
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttributes(dataSizes : List[int], attributes : List[CUmem_range_attribute], size_t numAttributes, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query attributes of a given memory range.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes {
  PyObject_HEAD
  PyObject *__pyx_v_attributes;
  PyObject *__pyx_v_dataSizes;
};


/* "cuda/cuda.pyx":18099
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":18101
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":18171
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttributes(unsigned int numAttributes, attributes : List[CUpointer_attribute], ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes {
  PyObject_HEAD
  PyObject *__pyx_v_attributes;
};


/* "cuda/cuda.pyx":18220
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":18918
 * 
 * @cython.embedsignature(True)
 * def cuStreamUpdateCaptureDependencies(hStream not None : CUstream, dependencies : List[CUgraphNode], size_t numDependencies, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Update the set of dependencies in a capturing stream (11.3+)
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":18956
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":20074
 * 
 * @cython.embedsignature(True)
 * def cuSignalExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Signals a set of external semaphore objects.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync {
  PyObject_HEAD
  PyObject *__pyx_v_extSemArray;
  PyObject *__pyx_v_paramsArray;
};


/* "cuda/cuda.pyx":20155
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":20158
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":20187
 * 
 * @cython.embedsignature(True)
 * def cuWaitExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Waits on a set of external semaphore objects.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync {
  PyObject_HEAD
  PyObject *__pyx_v_extSemArray;
  PyObject *__pyx_v_paramsArray;
};


/* "cuda/cuda.pyx":20276
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":20279
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":20537
 * 
 * @cython.embedsignature(True)
 * def cuStreamBatchMemOp(stream not None : CUstream, unsigned int count, paramArray : List[CUstreamBatchMemOpParams], unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Batch operations to synchronize the stream via memory operations.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp {
  PyObject_HEAD
  PyObject *__pyx_v_paramArray;
};


/* "cuda/cuda.pyx":20584
 *     """
 *     paramArray = [] if paramArray is None else paramArray
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":21102
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernelMultiDevice(launchParamsList : List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice {
  PyObject_HEAD
  PyObject *__pyx_v_launchParamsList;
};


/* "cuda/cuda.pyx":21247
 *     """
 *     launchParamsList = [] if launchParamsList is None else launchParamsList
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":21883
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddKernelNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a kernel execution node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":21985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22077
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemcpyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memcpy node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22137
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22221
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemsetNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memset node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22272
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22356
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddHostNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a host execution node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22405
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22489
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddChildGraphNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Creates a child graph node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22539
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22593
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEmptyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Creates an empty node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22639
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22658
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventRecordNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event record node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22707
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22793
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event wait node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22843
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":22929
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresSignalNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore signal node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":22985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":23080
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore wait node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":23136
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":23229
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemAllocNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an allocation node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":23312
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":23365
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemFreeNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Creates a memory free node and adds it to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode {
  PyObject_HEAD
  PyObject *__pyx_v_dependencies;
};


/* "cuda/cuda.pyx":23425
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":23970
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Adds dependency edges to a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies {
  PyObject_HEAD
  PyObject *__pyx_v_from_;
  PyObject *__pyx_v_to;
};


/* "cuda/cuda.pyx":24007
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":24010
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":24038
 * 
 * @cython.embedsignature(True)
 * def cuGraphRemoveDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Removes dependency edges from a graph.
 * 
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies {
  PyObject_HEAD
  PyObject *__pyx_v_from_;
  PyObject *__pyx_v_to;
};


/* "cuda/cuda.pyx":24079
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* "cuda/cuda.pyx":24082
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */
struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *__pyx_outer_scope;
  PyObject *__pyx_v__x;
};


/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* Profile.proto */
#ifndef CYTHON_PROFILE
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
  #define CYTHON_PROFILE 0
#else
  #define CYTHON_PROFILE 1
#endif
#endif
#ifndef CYTHON_TRACE_NOGIL
  #define CYTHON_TRACE_NOGIL 0
#else
  #if CYTHON_TRACE_NOGIL && !defined(CYTHON_TRACE)
    #define CYTHON_TRACE 1
  #endif
#endif
#ifndef CYTHON_TRACE
  #define CYTHON_TRACE 0
#endif
#if CYTHON_TRACE
  #undef CYTHON_PROFILE_REUSE_FRAME
#endif
#ifndef CYTHON_PROFILE_REUSE_FRAME
  #define CYTHON_PROFILE_REUSE_FRAME 0
#endif
#if CYTHON_PROFILE || CYTHON_TRACE
  #include "compile.h"
  #include "frameobject.h"
  #include "traceback.h"
  #if CYTHON_PROFILE_REUSE_FRAME
    #define CYTHON_FRAME_MODIFIER static
    #define CYTHON_FRAME_DEL(frame)
  #else
    #define CYTHON_FRAME_MODIFIER
    #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame)
  #endif
  #define __Pyx_TraceDeclarations\
      static PyCodeObject *__pyx_frame_code = NULL;\
      CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\
      int __Pyx_use_tracing = 0;
  #define __Pyx_TraceFrameInit(codeobj)\
      if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj;
#if PY_VERSION_HEX >= 0x030b00a2
  #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\
     (unlikely((tstate)->cframe->use_tracing) &&\
         (!(check_tracing) || !(tstate)->tracing) &&\
         (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
  #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate)
  #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate)
#elif PY_VERSION_HEX >= 0x030a00b1
  #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\
     (unlikely((tstate)->cframe->use_tracing) &&\
         (!(check_tracing) || !(tstate)->tracing) &&\
         (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
  #define __Pyx_EnterTracing(tstate)\
      do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0)
  #define __Pyx_LeaveTracing(tstate)\
      do {\
          tstate->tracing--;\
          tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\
                                 || tstate->c_profilefunc != NULL);\
      } while (0)
#else
  #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\
     (unlikely((tstate)->use_tracing) &&\
         (!(check_tracing) || !(tstate)->tracing) &&\
         (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
  #define __Pyx_EnterTracing(tstate)\
      do { tstate->tracing++; tstate->use_tracing = 0; } while (0)
  #define __Pyx_LeaveTracing(tstate)\
      do {\
          tstate->tracing--;\
          tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\
                                         || tstate->c_profilefunc != NULL);\
      } while (0)
#endif
  #ifdef WITH_THREAD
  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
  if (nogil) {\
      if (CYTHON_TRACE_NOGIL) {\
          PyThreadState *tstate;\
          PyGILState_STATE state = PyGILState_Ensure();\
          tstate = __Pyx_PyThreadState_Current;\
          if (__Pyx_IsTracing(tstate, 1, 1)) {\
              __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
          }\
          PyGILState_Release(state);\
          if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
      }\
  } else {\
      PyThreadState* tstate = PyThreadState_GET();\
      if (__Pyx_IsTracing(tstate, 1, 1)) {\
          __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
          if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
      }\
  }
  #else
  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
  {   PyThreadState* tstate = PyThreadState_GET();\
      if (__Pyx_IsTracing(tstate, 1, 1)) {\
          __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
          if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
      }\
  }
  #endif
  #define __Pyx_TraceException()\
  if (likely(!__Pyx_use_tracing)); else {\
      PyThreadState* tstate = __Pyx_PyThreadState_Current;\
      if (__Pyx_IsTracing(tstate, 0, 1)) {\
          __Pyx_EnterTracing(tstate);\
          PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\
          if (exc_info) {\
              if (CYTHON_TRACE && tstate->c_tracefunc)\
                  tstate->c_tracefunc(\
                      tstate->c_traceobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
              tstate->c_profilefunc(\
                  tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
              Py_DECREF(exc_info);\
          }\
          __Pyx_LeaveTracing(tstate);\
      }\
  }
  static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) {
      PyObject *type, *value, *traceback;
      __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
      __Pyx_EnterTracing(tstate);
      if (CYTHON_TRACE && tstate->c_tracefunc)
          tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result);
      if (tstate->c_profilefunc)
          tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result);
      CYTHON_FRAME_DEL(frame);
      __Pyx_LeaveTracing(tstate);
      __Pyx_ErrRestoreInState(tstate, type, value, traceback);
  }
  #ifdef WITH_THREAD
  #define __Pyx_TraceReturn(result, nogil)\
  if (likely(!__Pyx_use_tracing)); else {\
      if (nogil) {\
          if (CYTHON_TRACE_NOGIL) {\
              PyThreadState *tstate;\
              PyGILState_STATE state = PyGILState_Ensure();\
              tstate = __Pyx_PyThreadState_Current;\
              if (__Pyx_IsTracing(tstate, 0, 0)) {\
                  __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
              }\
              PyGILState_Release(state);\
          }\
      } else {\
          PyThreadState* tstate = __Pyx_PyThreadState_Current;\
          if (__Pyx_IsTracing(tstate, 0, 0)) {\
              __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
          }\
      }\
  }
  #else
  #define __Pyx_TraceReturn(result, nogil)\
  if (likely(!__Pyx_use_tracing)); else {\
      PyThreadState* tstate = __Pyx_PyThreadState_Current;\
      if (__Pyx_IsTracing(tstate, 0, 0)) {\
          __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
      }\
  }
  #endif
  static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno);
  static int __Pyx_TraceSetupAndCall(PyCodeObject** code, PyFrameObject** frame, PyThreadState* tstate, const char *funcname, const char *srcfile, int firstlineno);
#else
  #define __Pyx_TraceDeclarations
  #define __Pyx_TraceFrameInit(codeobj)
  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)   if ((1)); else goto_error;
  #define __Pyx_TraceException()
  #define __Pyx_TraceReturn(result, nogil)
#endif
#if CYTHON_TRACE
  static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) {
      int ret;
      PyObject *type, *value, *traceback;
      __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
      __Pyx_PyFrame_SetLineNumber(frame, lineno);
      __Pyx_EnterTracing(tstate);
      ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL);
      __Pyx_LeaveTracing(tstate);
      if (likely(!ret)) {
          __Pyx_ErrRestoreInState(tstate, type, value, traceback);
      } else {
          Py_XDECREF(type);
          Py_XDECREF(value);
          Py_XDECREF(traceback);
      }
      return ret;
  }
  #ifdef WITH_THREAD
  #define __Pyx_TraceLine(lineno, nogil, goto_error)\
  if (likely(!__Pyx_use_tracing)); else {\
      if (nogil) {\
          if (CYTHON_TRACE_NOGIL) {\
              int ret = 0;\
              PyThreadState *tstate;\
              PyGILState_STATE state = PyGILState_Ensure();\
              tstate = __Pyx_PyThreadState_Current;\
              if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\
                  ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
              }\
              PyGILState_Release(state);\
              if (unlikely(ret)) goto_error;\
          }\
      } else {\
          PyThreadState* tstate = __Pyx_PyThreadState_Current;\
          if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\
              int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
              if (unlikely(ret)) goto_error;\
          }\
      }\
  }
  #else
  #define __Pyx_TraceLine(lineno, nogil, goto_error)\
  if (likely(!__Pyx_use_tracing)); else {\
      PyThreadState* tstate = __Pyx_PyThreadState_Current;\
      if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\
          int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
          if (unlikely(ret)) goto_error;\
      }\
  }
  #endif
#else
  #define __Pyx_TraceLine(lineno, nogil, goto_error)   if ((1)); else goto_error;
#endif

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
#if CYTHON_FAST_PYCALL
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif // CYTHON_FAST_PYCALL
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
#define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* PyObjectCall2Args.proto */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* None.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto
#define __PYX_HAVE_RT_ImportType_proto
enum __Pyx_ImportType_CheckSize {
   __Pyx_ImportType_CheckSize_Error = 0,
   __Pyx_ImportType_CheckSize_Warn = 1,
   __Pyx_ImportType_CheckSize_Ignore = 2
};
static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
#endif

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED 1
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;  // used by FusedFunction for copying defaults
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* GCCDiagnostics.proto */
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* None.proto */
#include <new>

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUipcMem_flags_enum(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstream_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_flags_enum(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_record_flags_enum(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUshared_carveout_enum(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUcomputemode_enum(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_fallback_enum(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(enum __pyx_t_4cuda_5ccuda_CUlimit_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(enum __pyx_t_4cuda_5ccuda_cudaError_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUuserObject_flags_enum(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum value);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_As_unsigned_PY_LONG_LONG(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned char __Pyx_PyInt_As_unsigned_char(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned short __Pyx_PyInt_As_unsigned_short(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE uint32_t __Pyx_PyInt_As_uint32_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_PY_LONG_LONG(unsigned PY_LONG_LONG value);

/* CIntFromPy.proto */
static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUarray_format_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_short(unsigned short value);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint32_t(uint32_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_cudaError_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_cudaError_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUlimit_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUjit_option_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* CoroutineBase.proto */
typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
    PyObject *gi_weakreflist;
    PyObject *classobj;
    PyObject *yieldfrom;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    PyObject *gi_frame;
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static PyObject *__Pyx_Coroutine_Close(PyObject *self);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);

/* PatchModuleWithCoroutine.proto */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);

/* PatchGeneratorABC.proto */
static int __Pyx_patch_abc(void);

/* Generator.proto */
#define __Pyx_Generator_USED
static PyTypeObject *__pyx_GeneratorType = 0;
#define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(void);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* FunctionImport.proto */
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);


/* Module declarations from 'libc.stdint' */

/* Module declarations from 'cuda.ccuda' */
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGetErrorString)(__pyx_t_4cuda_5ccuda_CUresult, char const **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGetErrorName)(__pyx_t_4cuda_5ccuda_CUresult, char const **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuInit)(unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDriverGetVersion)(int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGet)(__pyx_t_4cuda_5ccuda_CUdevice *, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetCount)(int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetName)(char *, int, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetUuid)(__pyx_t_4cuda_5ccuda_CUuuid *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetUuid_v2)(__pyx_t_4cuda_5ccuda_CUuuid *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetLuid)(char *, unsigned int *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceTotalMem)(size_t *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetTexture1DLinearMaxWidth)(size_t *, __pyx_t_4cuda_5ccuda_CUarray_format, unsigned int, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetAttribute)(int *, __pyx_t_4cuda_5ccuda_CUdevice_attribute, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetNvSciSyncAttributes)(void *, __pyx_t_4cuda_5ccuda_CUdevice, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceSetMemPool)(__pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUmemoryPool); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetMemPool)(__pyx_t_4cuda_5ccuda_CUmemoryPool *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetDefaultMemPool)(__pyx_t_4cuda_5ccuda_CUmemoryPool *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFlushGPUDirectRDMAWrites)(__pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget, __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetProperties)(__pyx_t_4cuda_5ccuda_CUdevprop *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceComputeCapability)(int *, int *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxRetain)(__pyx_t_4cuda_5ccuda_CUcontext *, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxRelease)(__pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxSetFlags)(__pyx_t_4cuda_5ccuda_CUdevice, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxGetState)(__pyx_t_4cuda_5ccuda_CUdevice, unsigned int *, int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxReset)(__pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetExecAffinitySupport)(int *, __pyx_t_4cuda_5ccuda_CUexecAffinityType, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxCreate)(__pyx_t_4cuda_5ccuda_CUcontext *, unsigned int, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxCreate_v3)(__pyx_t_4cuda_5ccuda_CUcontext *, __pyx_t_4cuda_5ccuda_CUexecAffinityParam *, int, unsigned int, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxDestroy)(__pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxPushCurrent)(__pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxPopCurrent)(__pyx_t_4cuda_5ccuda_CUcontext *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxSetCurrent)(__pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetCurrent)(__pyx_t_4cuda_5ccuda_CUcontext *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetDevice)(__pyx_t_4cuda_5ccuda_CUdevice *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetFlags)(unsigned int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxSynchronize)(void); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxSetLimit)(__pyx_t_4cuda_5ccuda_CUlimit, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetLimit)(size_t *, __pyx_t_4cuda_5ccuda_CUlimit); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetCacheConfig)(__pyx_t_4cuda_5ccuda_CUfunc_cache *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxSetCacheConfig)(__pyx_t_4cuda_5ccuda_CUfunc_cache); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetSharedMemConfig)(__pyx_t_4cuda_5ccuda_CUsharedconfig *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxSetSharedMemConfig)(__pyx_t_4cuda_5ccuda_CUsharedconfig); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetApiVersion)(__pyx_t_4cuda_5ccuda_CUcontext, unsigned int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetStreamPriorityRange)(int *, int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxResetPersistingL2Cache)(void); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxGetExecAffinity)(__pyx_t_4cuda_5ccuda_CUexecAffinityParam *, __pyx_t_4cuda_5ccuda_CUexecAffinityType); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxAttach)(__pyx_t_4cuda_5ccuda_CUcontext *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxDetach)(__pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleLoad)(__pyx_t_4cuda_5ccuda_CUmodule *, char const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleLoadData)(__pyx_t_4cuda_5ccuda_CUmodule *, void const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleLoadDataEx)(__pyx_t_4cuda_5ccuda_CUmodule *, void const *, unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleLoadFatBinary)(__pyx_t_4cuda_5ccuda_CUmodule *, void const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleUnload)(__pyx_t_4cuda_5ccuda_CUmodule); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleGetFunction)(__pyx_t_4cuda_5ccuda_CUfunction *, __pyx_t_4cuda_5ccuda_CUmodule, char const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleGetGlobal)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, __pyx_t_4cuda_5ccuda_CUmodule, char const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleGetTexRef)(__pyx_t_4cuda_5ccuda_CUtexref *, __pyx_t_4cuda_5ccuda_CUmodule, char const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuModuleGetSurfRef)(__pyx_t_4cuda_5ccuda_CUsurfref *, __pyx_t_4cuda_5ccuda_CUmodule, char const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLinkCreate)(unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **, __pyx_t_4cuda_5ccuda_CUlinkState *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLinkAddData)(__pyx_t_4cuda_5ccuda_CUlinkState, __pyx_t_4cuda_5ccuda_CUjitInputType, void *, size_t, char const *, unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLinkAddFile)(__pyx_t_4cuda_5ccuda_CUlinkState, __pyx_t_4cuda_5ccuda_CUjitInputType, char const *, unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLinkComplete)(__pyx_t_4cuda_5ccuda_CUlinkState, void **, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLinkDestroy)(__pyx_t_4cuda_5ccuda_CUlinkState); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemGetInfo)(size_t *, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAlloc)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAllocPitch)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, size_t, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemFree)(__pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemGetAddressRange)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAllocHost)(void **, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemFreeHost)(void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemHostAlloc)(void **, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemHostGetDevicePointer)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, void *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemHostGetFlags)(unsigned int *, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAllocManaged)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetByPCIBusId)(__pyx_t_4cuda_5ccuda_CUdevice *, char const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetPCIBusId)(char *, int, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuIpcGetEventHandle)(__pyx_t_4cuda_5ccuda_CUipcEventHandle *, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuIpcOpenEventHandle)(__pyx_t_4cuda_5ccuda_CUevent *, __pyx_t_4cuda_5ccuda_CUipcEventHandle); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuIpcGetMemHandle)(__pyx_t_4cuda_5ccuda_CUipcMemHandle *, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuIpcOpenMemHandle)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUipcMemHandle, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuIpcCloseMemHandle)(__pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemHostRegister)(void *, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemHostUnregister)(void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyPeer)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyHtoD)(__pyx_t_4cuda_5ccuda_CUdeviceptr, void const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyDtoH)(void *, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyDtoD)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyDtoA)(__pyx_t_4cuda_5ccuda_CUarray, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyAtoD)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyHtoA)(__pyx_t_4cuda_5ccuda_CUarray, size_t, void const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyAtoH)(void *, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyAtoA)(__pyx_t_4cuda_5ccuda_CUarray, size_t, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy2D)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy2DUnaligned)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy3D)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy3DPeer)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyPeerAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyHtoDAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr, void const *, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyDtoHAsync)(void *, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyDtoDAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyHtoAAsync)(__pyx_t_4cuda_5ccuda_CUarray, size_t, void const *, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpyAtoHAsync)(void *, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy2DAsync)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D const *, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy3DAsync)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemcpy3DPeerAsync)(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER const *, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD8)(__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned char, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD16)(__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned short, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD32)(__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned int, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD2D8)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned char, size_t, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD2D16)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned short, size_t, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD2D32)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned int, size_t, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD8Async)(__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned char, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD16Async)(__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned short, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD32Async)(__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned int, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD2D8Async)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned char, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD2D16Async)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned short, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemsetD2D32Async)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned int, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArrayCreate)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArrayGetDescriptor)(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR *, __pyx_t_4cuda_5ccuda_CUarray); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArrayGetSparseProperties)(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES *, __pyx_t_4cuda_5ccuda_CUarray); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMipmappedArrayGetSparseProperties)(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES *, __pyx_t_4cuda_5ccuda_CUmipmappedArray); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArrayGetPlane)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUarray, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArrayDestroy)(__pyx_t_4cuda_5ccuda_CUarray); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArray3DCreate)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuArray3DGetDescriptor)(__pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR *, __pyx_t_4cuda_5ccuda_CUarray); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMipmappedArrayCreate)(__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR const *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMipmappedArrayGetLevel)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUmipmappedArray, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMipmappedArrayDestroy)(__pyx_t_4cuda_5ccuda_CUmipmappedArray); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAddressReserve)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAddressFree)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemCreate)(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *, size_t, __pyx_t_4cuda_5ccuda_CUmemAllocationProp const *, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemRelease)(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemMap)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, size_t, __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemMapArrayAsync)(__pyx_t_4cuda_5ccuda_CUarrayMapInfo *, unsigned int, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemUnmap)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemSetAccess)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUmemAccessDesc const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemGetAccess)(unsigned PY_LONG_LONG *, __pyx_t_4cuda_5ccuda_CUmemLocation const *, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemExportToShareableHandle)(void *, __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemImportFromShareableHandle)(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *, void *, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemGetAllocationGranularity)(size_t *, __pyx_t_4cuda_5ccuda_CUmemAllocationProp const *, __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemGetAllocationPropertiesFromHandle)(__pyx_t_4cuda_5ccuda_CUmemAllocationProp *, __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemRetainAllocationHandle)(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemFreeAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAllocAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolTrimTo)(__pyx_t_4cuda_5ccuda_CUmemoryPool, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolSetAttribute)(__pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemPool_attribute, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolGetAttribute)(__pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemPool_attribute, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolSetAccess)(__pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemAccessDesc const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolGetAccess)(__pyx_t_4cuda_5ccuda_CUmemAccess_flags *, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemLocation *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolCreate)(__pyx_t_4cuda_5ccuda_CUmemoryPool *, __pyx_t_4cuda_5ccuda_CUmemPoolProps const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolDestroy)(__pyx_t_4cuda_5ccuda_CUmemoryPool); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAllocFromPoolAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolExportToShareableHandle)(void *, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolImportFromShareableHandle)(__pyx_t_4cuda_5ccuda_CUmemoryPool *, void *, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolExportPointer)(__pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData *, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPoolImportPointer)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuPointerGetAttribute)(void *, __pyx_t_4cuda_5ccuda_CUpointer_attribute, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemPrefetchAsync)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemAdvise)(__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUmem_advise, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemRangeGetAttribute)(void *, size_t, __pyx_t_4cuda_5ccuda_CUmem_range_attribute, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuMemRangeGetAttributes)(void **, size_t *, __pyx_t_4cuda_5ccuda_CUmem_range_attribute *, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuPointerSetAttribute)(void const *, __pyx_t_4cuda_5ccuda_CUpointer_attribute, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuPointerGetAttributes)(unsigned int, __pyx_t_4cuda_5ccuda_CUpointer_attribute *, void **, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamCreate)(__pyx_t_4cuda_5ccuda_CUstream *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamCreateWithPriority)(__pyx_t_4cuda_5ccuda_CUstream *, unsigned int, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamGetPriority)(__pyx_t_4cuda_5ccuda_CUstream, int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamGetFlags)(__pyx_t_4cuda_5ccuda_CUstream, unsigned int *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamGetCtx)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUcontext *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamWaitEvent)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUevent, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamAddCallback)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCallback, void *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamBeginCapture)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureMode); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuThreadExchangeStreamCaptureMode)(__pyx_t_4cuda_5ccuda_CUstreamCaptureMode *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamEndCapture)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUgraph *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamIsCapturing)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamGetCaptureInfo)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus *, __pyx_t_4cuda_5ccuda_cuuint64_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamGetCaptureInfo_v2)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus *, __pyx_t_4cuda_5ccuda_cuuint64_t *, __pyx_t_4cuda_5ccuda_CUgraph *, __pyx_t_4cuda_5ccuda_CUgraphNode const **, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamUpdateCaptureDependencies)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamAttachMemAsync)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamQuery)(__pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamSynchronize)(__pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamDestroy)(__pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamCopyAttributes)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamGetAttribute)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamAttrID, __pyx_t_4cuda_5ccuda_CUstreamAttrValue *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamSetAttribute)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamAttrID, __pyx_t_4cuda_5ccuda_CUstreamAttrValue const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventCreate)(__pyx_t_4cuda_5ccuda_CUevent *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventRecord)(__pyx_t_4cuda_5ccuda_CUevent, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventRecordWithFlags)(__pyx_t_4cuda_5ccuda_CUevent, __pyx_t_4cuda_5ccuda_CUstream, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventQuery)(__pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventSynchronize)(__pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventDestroy)(__pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuEventElapsedTime)(float *, __pyx_t_4cuda_5ccuda_CUevent, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuImportExternalMemory)(__pyx_t_4cuda_5ccuda_CUexternalMemory *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuExternalMemoryGetMappedBuffer)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUexternalMemory, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuExternalMemoryGetMappedMipmappedArray)(__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUexternalMemory, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDestroyExternalMemory)(__pyx_t_4cuda_5ccuda_CUexternalMemory); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuImportExternalSemaphore)(__pyx_t_4cuda_5ccuda_CUexternalSemaphore *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuSignalExternalSemaphoresAsync)(__pyx_t_4cuda_5ccuda_CUexternalSemaphore const *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS const *, unsigned int, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuWaitExternalSemaphoresAsync)(__pyx_t_4cuda_5ccuda_CUexternalSemaphore const *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS const *, unsigned int, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDestroyExternalSemaphore)(__pyx_t_4cuda_5ccuda_CUexternalSemaphore); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamWaitValue32)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint32_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamWaitValue64)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint64_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamWriteValue32)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint32_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamWriteValue64)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint64_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuStreamBatchMemOp)(__pyx_t_4cuda_5ccuda_CUstream, unsigned int, __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncGetAttribute)(int *, __pyx_t_4cuda_5ccuda_CUfunction_attribute, __pyx_t_4cuda_5ccuda_CUfunction); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncSetAttribute)(__pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUfunction_attribute, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncSetCacheConfig)(__pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUfunc_cache); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncSetSharedMemConfig)(__pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUsharedconfig); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncGetModule)(__pyx_t_4cuda_5ccuda_CUmodule *, __pyx_t_4cuda_5ccuda_CUfunction); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunchKernel)(__pyx_t_4cuda_5ccuda_CUfunction, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, __pyx_t_4cuda_5ccuda_CUstream, void **, void **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunchCooperativeKernel)(__pyx_t_4cuda_5ccuda_CUfunction, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, __pyx_t_4cuda_5ccuda_CUstream, void **); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunchCooperativeKernelMultiDevice)(__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS *, unsigned int, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunchHostFunc)(__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUhostFn, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncSetBlockShape)(__pyx_t_4cuda_5ccuda_CUfunction, int, int, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuFuncSetSharedSize)(__pyx_t_4cuda_5ccuda_CUfunction, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuParamSetSize)(__pyx_t_4cuda_5ccuda_CUfunction, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuParamSeti)(__pyx_t_4cuda_5ccuda_CUfunction, int, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuParamSetf)(__pyx_t_4cuda_5ccuda_CUfunction, int, float); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuParamSetv)(__pyx_t_4cuda_5ccuda_CUfunction, int, void *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunch)(__pyx_t_4cuda_5ccuda_CUfunction); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunchGrid)(__pyx_t_4cuda_5ccuda_CUfunction, int, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuLaunchGridAsync)(__pyx_t_4cuda_5ccuda_CUfunction, int, int, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuParamSetTexRef)(__pyx_t_4cuda_5ccuda_CUfunction, int, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphCreate)(__pyx_t_4cuda_5ccuda_CUgraph *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddKernelNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphKernelNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphKernelNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddMemcpyNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *, __pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphMemcpyNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphMemcpyNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddMemsetNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS const *, __pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphMemsetNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphMemsetNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddHostNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphHostNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphHostNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddChildGraphNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUgraph); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphChildGraphNodeGetGraph)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraph *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddEmptyNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddEventRecordNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphEventRecordNodeGetEvent)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphEventRecordNodeSetEvent)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddEventWaitNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphEventWaitNodeGetEvent)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphEventWaitNodeSetEvent)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddExternalSemaphoresSignalNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresSignalNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresSignalNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddExternalSemaphoresWaitNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresWaitNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresWaitNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddMemAllocNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphMemAllocNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddMemFreeNode)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphMemFreeNodeGetParams)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUdeviceptr *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGraphMemTrim)(__pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetGraphMemAttribute)(__pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUgraphMem_attribute, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceSetGraphMemAttribute)(__pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUgraphMem_attribute, void *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphClone)(__pyx_t_4cuda_5ccuda_CUgraph *, __pyx_t_4cuda_5ccuda_CUgraph); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphNodeFindInClone)(__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraph); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphNodeGetType)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNodeType *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphGetNodes)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphGetRootNodes)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphGetEdges)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphNodeGetDependencies)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphNodeGetDependentNodes)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphAddDependencies)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphRemoveDependencies)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphDestroyNode)(__pyx_t_4cuda_5ccuda_CUgraphNode); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphInstantiate)(__pyx_t_4cuda_5ccuda_CUgraphExec *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, char *, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphInstantiateWithFlags)(__pyx_t_4cuda_5ccuda_CUgraphExec *, __pyx_t_4cuda_5ccuda_CUgraph, unsigned PY_LONG_LONG); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecKernelNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecMemcpyNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *, __pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecMemsetNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS const *, __pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecHostNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecChildGraphNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraph); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecEventRecordNodeSetEvent)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecEventWaitNodeSetEvent)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecExternalSemaphoresSignalNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecExternalSemaphoresWaitNodeSetParams)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphUpload)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphLaunch)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecDestroy)(__pyx_t_4cuda_5ccuda_CUgraphExec); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphDestroy)(__pyx_t_4cuda_5ccuda_CUgraph); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphExecUpdate)(__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphKernelNodeCopyAttributes)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNode); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphKernelNodeGetAttribute)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphKernelNodeSetAttribute)(__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphDebugDotPrint)(__pyx_t_4cuda_5ccuda_CUgraph, char const *, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuUserObjectCreate)(__pyx_t_4cuda_5ccuda_CUuserObject *, void *, __pyx_t_4cuda_5ccuda_CUhostFn, unsigned int, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuUserObjectRetain)(__pyx_t_4cuda_5ccuda_CUuserObject, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuUserObjectRelease)(__pyx_t_4cuda_5ccuda_CUuserObject, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphRetainUserObject)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUuserObject, unsigned int, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphReleaseUserObject)(__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUuserObject, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuOccupancyMaxActiveBlocksPerMultiprocessor)(int *, __pyx_t_4cuda_5ccuda_CUfunction, int, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags)(int *, __pyx_t_4cuda_5ccuda_CUfunction, int, size_t, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuOccupancyMaxPotentialBlockSize)(int *, int *, __pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUoccupancyB2DSize, size_t, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuOccupancyMaxPotentialBlockSizeWithFlags)(int *, int *, __pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUoccupancyB2DSize, size_t, int, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuOccupancyAvailableDynamicSMemPerBlock)(size_t *, __pyx_t_4cuda_5ccuda_CUfunction, int, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetArray)(__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUarray, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetMipmappedArray)(__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUmipmappedArray, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetAddress)(size_t *, __pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetAddress2D)(__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR const *, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetFormat)(__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUarray_format, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetAddressMode)(__pyx_t_4cuda_5ccuda_CUtexref, int, __pyx_t_4cuda_5ccuda_CUaddress_mode); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetFilterMode)(__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUfilter_mode); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetMipmapFilterMode)(__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUfilter_mode); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetMipmapLevelBias)(__pyx_t_4cuda_5ccuda_CUtexref, float); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetMipmapLevelClamp)(__pyx_t_4cuda_5ccuda_CUtexref, float, float); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetMaxAnisotropy)(__pyx_t_4cuda_5ccuda_CUtexref, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetBorderColor)(__pyx_t_4cuda_5ccuda_CUtexref, float *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefSetFlags)(__pyx_t_4cuda_5ccuda_CUtexref, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetAddress)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetArray)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetMipmappedArray)(__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetAddressMode)(__pyx_t_4cuda_5ccuda_CUaddress_mode *, __pyx_t_4cuda_5ccuda_CUtexref, int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetFilterMode)(__pyx_t_4cuda_5ccuda_CUfilter_mode *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetFormat)(__pyx_t_4cuda_5ccuda_CUarray_format *, int *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetMipmapFilterMode)(__pyx_t_4cuda_5ccuda_CUfilter_mode *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetMipmapLevelBias)(float *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetMipmapLevelClamp)(float *, float *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetMaxAnisotropy)(int *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetBorderColor)(float *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefGetFlags)(unsigned int *, __pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefCreate)(__pyx_t_4cuda_5ccuda_CUtexref *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexRefDestroy)(__pyx_t_4cuda_5ccuda_CUtexref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuSurfRefSetArray)(__pyx_t_4cuda_5ccuda_CUsurfref, __pyx_t_4cuda_5ccuda_CUarray, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuSurfRefGetArray)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUsurfref); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexObjectCreate)(__pyx_t_4cuda_5ccuda_CUtexObject *, __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC const *, __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC const *, __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexObjectDestroy)(__pyx_t_4cuda_5ccuda_CUtexObject); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexObjectGetResourceDesc)(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC *, __pyx_t_4cuda_5ccuda_CUtexObject); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexObjectGetTextureDesc)(__pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC *, __pyx_t_4cuda_5ccuda_CUtexObject); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuTexObjectGetResourceViewDesc)(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC *, __pyx_t_4cuda_5ccuda_CUtexObject); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuSurfObjectCreate)(__pyx_t_4cuda_5ccuda_CUsurfObject *, __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC const *); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuSurfObjectDestroy)(__pyx_t_4cuda_5ccuda_CUsurfObject); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuSurfObjectGetResourceDesc)(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC *, __pyx_t_4cuda_5ccuda_CUsurfObject); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceCanAccessPeer)(int *, __pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxEnablePeerAccess)(__pyx_t_4cuda_5ccuda_CUcontext, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuCtxDisablePeerAccess)(__pyx_t_4cuda_5ccuda_CUcontext); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuDeviceGetP2PAttribute)(int *, __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute, __pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUdevice); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsUnregisterResource)(__pyx_t_4cuda_5ccuda_CUgraphicsResource); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsSubResourceGetMappedArray)(__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUgraphicsResource, unsigned int, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsResourceGetMappedMipmappedArray)(__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUgraphicsResource); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsResourceGetMappedPointer)(__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, __pyx_t_4cuda_5ccuda_CUgraphicsResource); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsResourceSetMapFlags)(__pyx_t_4cuda_5ccuda_CUgraphicsResource, unsigned int); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsMapResources)(unsigned int, __pyx_t_4cuda_5ccuda_CUgraphicsResource *, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGraphicsUnmapResources)(unsigned int, __pyx_t_4cuda_5ccuda_CUgraphicsResource *, __pyx_t_4cuda_5ccuda_CUstream); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGetProcAddress)(char const *, void **, int, __pyx_t_4cuda_5ccuda_cuuint64_t); /*proto*/
static __pyx_t_4cuda_5ccuda_CUresult (*__pyx_f_4cuda_5ccuda_cuGetExportTable)(void const **, __pyx_t_4cuda_5ccuda_CUuuid const *); /*proto*/

/* Module declarations from 'libcpp.vector' */

/* Module declarations from 'cuda._lib.utils' */
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperCUmemPool_attribute = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperCUmem_range_attribute = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperCUpointer_attribute = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperCUgraphMem_attribute = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option = 0;
static PyTypeObject *__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper = 0;

/* Module declarations from 'cython' */

/* Module declarations from 'libc.string' */

/* Module declarations from 'libc.stdlib' */

/* Module declarations from 'libc.stddef' */

/* Module declarations from 'cpython.buffer' */

/* Module declarations from 'libc.stdio' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.type' */
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;

/* Module declarations from 'cpython' */

/* Module declarations from 'cpython.object' */

/* Module declarations from 'cpython.bytes' */

/* Module declarations from 'cuda.cuda' */
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUcontext = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmodule = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUfunction = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUarray = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmipmappedArray = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUtexref = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUsurfref = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUevent = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstream = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUgraphicsResource = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexternalMemory = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexternalSemaphore = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUgraph = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUgraphNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUgraphExec = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemoryPool = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUuserObject = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUlinkState = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUhostFn = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamCallback = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUuuid_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUipcEventHandle_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUipcMemHandle_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdevprop_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemLocation_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemPoolProps_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUuuid = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUipcEventHandle_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUipcEventHandle = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUipcMemHandle_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUipcMemHandle = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdevprop_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdevprop = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamAttrValue_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUstreamAttrValue = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexecAffinityParam_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUexecAffinityParam = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_v2 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_v2 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUarrayMapInfo_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUarrayMapInfo = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemLocation_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemLocation = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemAllocationProp_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemAllocationProp = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemAccessDesc_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemAccessDesc = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemPoolProps_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemPoolProps = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_cuuint32_t = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_cuuint64_t = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdeviceptr_v2 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdeviceptr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdevice_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUdevice = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUtexObject_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUtexObject = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUsurfObject_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUsurfObject = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle_v1 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_1_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_3_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_5_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_7_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_9_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_11_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_13_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_15_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_17_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_18_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_20_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_22_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_24_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_25_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_27_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_28_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_30_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_32_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_34_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_36_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_38_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_40_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_42_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_44_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_46_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_48_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_50_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_52_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_54_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_56_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_58_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_59_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_61_genexpr = 0;
static PyTypeObject *__pyx_ptype_4cuda_4cuda___pyx_scope_struct_62_genexpr = 0;
static CYTHON_INLINE PyObject *__Pyx_carray_to_py_int(int *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_int(int *, Py_ssize_t); /*proto*/
static int __Pyx_carray_from_py_int(PyObject *, int *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_py_unsigned_int(unsigned int *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_unsigned_int(unsigned int *, Py_ssize_t); /*proto*/
static int __Pyx_carray_from_py_unsigned_int(PyObject *, unsigned int *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode(__pyx_t_4cuda_5ccuda_CUaddress_mode *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode(__pyx_t_4cuda_5ccuda_CUaddress_mode *, Py_ssize_t); /*proto*/
static int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(PyObject *, __pyx_t_4cuda_5ccuda_CUaddress_mode *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_py_float(float *, Py_ssize_t); /*proto*/
static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_float(float *, Py_ssize_t); /*proto*/
static int __Pyx_carray_from_py_float(PyObject *, float *, Py_ssize_t); /*proto*/
static std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(PyObject *); /*proto*/
static std::vector<size_t>  __pyx_convert_vector_from_py_size_t(PyObject *); /*proto*/
static std::vector<__pyx_t_4cuda_5ccuda_CUmem_range_attribute>  __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute(PyObject *); /*proto*/
static std::vector<__pyx_t_4cuda_5ccuda_CUpointer_attribute>  __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(PyObject *); /*proto*/
#define __Pyx_MODULE_NAME "cuda.cuda"
extern int __pyx_module_is_main_cuda__cuda;
int __pyx_module_is_main_cuda__cuda = 0;

/* Implementation of 'cuda.cuda' */
static PyObject *__pyx_builtin_MemoryError;
static PyObject *__pyx_builtin_hex;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_RuntimeError;
static PyObject *__pyx_builtin_zip;
static PyObject *__pyx_builtin_OverflowError;
static PyObject *__pyx_builtin_IndexError;
static const char __pyx_k_[] = ">";
static const char __pyx_k_N[] = "N";
static const char __pyx_k_f[] = "f";
static const char __pyx_k_p[] = "p";
static const char __pyx_k_x[] = "x";
static const char __pyx_k_y[] = "y";
static const char __pyx_k_z[] = "z";
static const char __pyx_k_am[] = "am";
static const char __pyx_k_cp[] = "cp";
static const char __pyx_k_fd[] = "fd : ";
static const char __pyx_k_fm[] = "fm";
static const char __pyx_k_fn[] = "fn : ";
static const char __pyx_k_id[] = "id : ";
static const char __pyx_k_pi[] = "pi";
static const char __pyx_k_pp[] = "pp";
static const char __pyx_k_to[] = "to";
static const char __pyx_k_uc[] = "uc";
static const char __pyx_k_ui[] = "ui";
static const char __pyx_k_us[] = "us";
static const char __pyx_k_Any[] = "Any";
static const char __pyx_k_cam[] = "cam";
static const char __pyx_k_cfm[] = "cfm";
static const char __pyx_k_cto[] = "cto";
static const char __pyx_k_ctx[] = "ctx";
static const char __pyx_k_dev[] = "dev";
static const char __pyx_k_dim[] = "dim";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_dst[] = "dst : ";
static const char __pyx_k_err[] = "err";
static const char __pyx_k_fmt[] = "fmt";
static const char __pyx_k_hex[] = "hex";
static const char __pyx_k_idx[] = "idx";
static const char __pyx_k_int[] = "__int__";
static const char __pyx_k_key[] = "key : ";
static const char __pyx_k_map[] = "map";
static const char __pyx_k_obj[] = "obj";
static const char __pyx_k_pad[] = "pad : ";
static const char __pyx_k_pam[] = "pam";
static const char __pyx_k_pfm[] = "pfm";
static const char __pyx_k_pfn[] = "pfn";
static const char __pyx_k_ptr[] = "_ptr";
static const char __pyx_k_res[] = "res :\n";
static const char __pyx_k_src[] = "src";
static const char __pyx_k_val[] = "val : ";
static const char __pyx_k_zip[] = "zip";
static const char __pyx_k_Enum[] = "Enum";
static const char __pyx_k_List[] = "List";
static const char __pyx_k__108[] = "\n";
static const char __pyx_k__109[] = "";
static const char __pyx_k__140[] = "    ";
static const char __pyx_k__141[] = "_";
static const char __pyx_k__564[] = " < ";
static const char __pyx_k__879[] = "\n\n    ";
static const char __pyx_k_addr[] = "addr";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_attr[] = "attr";
static const char __pyx_k_bias[] = "bias";
static const char __pyx_k_cfmt[] = "cfmt";
static const char __pyx_k_cmap[] = "cmap";
static const char __pyx_k_cptr[] = "cptr";
static const char __pyx_k_data[] = "data";
static const char __pyx_k_desc[] = "desc";
static const char __pyx_k_dptr[] = "dptr : ";
static const char __pyx_k_dstY[] = "dstY : ";
static const char __pyx_k_dstZ[] = "dstZ : ";
static const char __pyx_k_enum[] = "enum";
static const char __pyx_k_fd_2[] = "fd";
static const char __pyx_k_fn_2[] = "fn";
static const char __pyx_k_free[] = "free";
static const char __pyx_k_from[] = "from_";
static const char __pyx_k_func[] = "func : ";
static const char __pyx_k_hEnd[] = "hEnd";
static const char __pyx_k_hmod[] = "hmod";
static const char __pyx_k_id_2[] = "id";
static const char __pyx_k_luid[] = "luid";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_mode[] = "mode";
static const char __pyx_k_name[] = "name : ";
static const char __pyx_k_pStr[] = "pStr";
static const char __pyx_k_path[] = "path";
static const char __pyx_k_pctx[] = "pctx";
static const char __pyx_k_pool[] = "pool";
static const char __pyx_k_prop[] = "prop";
static const char __pyx_k_pyto[] = "pyto";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_send[] = "send";
static const char __pyx_k_size[] = "size : ";
static const char __pyx_k_srcY[] = "srcY : ";
static const char __pyx_k_srcZ[] = "srcZ : ";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_type[] = "type : ";
static const char __pyx_k_uuid[] = "uuid";
static const char __pyx_k_Depth[] = "Depth : ";
static const char __pyx_k_Flags[] = "Flags : ";
static const char __pyx_k_Pitch[] = "Pitch";
static const char __pyx_k_Tuple[] = "Tuple";
static const char __pyx_k_Width[] = "Width : ";
static const char __pyx_k_alias[] = "alias : ";
static const char __pyx_k_array[] = "array :\n";
static const char __pyx_k_bytes[] = "bytes : ";
static const char __pyx_k_caddr[] = "caddr";
static const char __pyx_k_cattr[] = "cattr";
static const char __pyx_k_cdata[] = "cdata";
static const char __pyx_k_cdesc[] = "cdesc";
static const char __pyx_k_cfrom[] = "cfrom_";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_cmode[] = "cmode";
static const char __pyx_k_count[] = "count";
static const char __pyx_k_depth[] = "depth : ";
static const char __pyx_k_dst_2[] = "dst";
static const char __pyx_k_error[] = "error";
static const char __pyx_k_event[] = "event";
static const char __pyx_k_extra[] = "extra : ";
static const char __pyx_k_fence[] = "fence : ";
static const char __pyx_k_flags[] = "flags : ";
static const char __pyx_k_fname[] = "fname";
static const char __pyx_k_graph[] = "graph";
static const char __pyx_k_hNode[] = "hNode";
static const char __pyx_k_hfunc[] = "hfunc";
static const char __pyx_k_image[] = "image";
static const char __pyx_k_key_2[] = "key";
static const char __pyx_k_layer[] = "layer : ";
static const char __pyx_k_level[] = "level : ";
static const char __pyx_k_limit[] = "limit";
static const char __pyx_k_major[] = "major";
static const char __pyx_k_minor[] = "minor";
static const char __pyx_k_pCopy[] = "pCopy";
static const char __pyx_k_pSize[] = "pSize";
static const char __pyx_k_pad_2[] = "pad";
static const char __pyx_k_param[] = "param :\n";
static const char __pyx_k_pbase[] = "pbase";
static const char __pyx_k_pbias[] = "pbias";
static const char __pyx_k_pdptr[] = "pdptr";
static const char __pyx_k_pitch[] = "pitch : ";
static const char __pyx_k_psize[] = "psize";
static const char __pyx_k_ptr_2[] = "ptr";
static const char __pyx_k_pyObj[] = "pyObj";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_res_2[] = "res";
static const char __pyx_k_scope[] = "scope";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_total[] = "total";
static const char __pyx_k_usage[] = "usage : ";
static const char __pyx_k_val_2[] = "val";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_width[] = "width : ";
static const char __pyx_k_win32[] = "win32 :\n";
static const char __pyx_k_CUuuid[] = "CUuuid";
static const char __pyx_k_Format[] = "Format : ";
static const char __pyx_k_Height[] = "Height : ";
static const char __pyx_k_Limits[] = "\n    Limits\n    ";
static const char __pyx_k_active[] = "active";
static const char __pyx_k_advice[] = "advice";
static const char __pyx_k_attrib[] = "attrib";
static const char __pyx_k_cerror[] = "cerror";
static const char __pyx_k_cimage[] = "cimage";
static const char __pyx_k_climit[] = "climit";
static const char __pyx_k_cnodes[] = "cnodes";
static const char __pyx_k_config[] = "config";
static const char __pyx_k_cp_ptr[] = "cp_ptr";
static const char __pyx_k_cscope[] = "cscope";
static const char __pyx_k_ctypes[] = "ctypes";
static const char __pyx_k_cuInit[] = "cuInit";
static const char __pyx_k_cvalue[] = "cvalue";
static const char __pyx_k_devPtr[] = "devPtr : ";
static const char __pyx_k_device[] = "device";
static const char __pyx_k_dptr_2[] = "dptr";
static const char __pyx_k_dstLOD[] = "dstLOD : ";
static const char __pyx_k_dstY_2[] = "dstY";
static const char __pyx_k_dstZ_2[] = "dstZ";
static const char __pyx_k_extMem[] = "extMem";
static const char __pyx_k_extSem[] = "extSem";
static const char __pyx_k_format[] = "format : ";
static const char __pyx_k_func_2[] = "func";
static const char __pyx_k_getPtr[] = "getPtr";
static const char __pyx_k_hArray[] = "hArray : ";
static const char __pyx_k_hEvent[] = "hEvent";
static const char __pyx_k_hGraph[] = "hGraph";
static const char __pyx_k_hStart[] = "hStart";
static const char __pyx_k_handle[] = "handle : ";
static const char __pyx_k_height[] = "height : ";
static const char __pyx_k_id_out[] = "id_out";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_length[] = "length";
static const char __pyx_k_linear[] = "linear :\n";
static const char __pyx_k_mipmap[] = "mipmap :\n";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "name";
static const char __pyx_k_name_3[] = "__name__";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_offset[] = "offset : ";
static const char __pyx_k_option[] = "option";
static const char __pyx_k_pArray[] = "pArray";
static const char __pyx_k_pFlags[] = "pFlags";
static const char __pyx_k_pPitch[] = "pPitch";
static const char __pyx_k_params[] = "params :\n";
static const char __pyx_k_phNode[] = "phNode";
static const char __pyx_k_pvalue[] = "pvalue";
static const char __pyx_k_pyfrom[] = "pyfrom_";
static const char __pyx_k_pylist[] = "pylist";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_size_2[] = "size";
static const char __pyx_k_sizeof[] = "sizeof";
static const char __pyx_k_srcLOD[] = "srcLOD : ";
static const char __pyx_k_srcY_2[] = "srcY";
static const char __pyx_k_srcZ_2[] = "srcZ";
static const char __pyx_k_stream[] = "stream";
static const char __pyx_k_symbol[] = "symbol";
static const char __pyx_k_target[] = "target";
static const char __pyx_k_type_2[] = "type";
static const char __pyx_k_typing[] = "typing";
static const char __pyx_k_CUarray[] = "<CUarray ";
static const char __pyx_k_CUevent[] = "<CUevent ";
static const char __pyx_k_CUgraph[] = "<CUgraph ";
static const char __pyx_k_CUlimit[] = "CUlimit";
static const char __pyx_k_Depth_2[] = "Depth";
static const char __pyx_k_Flags_2[] = "Flags";
static const char __pyx_k_Width_2[] = "Width";
static const char __pyx_k_address[] = "address : ";
static const char __pyx_k_alias_2[] = "alias";
static const char __pyx_k_array_2[] = "array";
static const char __pyx_k_array_3[] = "array : ";
static const char __pyx_k_bytes_2[] = "bytes";
static const char __pyx_k_cadvice[] = "cadvice";
static const char __pyx_k_cattrib[] = "cattrib";
static const char __pyx_k_cconfig[] = "cconfig";
static const char __pyx_k_chandle[] = "chandle";
static const char __pyx_k_coption[] = "coption";
static const char __pyx_k_ctarget[] = "ctarget";
static const char __pyx_k_depth_2[] = "depth";
static const char __pyx_k_destroy[] = "destroy";
static const char __pyx_k_dstHost[] = "dstHost : ";
static const char __pyx_k_extra_2[] = "extra";
static const char __pyx_k_fence_2[] = "fence";
static const char __pyx_k_fence_3[] = "fence :\n";
static const char __pyx_k_flags_2[] = "flags";
static const char __pyx_k_genexpr[] = "genexpr";
static const char __pyx_k_hStream[] = "hStream : ";
static const char __pyx_k_hTexRef[] = "hTexRef";
static const char __pyx_k_hitProp[] = "hitProp : ";
static const char __pyx_k_layer_2[] = "layer";
static const char __pyx_k_level_2[] = "level";
static const char __pyx_k_memPool[] = "memPool";
static const char __pyx_k_miptail[] = "miptail :\n";
static const char __pyx_k_objType[] = "objType";
static const char __pyx_k_offsetX[] = "offsetX : ";
static const char __pyx_k_offsetY[] = "offsetY : ";
static const char __pyx_k_offsetZ[] = "offsetZ : ";
static const char __pyx_k_options[] = "options";
static const char __pyx_k_ordinal[] = "ordinal";
static const char __pyx_k_pConfig[] = "pConfig";
static const char __pyx_k_pDevPtr[] = "pDevPtr";
static const char __pyx_k_pFormat[] = "pFormat";
static const char __pyx_k_pHandle[] = "pHandle";
static const char __pyx_k_pTexRef[] = "pTexRef";
static const char __pyx_k_param_2[] = "param";
static const char __pyx_k_pconfig[] = "pconfig";
static const char __pyx_k_peerDev[] = "peerDev";
static const char __pyx_k_pformat[] = "pformat";
static const char __pyx_k_phArray[] = "phArray";
static const char __pyx_k_phEvent[] = "phEvent";
static const char __pyx_k_phGraph[] = "phGraph";
static const char __pyx_k_pitch2D[] = "pitch2D :\n";
static const char __pyx_k_pitch_2[] = "pitch";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_ptr_out[] = "ptr_out";
static const char __pyx_k_pynodes[] = "pynodes";
static const char __pyx_k_resType[] = "resType : ";
static const char __pyx_k_sizeOut[] = "sizeOut";
static const char __pyx_k_smCount[] = "smCount :\n";
static const char __pyx_k_srcHost[] = "srcHost : ";
static const char __pyx_k_texunit[] = "texunit";
static const char __pyx_k_usage_2[] = "usage";
static const char __pyx_k_value64[] = "value64 : ";
static const char __pyx_k_value_2[] = "value : ";
static const char __pyx_k_version[] = "version";
static const char __pyx_k_width_2[] = "width";
static const char __pyx_k_win32_2[] = "win32";
static const char __pyx_k_CUdevice[] = "<CUdevice ";
static const char __pyx_k_CUhostFn[] = "<CUhostFn ";
static const char __pyx_k_CUmodule[] = "<CUmodule ";
static const char __pyx_k_CUresult[] = "CUresult";
static const char __pyx_k_CUstream[] = "<CUstream ";
static const char __pyx_k_CUtexref[] = "<CUtexref ";
static const char __pyx_k_Format_2[] = "Format";
static const char __pyx_k_Height_2[] = "Height";
static const char __pyx_k_base_ptr[] = "base_ptr : ";
static const char __pyx_k_bytesize[] = "bytesize : ";
static const char __pyx_k_callback[] = "callback";
static const char __pyx_k_cdstHost[] = "cdstHost";
static const char __pyx_k_coptions[] = "coptions";
static const char __pyx_k_cpformat[] = "cpformat";
static const char __pyx_k_cptr_ptr[] = "cptr_ptr";
static const char __pyx_k_csrcHost[] = "csrcHost";
static const char __pyx_k_cuLaunch[] = "cuLaunch";
static const char __pyx_k_cuMemMap[] = "cuMemMap";
static const char __pyx_k_cuMemcpy[] = "cuMemcpy";
static const char __pyx_k_cubinOut[] = "cubinOut";
static const char __pyx_k_dataSize[] = "dataSize";
static const char __pyx_k_devPtr_2[] = "devPtr";
static const char __pyx_k_dptr_out[] = "dptr_out";
static const char __pyx_k_dstArray[] = "dstArray : ";
static const char __pyx_k_dstLOD_2[] = "dstLOD";
static const char __pyx_k_dstPitch[] = "dstPitch : ";
static const char __pyx_k_fatCubin[] = "fatCubin";
static const char __pyx_k_format_2[] = "format";
static const char __pyx_k_function[] = "function : ";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_gridDimX[] = "gridDimX : ";
static const char __pyx_k_gridDimY[] = "gridDimY : ";
static const char __pyx_k_gridDimZ[] = "gridDimZ : ";
static const char __pyx_k_hArray_2[] = "hArray";
static const char __pyx_k_hSurfRef[] = "hSurfRef";
static const char __pyx_k_handle_2[] = "handle";
static const char __pyx_k_handle_3[] = "handle :\n";
static const char __pyx_k_height_2[] = "height";
static const char __pyx_k_hitRatio[] = "hitRatio : ";
static const char __pyx_k_linear_2[] = "linear";
static const char __pyx_k_location[] = "location :\n";
static const char __pyx_k_maxAniso[] = "maxAniso";
static const char __pyx_k_memPitch[] = "memPitch : ";
static const char __pyx_k_mipLevel[] = "mipLevel";
static const char __pyx_k_mipmap_2[] = "mipmap";
static const char __pyx_k_mipmap_3[] = "mipmap : ";
static const char __pyx_k_missProp[] = "missProp : ";
static const char __pyx_k_module_2[] = "module";
static const char __pyx_k_numEdges[] = "numEdges";
static const char __pyx_k_numNodes[] = "numNodes";
static const char __pyx_k_numbytes[] = "numbytes";
static const char __pyx_k_offset_2[] = "offset";
static const char __pyx_k_osHandle[] = "osHandle";
static const char __pyx_k_p2pToken[] = "p2pToken : ";
static const char __pyx_k_pResDesc[] = "pResDesc";
static const char __pyx_k_pSurfRef[] = "pSurfRef";
static const char __pyx_k_pTexDesc[] = "pTexDesc";
static const char __pyx_k_params_2[] = "params";
static const char __pyx_k_pciBusId[] = "pciBusId";
static const char __pyx_k_phStream[] = "phStream";
static const char __pyx_k_planeIdx[] = "planeIdx";
static const char __pyx_k_pool_out[] = "pool_out";
static const char __pyx_k_priority[] = "priority";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_reserved[] = "reserved : ";
static const char __pyx_k_resource[] = "resource :\n";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_srcArray[] = "srcArray : ";
static const char __pyx_k_srcLOD_2[] = "srcLOD";
static const char __pyx_k_srcPitch[] = "srcPitch : ";
static const char __pyx_k_stateOut[] = "stateOut";
static const char __pyx_k_typename[] = "typename";
static const char __pyx_k_userData[] = "userData : ";
static const char __pyx_k_ByteCount[] = "ByteCount";
static const char __pyx_k_CUarray_2[] = "CUarray";
static const char __pyx_k_CUcontext[] = "<CUcontext ";
static const char __pyx_k_CUdevprop[] = "CUdevprop";
static const char __pyx_k_CUevent_2[] = "CUevent";
static const char __pyx_k_CUgraph_2[] = "CUgraph";
static const char __pyx_k_CUsurfref[] = "<CUsurfref ";
static const char __pyx_k_CUuuid_st[] = "CUuuid_st";
static const char __pyx_k_SIMDWidth[] = "SIMDWidth : ";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_address_2[] = "address";
static const char __pyx_k_alignment[] = "alignment";
static const char __pyx_k_allocType[] = "allocType : ";
static const char __pyx_k_arrayDesc[] = "arrayDesc :\n";
static const char __pyx_k_attribute[] = "attribute";
static const char __pyx_k_blockDimX[] = "blockDimX : ";
static const char __pyx_k_blockDimY[] = "blockDimY : ";
static const char __pyx_k_blockDimZ[] = "blockDimZ : ";
static const char __pyx_k_blockSize[] = "blockSize";
static const char __pyx_k_caddr_ptr[] = "caddr_ptr";
static const char __pyx_k_cdata_ptr[] = "cdata_ptr";
static const char __pyx_k_cdesc_ptr[] = "cdesc_ptr";
static const char __pyx_k_cfatCubin[] = "cfatCubin";
static const char __pyx_k_clockRate[] = "clockRate : ";
static const char __pyx_k_cosHandle[] = "cosHandle";
static const char __pyx_k_cprop_ptr[] = "cprop_ptr";
static const char __pyx_k_ctypename[] = "ctypename";
static const char __pyx_k_cuMemFree[] = "cuMemFree";
static const char __pyx_k_cuda_cuda[] = "cuda.cuda";
static const char __pyx_k_cuserData[] = "cuserData";
static const char __pyx_k_dataSizes[] = "dataSizes";
static const char __pyx_k_dstDevice[] = "dstDevice : ";
static const char __pyx_k_dstHeight[] = "dstHeight : ";
static const char __pyx_k_dstHost_2[] = "dstHost";
static const char __pyx_k_dstOffset[] = "dstOffset";
static const char __pyx_k_enumerate[] = "enumerate";
static const char __pyx_k_event_out[] = "event_out";
static const char __pyx_k_graph_out[] = "graph_out";
static const char __pyx_k_hStream_2[] = "hStream";
static const char __pyx_k_hitProp_2[] = "hitProp";
static const char __pyx_k_is_getter[] = "is_getter";
static const char __pyx_k_lastLayer[] = "lastLayer : ";
static const char __pyx_k_logBuffer[] = "logBuffer";
static const char __pyx_k_memHandle[] = "memHandle : ";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_miptail_2[] = "miptail";
static const char __pyx_k_numBlocks[] = "numBlocks";
static const char __pyx_k_numLevels[] = "numLevels : ";
static const char __pyx_k_numParams[] = "numParams";
static const char __pyx_k_num_bytes[] = "num_bytes : ";
static const char __pyx_k_nvSciSync[] = "nvSciSync :\n";
static const char __pyx_k_offsetX_2[] = "offsetX";
static const char __pyx_k_offsetY_2[] = "offsetY";
static const char __pyx_k_offsetZ_2[] = "offsetZ";
static const char __pyx_k_operation[] = "operation : ";
static const char __pyx_k_pitch2D_2[] = "pitch2D";
static const char __pyx_k_pmaxAniso[] = "pmaxAniso";
static const char __pyx_k_poolProps[] = "poolProps :\n";
static const char __pyx_k_pyoptions[] = "pyoptions";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_resType_2[] = "resType";
static const char __pyx_k_reserved0[] = "reserved0 : ";
static const char __pyx_k_reserved1[] = "reserved1 : ";
static const char __pyx_k_resources[] = "resources";
static const char __pyx_k_shareData[] = "shareData";
static const char __pyx_k_smCount_2[] = "smCount";
static const char __pyx_k_srcDevice[] = "srcDevice : ";
static const char __pyx_k_srcHeight[] = "srcHeight : ";
static const char __pyx_k_srcHost_2[] = "srcHost";
static const char __pyx_k_srcOffset[] = "srcOffset";
static const char __pyx_k_texObject[] = "texObject";
static const char __pyx_k_timeoutMs[] = "timeoutMs : ";
static const char __pyx_k_value64_2[] = "value64";
static const char __pyx_k_value_out[] = "value_out";
static const char __pyx_k_waitValue[] = "waitValue :\n";
static const char __pyx_k_ByteOffset[] = "ByteOffset";
static const char __pyx_k_CU_JIT_FMA[] = "CU_JIT_FMA";
static const char __pyx_k_CU_JIT_FTZ[] = "CU_JIT_FTZ";
static const char __pyx_k_CU_JIT_LTO[] = "CU_JIT_LTO";
static const char __pyx_k_CUdevice_2[] = "CUdevice";
static const char __pyx_k_CUfunction[] = "<CUfunction ";
static const char __pyx_k_CUhostFn_2[] = "CUhostFn";
static const char __pyx_k_CUmodule_2[] = "CUmodule";
static const char __pyx_k_CUstream_2[] = "CUstream";
static const char __pyx_k_CUtexref_2[] = "CUtexref";
static const char __pyx_k_IndexError[] = "IndexError";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_allocFlags[] = "allocFlags :\n";
static const char __pyx_k_arrayIndex[] = "arrayIndex";
static const char __pyx_k_attributes[] = "attributes";
static const char __pyx_k_base_ptr_2[] = "base_ptr";
static const char __pyx_k_bufferDesc[] = "bufferDesc";
static const char __pyx_k_bufferSize[] = "bufferSize";
static const char __pyx_k_bytesize_2[] = "bytesize";
static const char __pyx_k_cattribute[] = "cattribute";
static const char __pyx_k_cdataSizes[] = "cdataSizes";
static const char __pyx_k_childGraph[] = "childGraph";
static const char __pyx_k_cimage_ptr[] = "cimage_ptr";
static const char __pyx_k_copyParams[] = "copyParams";
static const char __pyx_k_cpCopy_ptr[] = "cpCopy_ptr";
static const char __pyx_k_crootNodes[] = "crootNodes";
static const char __pyx_k_cuMemAlloc[] = "cuMemAlloc";
static const char __pyx_k_cuMemUnmap[] = "cuMemUnmap";
static const char __pyx_k_cuMemcpy2D[] = "cuMemcpy2D";
static const char __pyx_k_cuMemcpy3D[] = "cuMemcpy3D";
static const char __pyx_k_cuMemsetD8[] = "cuMemsetD8";
static const char __pyx_k_cuuint32_t[] = "<cuuint32_t ";
static const char __pyx_k_cuuint64_t[] = "<cuuint64_t ";
static const char __pyx_k_cvalue_ptr[] = "cvalue_ptr";
static const char __pyx_k_dstArray_2[] = "dstArray";
static const char __pyx_k_dstContext[] = "dstContext : ";
static const char __pyx_k_dstPitch_2[] = "dstPitch";
static const char __pyx_k_extMem_out[] = "extMem_out";
static const char __pyx_k_extSem_out[] = "extSem_out";
static const char __pyx_k_filterMode[] = "filterMode : ";
static const char __pyx_k_firstLayer[] = "firstLayer : ";
static const char __pyx_k_function_2[] = "function";
static const char __pyx_k_gridDimX_2[] = "gridDimX";
static const char __pyx_k_gridDimY_2[] = "gridDimY";
static const char __pyx_k_gridDimZ_2[] = "gridDimZ";
static const char __pyx_k_grid_width[] = "grid_width";
static const char __pyx_k_hGraphExec[] = "hGraphExec";
static const char __pyx_k_handleType[] = "handleType";
static const char __pyx_k_handle_out[] = "handle_out";
static const char __pyx_k_hitRatio_2[] = "hitRatio";
static const char __pyx_k_init_value[] = "init_value";
static const char __pyx_k_keyedMutex[] = "keyedMutex :\n";
static const char __pyx_k_location_2[] = "location";
static const char __pyx_k_memPitch_2[] = "memPitch";
static const char __pyx_k_mipmapDesc[] = "mipmapDesc";
static const char __pyx_k_missProp_2[] = "missProp";
static const char __pyx_k_nodeParams[] = "nodeParams";
static const char __pyx_k_numDevices[] = "numDevices";
static const char __pyx_k_numExtSems[] = "numExtSems : ";
static const char __pyx_k_numOptions[] = "numOptions";
static const char __pyx_k_object_out[] = "object_out";
static const char __pyx_k_p2pToken_2[] = "p2pToken";
static const char __pyx_k_pTexObject[] = "pTexObject";
static const char __pyx_k_paramArray[] = "paramArray";
static const char __pyx_k_params_out[] = "params_out";
static const char __pyx_k_reserved_2[] = "reserved";
static const char __pyx_k_reserved_3[] = "reserved :\n";
static const char __pyx_k_resource_2[] = "resource";
static const char __pyx_k_srcArray_2[] = "srcArray";
static const char __pyx_k_srcContext[] = "srcContext : ";
static const char __pyx_k_srcPitch_2[] = "srcPitch";
static const char __pyx_k_startswith[] = "startswith";
static const char __pyx_k_surfObject[] = "surfObject";
static const char __pyx_k_syncPolicy[] = "syncPolicy : ";
static const char __pyx_k_tileExtent[] = "tileExtent :\n";
static const char __pyx_k_userData_2[] = "userData";
static const char __pyx_k_writeValue[] = "writeValue :\n";
static const char __pyx_k_CUcontext_2[] = "CUcontext";
static const char __pyx_k_CUctx_flags[] = "CUctx_flags";
static const char __pyx_k_CUdevice_v1[] = "<CUdevice_v1 ";
static const char __pyx_k_CUdeviceptr[] = "<CUdeviceptr ";
static const char __pyx_k_CUgraphExec[] = "<CUgraphExec ";
static const char __pyx_k_CUgraphNode[] = "<CUgraphNode ";
static const char __pyx_k_CUlinkState[] = "<CUlinkState ";
static const char __pyx_k_CUsurfref_2[] = "CUsurfref";
static const char __pyx_k_CUtexObject[] = "<CUtexObject ";
static const char __pyx_k_Error_codes[] = "\n    Error codes\n    ";
static const char __pyx_k_MemoryError[] = "MemoryError";
static const char __pyx_k_NumChannels[] = "NumChannels : ";
static const char __pyx_k_SIMDWidth_2[] = "SIMDWidth";
static const char __pyx_k_accessDescs[] = "accessDescs : ";
static const char __pyx_k_addressMode[] = "addressMode : ";
static const char __pyx_k_allocType_2[] = "allocType";
static const char __pyx_k_arrayDesc_2[] = "arrayDesc";
static const char __pyx_k_blockDimX_2[] = "blockDimX";
static const char __pyx_k_blockDimY_2[] = "blockDimY";
static const char __pyx_k_blockDimZ_2[] = "blockDimZ";
static const char __pyx_k_borderColor[] = "borderColor : ";
static const char __pyx_k_cattributes[] = "cattributes";
static const char __pyx_k_chandleType[] = "chandleType";
static const char __pyx_k_chandle_ptr[] = "chandle_ptr";
static const char __pyx_k_clockRate_2[] = "clockRate";
static const char __pyx_k_cooperative[] = "cooperative : ";
static const char __pyx_k_cparamArray[] = "cparamArray";
static const char __pyx_k_cuCtxAttach[] = "cuCtxAttach";
static const char __pyx_k_cuCtxCreate[] = "cuCtxCreate";
static const char __pyx_k_cuCtxDetach[] = "cuCtxDetach";
static const char __pyx_k_cuDeviceGet[] = "cuDeviceGet";
static const char __pyx_k_cuMemAdvise[] = "cuMemAdvise";
static const char __pyx_k_cuMemCreate[] = "cuMemCreate";
static const char __pyx_k_cuMemsetD16[] = "cuMemsetD16";
static const char __pyx_k_cuMemsetD32[] = "cuMemsetD32";
static const char __pyx_k_cuParamSetf[] = "cuParamSetf";
static const char __pyx_k_cuParamSeti[] = "cuParamSeti";
static const char __pyx_k_cuParamSetv[] = "cuParamSetv";
static const char __pyx_k_cudaVersion[] = "cudaVersion";
static const char __pyx_k_dstDevice_2[] = "dstDevice";
static const char __pyx_k_dstHeight_2[] = "dstHeight";
static const char __pyx_k_dstXInBytes[] = "dstXInBytes : ";
static const char __pyx_k_elementSize[] = "elementSize : ";
static const char __pyx_k_extSemArray[] = "extSemArray : ";
static const char __pyx_k_extentDepth[] = "extentDepth : ";
static const char __pyx_k_extentWidth[] = "extentWidth : ";
static const char __pyx_k_granularity[] = "granularity";
static const char __pyx_k_grid_height[] = "grid_height";
static const char __pyx_k_handleTypes[] = "handleTypes : ";
static const char __pyx_k_lastLayer_2[] = "lastLayer";
static const char __pyx_k_mapInfoList[] = "mapInfoList";
static const char __pyx_k_maxGridSize[] = "maxGridSize : ";
static const char __pyx_k_memHandle_2[] = "memHandle";
static const char __pyx_k_memHandle_3[] = "memHandle :\n";
static const char __pyx_k_minGridSize[] = "minGridSize";
static const char __pyx_k_miptailSize[] = "miptailSize : ";
static const char __pyx_k_numChannels[] = "numChannels : ";
static const char __pyx_k_numLevels_2[] = "numLevels";
static const char __pyx_k_num_bytes_2[] = "num_bytes";
static const char __pyx_k_nvSciSync_2[] = "nvSciSync";
static const char __pyx_k_operation_2[] = "operation";
static const char __pyx_k_pLevelArray[] = "pLevelArray";
static const char __pyx_k_pPlaneArray[] = "pPlaneArray";
static const char __pyx_k_pSurfObject[] = "pSurfObject";
static const char __pyx_k_paramsArray[] = "paramsArray : ";
static const char __pyx_k_peerContext[] = "peerContext";
static const char __pyx_k_phErrorNode[] = "phErrorNode";
static const char __pyx_k_phGraphExec[] = "phGraphExec";
static const char __pyx_k_phGraphNode[] = "phGraphNode";
static const char __pyx_k_poolProps_2[] = "poolProps";
static const char __pyx_k_pydataSizes[] = "pydataSizes";
static const char __pyx_k_pyrootNodes[] = "pyrootNodes";
static const char __pyx_k_reserved0_2[] = "reserved0";
static const char __pyx_k_reserved1_2[] = "reserved1";
static const char __pyx_k_sizeInBytes[] = "sizeInBytes : ";
static const char __pyx_k_sparseLevel[] = "sparseLevel :\n";
static const char __pyx_k_srcDevice_2[] = "srcDevice";
static const char __pyx_k_srcHeight_2[] = "srcHeight";
static const char __pyx_k_srcXInBytes[] = "srcXInBytes : ";
static const char __pyx_k_subresource[] = "subresource :\n";
static const char __pyx_k_timeoutMs_2[] = "timeoutMs";
static const char __pyx_k_waitValue_2[] = "waitValue";
static const char __pyx_k_CUDA_SUCCESS[] = "CUDA_SUCCESS";
static const char __pyx_k_CUDA_VERSION[] = "CUDA_VERSION";
static const char __pyx_k_CU_LIMIT_MAX[] = "CU_LIMIT_MAX";
static const char __pyx_k_CU_TRSF_SRGB[] = "CU_TRSF_SRGB";
static const char __pyx_k_CUdevprop_st[] = "CUdevprop_st";
static const char __pyx_k_CUdevprop_v1[] = "CUdevprop_v1";
static const char __pyx_k_CUfunc_cache[] = "CUfunc_cache";
static const char __pyx_k_CUfunction_2[] = "CUfunction";
static const char __pyx_k_CUjit_option[] = "CUjit_option";
static const char __pyx_k_CUjit_target[] = "CUjit_target";
static const char __pyx_k_CUmem_advise[] = "CUmem_advise";
static const char __pyx_k_CUmemoryPool[] = "<CUmemoryPool ";
static const char __pyx_k_CUmemorytype[] = "CUmemorytype";
static const char __pyx_k_CUsurfObject[] = "<CUsurfObject ";
static const char __pyx_k_CUuserObject[] = "<CUuserObject ";
static const char __pyx_k_Memory_types[] = "\n    Memory types\n    ";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_Unknown_type[] = "Unknown type: ";
static const char __pyx_k_WidthInBytes[] = "WidthInBytes : ";
static const char __pyx_k_allocFlags_2[] = "allocFlags";
static const char __pyx_k_cdstHost_ptr[] = "cdstHost_ptr";
static const char __pyx_k_cextSemArray[] = "cextSemArray";
static const char __pyx_k_cmapInfoList[] = "cmapInfoList";
static const char __pyx_k_cparamsArray[] = "cparamsArray";
static const char __pyx_k_csrcHost_ptr[] = "csrcHost_ptr";
static const char __pyx_k_cuCtxDestroy[] = "cuCtxDestroy";
static const char __pyx_k_cuEventQuery[] = "cuEventQuery";
static const char __pyx_k_cuGraphClone[] = "cuGraphClone";
static const char __pyx_k_cuLaunchGrid[] = "cuLaunchGrid";
static const char __pyx_k_cuLinkCreate[] = "cuLinkCreate";
static const char __pyx_k_cuMemGetInfo[] = "cuMemGetInfo";
static const char __pyx_k_cuMemRelease[] = "cuMemRelease";
static const char __pyx_k_cuMemcpyAtoA[] = "cuMemcpyAtoA";
static const char __pyx_k_cuMemcpyAtoD[] = "cuMemcpyAtoD";
static const char __pyx_k_cuMemcpyAtoH[] = "cuMemcpyAtoH";
static const char __pyx_k_cuMemcpyDtoA[] = "cuMemcpyDtoA";
static const char __pyx_k_cuMemcpyDtoD[] = "cuMemcpyDtoD";
static const char __pyx_k_cuMemcpyDtoH[] = "cuMemcpyDtoH";
static const char __pyx_k_cuMemcpyHtoA[] = "cuMemcpyHtoA";
static const char __pyx_k_cuMemcpyHtoD[] = "cuMemcpyHtoD";
static const char __pyx_k_cuMemcpyPeer[] = "cuMemcpyPeer";
static const char __pyx_k_cuMemsetD2D8[] = "cuMemsetD2D8";
static const char __pyx_k_cuModuleLoad[] = "cuModuleLoad";
static const char __pyx_k_cuuint32_t_2[] = "cuuint32_t";
static const char __pyx_k_cuuint64_t_2[] = "cuuint64_t";
static const char __pyx_k_dependencies[] = "dependencies";
static const char __pyx_k_dstContext_2[] = "dstContext";
static const char __pyx_k_extentHeight[] = "extentHeight : ";
static const char __pyx_k_filterMode_2[] = "filterMode";
static const char __pyx_k_firstLayer_2[] = "firstLayer";
static const char __pyx_k_graph_length[] = "_graph_length";
static const char __pyx_k_hClonedGraph[] = "hClonedGraph";
static const char __pyx_k_kernelParams[] = "kernelParams : ";
static const char __pyx_k_keyedMutex_2[] = "keyedMutex";
static const char __pyx_k_memsetParams[] = "memsetParams";
static const char __pyx_k_numExtSems_2[] = "numExtSems";
static const char __pyx_k_numRootNodes[] = "numRootNodes";
static const char __pyx_k_nvSciSyncObj[] = "nvSciSyncObj : ";
static const char __pyx_k_optionValues[] = "optionValues";
static const char __pyx_k_pBorderColor[] = "pBorderColor";
static const char __pyx_k_pNumChannels[] = "pNumChannels";
static const char __pyx_k_pResViewDesc[] = "pResViewDesc";
static const char __pyx_k_phGraphClone[] = "phGraphClone";
static const char __pyx_k_pitchInBytes[] = "pitchInBytes : ";
static const char __pyx_k_pyattributes[] = "pyattributes";
static const char __pyx_k_regsPerBlock[] = "regsPerBlock : ";
static const char __pyx_k_resourceType[] = "resourceType : ";
static const char __pyx_k_shHandleType[] = "shHandleType";
static const char __pyx_k_srcContext_2[] = "srcContext";
static const char __pyx_k_stringsource[] = "stringsource";
static const char __pyx_k_syncPolicy_2[] = "syncPolicy";
static const char __pyx_k_textureAlign[] = "textureAlign : ";
static const char __pyx_k_tileExtent_2[] = "tileExtent";
static const char __pyx_k_vaSpaceToken[] = "vaSpaceToken : ";
static const char __pyx_k_writeValue_2[] = "writeValue";
static const char __pyx_k_Array_formats[] = "\n    Array formats\n    ";
static const char __pyx_k_CUDA_MEMCPY2D[] = "CUDA_MEMCPY2D";
static const char __pyx_k_CUDA_MEMCPY3D[] = "CUDA_MEMCPY3D";
static const char __pyx_k_CU_DEVICE_CPU[] = "CU_DEVICE_CPU";
static const char __pyx_k_CU_JIT_TARGET[] = "CU_JIT_TARGET";
static const char __pyx_k_CU_PREFER_PTX[] = "CU_PREFER_PTX";
static const char __pyx_k_CUcomputemode[] = "CUcomputemode";
static const char __pyx_k_CUdevice_v1_2[] = "CUdevice_v1";
static const char __pyx_k_CUdeviceptr_2[] = "CUdeviceptr";
static const char __pyx_k_CUevent_flags[] = "CUevent_flags";
static const char __pyx_k_CUfilter_mode[] = "CUfilter_mode";
static const char __pyx_k_CUgraphExec_2[] = "CUgraphExec";
static const char __pyx_k_CUgraphNode_2[] = "CUgraphNode";
static const char __pyx_k_CUlinkState_2[] = "CUlinkState";
static const char __pyx_k_CUmemLocation[] = "CUmemLocation";
static const char __pyx_k_CUtexObject_2[] = "CUtexObject";
static const char __pyx_k_Compute_Modes[] = "\n    Compute Modes\n    ";
static const char __pyx_k_NumChannels_2[] = "NumChannels";
static const char __pyx_k_OverflowError[] = "OverflowError";
static const char __pyx_k_accessDescs_2[] = "accessDescs";
static const char __pyx_k_addressMode_2[] = "addressMode";
static const char __pyx_k_borderColor_2[] = "borderColor";
static const char __pyx_k_canAccessPeer[] = "canAccessPeer";
static const char __pyx_k_captureStatus[] = "captureStatus";
static const char __pyx_k_cdependencies[] = "cdependencies";
static const char __pyx_k_cfatCubin_ptr[] = "cfatCubin_ptr";
static const char __pyx_k_ckernelParams[] = "ckernelParams";
static const char __pyx_k_clocation_ptr[] = "clocation_ptr";
static const char __pyx_k_cooperative_2[] = "cooperative";
static const char __pyx_k_cosHandle_ptr[] = "cosHandle_ptr";
static const char __pyx_k_cpResDesc_ptr[] = "cpResDesc_ptr";
static const char __pyx_k_cpTexDesc_ptr[] = "cpTexDesc_ptr";
static const char __pyx_k_cshHandleType[] = "cshHandleType";
static const char __pyx_k_cuArrayCreate[] = "cuArrayCreate";
static const char __pyx_k_cuCtxGetFlags[] = "cuCtxGetFlags";
static const char __pyx_k_cuCtxGetLimit[] = "cuCtxGetLimit";
static const char __pyx_k_cuCtxSetLimit[] = "cuCtxSetLimit";
static const char __pyx_k_cuEventCreate[] = "cuEventCreate";
static const char __pyx_k_cuEventRecord[] = "cuEventRecord";
static const char __pyx_k_cuGraphCreate[] = "cuGraphCreate";
static const char __pyx_k_cuGraphLaunch[] = "cuGraphLaunch";
static const char __pyx_k_cuGraphUpload[] = "cuGraphUpload";
static const char __pyx_k_cuLinkAddData[] = "cuLinkAddData";
static const char __pyx_k_cuLinkAddFile[] = "cuLinkAddFile";
static const char __pyx_k_cuLinkDestroy[] = "cuLinkDestroy";
static const char __pyx_k_cuMemFreeHost[] = "cuMemFreeHost";
static const char __pyx_k_cuMemcpyAsync[] = "cuMemcpyAsync";
static const char __pyx_k_cuMemsetD2D16[] = "cuMemsetD2D16";
static const char __pyx_k_cuMemsetD2D32[] = "cuMemsetD2D32";
static const char __pyx_k_cuStreamQuery[] = "cuStreamQuery";
static const char __pyx_k_cuda_cuda_pyx[] = "cuda/cuda.pyx";
static const char __pyx_k_cuserData_ptr[] = "cuserData_ptr";
static const char __pyx_k_deviceBitMask[] = "deviceBitMask : ";
static const char __pyx_k_driverVersion[] = "driverVersion";
static const char __pyx_k_dstMemoryType[] = "dstMemoryType : ";
static const char __pyx_k_dstXInBytes_2[] = "dstXInBytes";
static const char __pyx_k_elementSize_2[] = "elementSize";
static const char __pyx_k_extSemArray_2[] = "extSemArray";
static const char __pyx_k_extentDepth_2[] = "extentDepth";
static const char __pyx_k_extentWidth_2[] = "extentWidth";
static const char __pyx_k_hOriginalNode[] = "hOriginalNode";
static const char __pyx_k_handleTypes_2[] = "handleTypes";
static const char __pyx_k_leastPriority[] = "leastPriority";
static const char __pyx_k_maxAnisotropy[] = "maxAnisotropy : ";
static const char __pyx_k_maxGridSize_2[] = "maxGridSize";
static const char __pyx_k_maxThreadsDim[] = "maxThreadsDim : ";
static const char __pyx_k_memHandleDesc[] = "memHandleDesc";
static const char __pyx_k_memHandleType[] = "memHandleType : ";
static const char __pyx_k_miptailSize_2[] = "miptailSize";
static const char __pyx_k_numAttributes[] = "numAttributes";
static const char __pyx_k_numChannels_2[] = "numChannels";
static const char __pyx_k_originalGraph[] = "originalGraph";
static const char __pyx_k_pExecAffinity[] = "pExecAffinity";
static const char __pyx_k_pMilliseconds[] = "pMilliseconds";
static const char __pyx_k_paramsArray_2[] = "paramsArray";
static const char __pyx_k_ppExportTable[] = "ppExportTable";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_semHandleDesc[] = "semHandleDesc";
static const char __pyx_k_shareData_out[] = "shareData_out";
static const char __pyx_k_sizeInBytes_2[] = "sizeInBytes";
static const char __pyx_k_sparseLevel_2[] = "sparseLevel";
static const char __pyx_k_srcMemoryType[] = "srcMemoryType : ";
static const char __pyx_k_srcXInBytes_2[] = "srcXInBytes";
static const char __pyx_k_subresource_2[] = "subresource";
static const char __pyx_k_CUaddress_mode[] = "CUaddress_mode";
static const char __pyx_k_CUarrayMapInfo[] = "CUarrayMapInfo";
static const char __pyx_k_CUarray_format[] = "CUarray_format";
static const char __pyx_k_CUarray_getPtr[] = "CUarray.getPtr";
static const char __pyx_k_CUdeviceptr_v2[] = "<CUdeviceptr_v2 ";
static const char __pyx_k_CUevent_getPtr[] = "CUevent.getPtr";
static const char __pyx_k_CUgraph_getPtr[] = "CUgraph.getPtr";
static const char __pyx_k_CUipcMemHandle[] = "CUipcMemHandle";
static const char __pyx_k_CUipcMem_flags[] = "CUipcMem_flags";
static const char __pyx_k_CUjitInputType[] = "CUjitInputType";
static const char __pyx_k_CUjit_fallback[] = "CUjit_fallback";
static const char __pyx_k_CUmemPoolProps[] = "CUmemPoolProps";
static const char __pyx_k_CUmemoryPool_2[] = "CUmemoryPool";
static const char __pyx_k_CUresourcetype[] = "CUresourcetype";
static const char __pyx_k_CUsharedconfig[] = "CUsharedconfig";
static const char __pyx_k_CUstreamAttrID[] = "CUstreamAttrID";
static const char __pyx_k_CUstream_flags[] = "CUstream_flags";
static const char __pyx_k_CUsurfObject_2[] = "CUsurfObject";
static const char __pyx_k_CUtexObject_v1[] = "<CUtexObject_v1 ";
static const char __pyx_k_CUuserObject_2[] = "CUuserObject";
static const char __pyx_k_P2P_Attributes[] = "\n    P2P Attributes\n    ";
static const char __pyx_k_Resource_types[] = "\n    Resource types\n    ";
static const char __pyx_k_WidthInBytes_2[] = "WidthInBytes";
static const char __pyx_k_blockSizeLimit[] = "blockSizeLimit";
static const char __pyx_k_cpoolProps_ptr[] = "cpoolProps_ptr";
static const char __pyx_k_cresources_ptr[] = "cresources_ptr";
static const char __pyx_k_cshareData_ptr[] = "cshareData_ptr";
static const char __pyx_k_cuArrayDestroy[] = "cuArrayDestroy";
static const char __pyx_k_cuCtxCreate_v3[] = "cuCtxCreate_v3";
static const char __pyx_k_cuCtxGetDevice[] = "cuCtxGetDevice";
static const char __pyx_k_cuEventDestroy[] = "cuEventDestroy";
static const char __pyx_k_cuGetErrorName[] = "cuGetErrorName";
static const char __pyx_k_cuGraphDestroy[] = "cuGraphDestroy";
static const char __pyx_k_cuLaunchKernel[] = "cuLaunchKernel";
static const char __pyx_k_cuLinkComplete[] = "cuLinkComplete";
static const char __pyx_k_cuMemAllocHost[] = "cuMemAllocHost";
static const char __pyx_k_cuMemFreeAsync[] = "cuMemFreeAsync";
static const char __pyx_k_cuMemGetAccess[] = "cuMemGetAccess";
static const char __pyx_k_cuMemHostAlloc[] = "cuMemHostAlloc";
static const char __pyx_k_cuMemSetAccess[] = "cuMemSetAccess";
static const char __pyx_k_cuMemcpy3DPeer[] = "cuMemcpy3DPeer";
static const char __pyx_k_cuModuleUnload[] = "cuModuleUnload";
static const char __pyx_k_cuParamSetSize[] = "cuParamSetSize";
static const char __pyx_k_cuStreamCreate[] = "cuStreamCreate";
static const char __pyx_k_cuStreamGetCtx[] = "cuStreamGetCtx";
static const char __pyx_k_cuTexRefCreate[] = "cuTexRefCreate";
static const char __pyx_k_deviceNodeMask[] = "deviceNodeMask";
static const char __pyx_k_extentHeight_2[] = "extentHeight";
static const char __pyx_k_hErrorNode_out[] = "hErrorNode_out";
static const char __pyx_k_kernelParams_2[] = "kernelParams";
static const char __pyx_k_minBytesToKeep[] = "minBytesToKeep";
static const char __pyx_k_nvSciBufObject[] = "nvSciBufObject : ";
static const char __pyx_k_nvSciSyncObj_2[] = "nvSciSyncObj";
static const char __pyx_k_pAllocateArray[] = "pAllocateArray";
static const char __pyx_k_pExportTableId[] = "pExportTableId";
static const char __pyx_k_pitchInBytes_2[] = "pitchInBytes";
static const char __pyx_k_pydependencies[] = "pydependencies";
static const char __pyx_k_pyoptionValues[] = "pyoptionValues";
static const char __pyx_k_regsPerBlock_2[] = "regsPerBlock";
static const char __pyx_k_resourceType_2[] = "resourceType";
static const char __pyx_k_sharedMemBytes[] = "sharedMemBytes : ";
static const char __pyx_k_textureAlign_2[] = "textureAlign";
static const char __pyx_k_vaSpaceToken_2[] = "vaSpaceToken";
static const char __pyx_k_voidStarHelper[] = "voidStarHelper";
static const char __pyx_k_CU_CTX_MAP_HOST[] = "CU_CTX_MAP_HOST";
static const char __pyx_k_CU_JIT_PREC_DIV[] = "CU_JIT_PREC_DIV";
static const char __pyx_k_CUdevice_getPtr[] = "CUdevice.getPtr";
static const char __pyx_k_CUgraphNodeType[] = "CUgraphNodeType";
static const char __pyx_k_CUhostFn_getPtr[] = "CUhostFn.getPtr";
static const char __pyx_k_CUjit_cacheMode[] = "CUjit_cacheMode";
static const char __pyx_k_CUmemAccessDesc[] = "CUmemAccessDesc";
static const char __pyx_k_CUmemHandleType[] = "CUmemHandleType";
static const char __pyx_k_CUmodule_getPtr[] = "CUmodule.getPtr";
static const char __pyx_k_CUstream_getPtr[] = "CUstream.getPtr";
static const char __pyx_k_CUsurfObject_v1[] = "<CUsurfObject_v1 ";
static const char __pyx_k_CUtexref_getPtr[] = "CUtexref.getPtr";
static const char __pyx_k_accessDescCount[] = "accessDescCount : ";
static const char __pyx_k_cbufferDesc_ptr[] = "cbufferDesc_ptr";
static const char __pyx_k_ccopyParams_ptr[] = "ccopyParams_ptr";
static const char __pyx_k_cdependentNodes[] = "cdependentNodes";
static const char __pyx_k_chandle_out_ptr[] = "chandle_out_ptr";
static const char __pyx_k_cmipmapDesc_ptr[] = "cmipmapDesc_ptr";
static const char __pyx_k_cnodeParams_ptr[] = "cnodeParams_ptr";
static const char __pyx_k_compressionType[] = "compressionType : ";
static const char __pyx_k_cuArray3DCreate[] = "cuArray3DCreate";
static const char __pyx_k_cuArrayGetPlane[] = "cuArrayGetPlane";
static const char __pyx_k_cuCtxGetCurrent[] = "cuCtxGetCurrent";
static const char __pyx_k_cuCtxPopCurrent[] = "cuCtxPopCurrent";
static const char __pyx_k_cuCtxSetCurrent[] = "cuCtxSetCurrent";
static const char __pyx_k_cuDeviceGetLuid[] = "cuDeviceGetLuid";
static const char __pyx_k_cuDeviceGetName[] = "cuDeviceGetName";
static const char __pyx_k_cuDeviceGetUuid[] = "cuDeviceGetUuid";
static const char __pyx_k_cuFuncGetModule[] = "cuFuncGetModule";
static const char __pyx_k_cuGraphGetEdges[] = "cuGraphGetEdges";
static const char __pyx_k_cuGraphGetNodes[] = "cuGraphGetNodes";
static const char __pyx_k_cuMemAllocAsync[] = "cuMemAllocAsync";
static const char __pyx_k_cuMemAllocPitch[] = "cuMemAllocPitch";
static const char __pyx_k_cuMemPoolCreate[] = "cuMemPoolCreate";
static const char __pyx_k_cuMemPoolTrimTo[] = "cuMemPoolTrimTo";
static const char __pyx_k_cuMemcpy2DAsync[] = "cuMemcpy2DAsync";
static const char __pyx_k_cuMemcpy3DAsync[] = "cuMemcpy3DAsync";
static const char __pyx_k_cuMemsetD8Async[] = "cuMemsetD8Async";
static const char __pyx_k_cuStreamDestroy[] = "cuStreamDestroy";
static const char __pyx_k_cuTexRefDestroy[] = "cuTexRefDestroy";
static const char __pyx_k_deviceBitMask_2[] = "deviceBitMask";
static const char __pyx_k_dstMemoryType_2[] = "dstMemoryType";
static const char __pyx_k_dynamicSMemSize[] = "dynamicSMemSize";
static const char __pyx_k_dynamicSmemSize[] = "dynamicSmemSize";
static const char __pyx_k_hMipmappedArray[] = "hMipmappedArray : ";
static const char __pyx_k_initialRefcount[] = "initialRefcount";
static const char __pyx_k_lastMipmapLevel[] = "lastMipmapLevel : ";
static const char __pyx_k_maxAnisotropy_2[] = "maxAnisotropy";
static const char __pyx_k_maxThreadsDim_2[] = "maxThreadsDim";
static const char __pyx_k_memHandleType_2[] = "memHandleType";
static const char __pyx_k_mipmapLevelBias[] = "mipmapLevelBias : ";
static const char __pyx_k_numDependencies[] = "numDependencies";
static const char __pyx_k_numMipmapLevels[] = "numMipmapLevels";
static const char __pyx_k_pMipmappedArray[] = "pMipmappedArray";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_shareableHandle[] = "shareableHandle";
static const char __pyx_k_srcMemoryType_2[] = "srcMemoryType";
static const char __pyx_k_subresourceType[] = "subresourceType : ";
static const char __pyx_k_CUDA_MEMCPY2D_st[] = "CUDA_MEMCPY2D_st";
static const char __pyx_k_CUDA_MEMCPY2D_v2[] = "CUDA_MEMCPY2D_v2";
static const char __pyx_k_CUDA_MEMCPY3D_st[] = "CUDA_MEMCPY3D_st";
static const char __pyx_k_CUDA_MEMCPY3D_v2[] = "CUDA_MEMCPY3D_v2";
static const char __pyx_k_CU_EVENT_DEFAULT[] = "CU_EVENT_DEFAULT";
static const char __pyx_k_CU_JIT_INPUT_PTX[] = "CU_JIT_INPUT_PTX";
static const char __pyx_k_CU_JIT_PREC_SQRT[] = "CU_JIT_PREC_SQRT";
static const char __pyx_k_CU_JIT_WALL_TIME[] = "CU_JIT_WALL_TIME";
static const char __pyx_k_CU_PREFER_BINARY[] = "CU_PREFER_BINARY";
static const char __pyx_k_CU_STREAM_LEGACY[] = "CU_STREAM_LEGACY";
static const char __pyx_k_CUaccessProperty[] = "CUaccessProperty";
static const char __pyx_k_CUcontext_getPtr[] = "CUcontext.getPtr";
static const char __pyx_k_CUdeviceptr_v2_2[] = "CUdeviceptr_v2";
static const char __pyx_k_CUexternalMemory[] = "<CUexternalMemory ";
static const char __pyx_k_CUipcEventHandle[] = "CUipcEventHandle";
static const char __pyx_k_CUmemLocation_st[] = "CUmemLocation_st";
static const char __pyx_k_CUmemLocation_v1[] = "CUmemLocation_v1";
static const char __pyx_k_CUmipmappedArray[] = "<CUmipmappedArray ";
static const char __pyx_k_CUstreamCallback[] = "<CUstreamCallback ";
static const char __pyx_k_CUsurfref_getPtr[] = "CUsurfref.getPtr";
static const char __pyx_k_CUtexObject_v1_2[] = "CUtexObject_v1";
static const char __pyx_k_CUuuid_st_getPtr[] = "CUuuid_st.getPtr";
static const char __pyx_k_ElementSizeBytes[] = "ElementSizeBytes";
static const char __pyx_k_Event_wait_flags[] = "\n    Event wait flags\n    ";
static const char __pyx_k_Graph_node_types[] = "\n    Graph node types\n    ";
static const char __pyx_k_cuCtxPushCurrent[] = "cuCtxPushCurrent";
static const char __pyx_k_cuCtxSynchronize[] = "cuCtxSynchronize";
static const char __pyx_k_cuDeviceGetCount[] = "cuDeviceGetCount";
static const char __pyx_k_cuDeviceTotalMem[] = "cuDeviceTotalMem";
static const char __pyx_k_cuGetErrorString[] = "cuGetErrorString";
static const char __pyx_k_cuGetExportTable[] = "cuGetExportTable";
static const char __pyx_k_cuGetProcAddress[] = "cuGetProcAddress";
static const char __pyx_k_cuLaunchHostFunc[] = "cuLaunchHostFunc";
static const char __pyx_k_cuMemAddressFree[] = "cuMemAddressFree";
static const char __pyx_k_cuMemPoolDestroy[] = "cuMemPoolDestroy";
static const char __pyx_k_cuMemsetD16Async[] = "cuMemsetD16Async";
static const char __pyx_k_cuMemsetD32Async[] = "cuMemsetD32Async";
static const char __pyx_k_cuModuleLoadData[] = "cuModuleLoadData";
static const char __pyx_k_cuParamSetTexRef[] = "cuParamSetTexRef";
static const char __pyx_k_cuStreamGetFlags[] = "cuStreamGetFlags";
static const char __pyx_k_cuTexRefGetArray[] = "cuTexRefGetArray";
static const char __pyx_k_cuTexRefGetFlags[] = "cuTexRefGetFlags";
static const char __pyx_k_cuTexRefSetArray[] = "cuTexRefSetArray";
static const char __pyx_k_cuTexRefSetFlags[] = "cuTexRefSetFlags";
static const char __pyx_k_firstMipmapLevel[] = "firstMipmapLevel : ";
static const char __pyx_k_greatestPriority[] = "greatestPriority";
static const char __pyx_k_launchParamsList[] = "launchParamsList";
static const char __pyx_k_memOperationType[] = "memOperationType : ";
static const char __pyx_k_mipmapFilterMode[] = "mipmapFilterMode : ";
static const char __pyx_k_nvSciBufObject_2[] = "nvSciBufObject";
static const char __pyx_k_pArrayDescriptor[] = "pArrayDescriptor";
static const char __pyx_k_phMipmappedArray[] = "phMipmappedArray";
static const char __pyx_k_pydependentNodes[] = "pydependentNodes";
static const char __pyx_k_sharedMemBytes_2[] = "sharedMemBytes";
static const char __pyx_k_sparseProperties[] = "sparseProperties";
static const char __pyx_k_updateResult_out[] = "updateResult_out";
static const char __pyx_k_CUDA_ERROR_ASSERT[] = "CUDA_ERROR_ASSERT";
static const char __pyx_k_CUDA_TEXTURE_DESC[] = "CUDA_TEXTURE_DESC";
static const char __pyx_k_CU_AD_FORMAT_HALF[] = "CU_AD_FORMAT_HALF";
static const char __pyx_k_CU_AD_FORMAT_NV12[] = "CU_AD_FORMAT_NV12";
static const char __pyx_k_CU_CTX_FLAGS_MASK[] = "CU_CTX_FLAGS_MASK";
static const char __pyx_k_CU_CTX_SCHED_AUTO[] = "CU_CTX_SCHED_AUTO";
static const char __pyx_k_CU_CTX_SCHED_MASK[] = "CU_CTX_SCHED_MASK";
static const char __pyx_k_CU_CTX_SCHED_SPIN[] = "CU_CTX_SCHED_SPIN";
static const char __pyx_k_CU_DEVICE_INVALID[] = "CU_DEVICE_INVALID";
static const char __pyx_k_CU_JIT_CACHE_MODE[] = "CU_JIT_CACHE_MODE";
static const char __pyx_k_CU_JIT_INPUT_NVVM[] = "CU_JIT_INPUT_NVVM";
static const char __pyx_k_CU_STREAM_DEFAULT[] = "CU_STREAM_DEFAULT";
static const char __pyx_k_CUarrayMapInfo_st[] = "CUarrayMapInfo_st";
static const char __pyx_k_CUarrayMapInfo_v1[] = "CUarrayMapInfo_v1";
static const char __pyx_k_CUfunction_getPtr[] = "CUfunction.getPtr";
static const char __pyx_k_CUipcMemHandle_st[] = "CUipcMemHandle_st";
static const char __pyx_k_CUipcMemHandle_v1[] = "CUipcMemHandle_v1";
static const char __pyx_k_CUmemAccess_flags[] = "CUmemAccess_flags";
static const char __pyx_k_CUmemAttach_flags[] = "CUmemAttach_flags";
static const char __pyx_k_CUmemLocationType[] = "CUmemLocationType";
static const char __pyx_k_CUmemPoolProps_st[] = "CUmemPoolProps_st";
static const char __pyx_k_CUmemPoolProps_v1[] = "CUmemPoolProps_v1";
static const char __pyx_k_CUoccupancy_flags[] = "CUoccupancy_flags";
static const char __pyx_k_CUshared_carveout[] = "CUshared_carveout";
static const char __pyx_k_CUstreamAttrValue[] = "CUstreamAttrValue";
static const char __pyx_k_CUsurfObject_v1_2[] = "CUsurfObject_v1";
static const char __pyx_k_Device_properties[] = "\n    Device properties\n    ";
static const char __pyx_k_List_is_too_small[] = "List is too small: ";
static const char __pyx_k_Stream_Attributes[] = "\n    Stream Attributes\n    ";
static const char __pyx_k_accessDescCount_2[] = "accessDescCount";
static const char __pyx_k_captureStatus_out[] = "captureStatus_out";
static const char __pyx_k_cdependencies_out[] = "cdependencies_out";
static const char __pyx_k_claunchParamsList[] = "claunchParamsList";
static const char __pyx_k_cmemsetParams_ptr[] = "cmemsetParams_ptr";
static const char __pyx_k_compressionType_2[] = "compressionType";
static const char __pyx_k_cpResViewDesc_ptr[] = "cpResViewDesc_ptr";
static const char __pyx_k_cuGraphExecUpdate[] = "cuGraphExecUpdate";
static const char __pyx_k_cuIpcGetMemHandle[] = "cuIpcGetMemHandle";
static const char __pyx_k_cuLaunchGridAsync[] = "cuLaunchGridAsync";
static const char __pyx_k_cuMemAllocManaged[] = "cuMemAllocManaged";
static const char __pyx_k_cuMemHostGetFlags[] = "cuMemHostGetFlags";
static const char __pyx_k_cuMemHostRegister[] = "cuMemHostRegister";
static const char __pyx_k_cuMemcpyAtoHAsync[] = "cuMemcpyAtoHAsync";
static const char __pyx_k_cuMemcpyDtoDAsync[] = "cuMemcpyDtoDAsync";
static const char __pyx_k_cuMemcpyDtoHAsync[] = "cuMemcpyDtoHAsync";
static const char __pyx_k_cuMemcpyHtoAAsync[] = "cuMemcpyHtoAAsync";
static const char __pyx_k_cuMemcpyHtoDAsync[] = "cuMemcpyHtoDAsync";
static const char __pyx_k_cuMemcpyPeerAsync[] = "cuMemcpyPeerAsync";
static const char __pyx_k_cuMemsetD2D8Async[] = "cuMemsetD2D8Async";
static const char __pyx_k_cuModuleGetGlobal[] = "cuModuleGetGlobal";
static const char __pyx_k_cuModuleGetTexRef[] = "cuModuleGetTexRef";
static const char __pyx_k_cuStreamWaitEvent[] = "cuStreamWaitEvent";
static const char __pyx_k_cuSurfRefGetArray[] = "cuSurfRefGetArray";
static const char __pyx_k_cuSurfRefSetArray[] = "cuSurfRefSetArray";
static const char __pyx_k_cuTexObjectCreate[] = "cuTexObjectCreate";
static const char __pyx_k_cuTexRefGetFormat[] = "cuTexRefGetFormat";
static const char __pyx_k_cuTexRefSetFormat[] = "cuTexRefSetFormat";
static const char __pyx_k_cuuint32_t_getPtr[] = "cuuint32_t.getPtr";
static const char __pyx_k_cuuint64_t_getPtr[] = "cuuint64_t.getPtr";
static const char __pyx_k_flushRemoteWrites[] = "flushRemoteWrites :\n";
static const char __pyx_k_hMipmappedArray_2[] = "hMipmappedArray";
static const char __pyx_k_lastMipmapLevel_2[] = "lastMipmapLevel";
static const char __pyx_k_mipmapLevelBias_2[] = "mipmapLevelBias";
static const char __pyx_k_miptailFirstLevel[] = "miptailFirstLevel : ";
static const char __pyx_k_numDependentNodes[] = "numDependentNodes";
static const char __pyx_k_nvSciSyncAttrList[] = "nvSciSyncAttrList";
static const char __pyx_k_sharedMemPerBlock[] = "sharedMemPerBlock : ";
static const char __pyx_k_subresourceType_2[] = "subresourceType";
static const char __pyx_k_CUDA_ERROR_TIMEOUT[] = "CUDA_ERROR_TIMEOUT";
static const char __pyx_k_CUDA_ERROR_UNKNOWN[] = "CUDA_ERROR_UNKNOWN";
static const char __pyx_k_CUDA_Ipc_Mem_Flags[] = "\n    CUDA Ipc Mem Flags\n    ";
static const char __pyx_k_CUDA_LAUNCH_PARAMS[] = "CUDA_LAUNCH_PARAMS";
static const char __pyx_k_CUDA_MEMCPY3D_PEER[] = "CUDA_MEMCPY3D_PEER";
static const char __pyx_k_CUDA_RESOURCE_DESC[] = "CUDA_RESOURCE_DESC";
static const char __pyx_k_CU_AD_FORMAT_FLOAT[] = "CU_AD_FORMAT_FLOAT";
static const char __pyx_k_CU_CTX_SCHED_YIELD[] = "CU_CTX_SCHED_YIELD";
static const char __pyx_k_CU_IPC_HANDLE_SIZE[] = "CU_IPC_HANDLE_SIZE";
static const char __pyx_k_CU_JIT_INPUT_CUBIN[] = "CU_JIT_INPUT_CUBIN";
static const char __pyx_k_CU_JIT_LOG_VERBOSE[] = "CU_JIT_LOG_VERBOSE";
static const char __pyx_k_CU_JIT_NUM_OPTIONS[] = "CU_JIT_NUM_OPTIONS";
static const char __pyx_k_CU_MEMORYTYPE_HOST[] = "CU_MEMORYTYPE_HOST";
static const char __pyx_k_CU_MEM_ATTACH_HOST[] = "CU_MEM_ATTACH_HOST";
static const char __pyx_k_CUdevice_attribute[] = "CUdevice_attribute";
static const char __pyx_k_CUdevice_v1_getPtr[] = "CUdevice_v1.getPtr";
static const char __pyx_k_CUdeviceptr_getPtr[] = "CUdeviceptr.getPtr";
static const char __pyx_k_CUevent_wait_flags[] = "CUevent_wait_flags";
static const char __pyx_k_CUexecAffinityType[] = "CUexecAffinityType";
static const char __pyx_k_CUexternalMemory_2[] = "CUexternalMemory";
static const char __pyx_k_CUgraphExec_getPtr[] = "CUgraphExec.getPtr";
static const char __pyx_k_CUgraphNode_getPtr[] = "CUgraphNode.getPtr";
static const char __pyx_k_CUgraphicsResource[] = "<CUgraphicsResource ";
static const char __pyx_k_CUkernelNodeAttrID[] = "CUkernelNodeAttrID";
static const char __pyx_k_CUlinkState_getPtr[] = "CUlinkState.getPtr";
static const char __pyx_k_CUmemAccessDesc_st[] = "CUmemAccessDesc_st";
static const char __pyx_k_CUmemAccessDesc_v1[] = "CUmemAccessDesc_v1";
static const char __pyx_k_CUmemOperationType[] = "CUmemOperationType";
static const char __pyx_k_CUmipmappedArray_2[] = "CUmipmappedArray";
static const char __pyx_k_CUoccupancyB2DSize[] = "<CUoccupancyB2DSize ";
static const char __pyx_k_CUstreamCallback_2[] = "CUstreamCallback";
static const char __pyx_k_CUtexObject_getPtr[] = "CUtexObject.getPtr";
static const char __pyx_k_CUuserObject_flags[] = "CUuserObject_flags";
static const char __pyx_k_Event_record_flags[] = "\n    Event record flags\n    ";
static const char __pyx_k_accessPolicyWindow[] = "accessPolicyWindow :\n";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_cmemHandleDesc_ptr[] = "cmemHandleDesc_ptr";
static const char __pyx_k_csemHandleDesc_ptr[] = "csemHandleDesc_ptr";
static const char __pyx_k_cuCtxGetApiVersion[] = "cuCtxGetApiVersion";
static const char __pyx_k_cuDeviceGetMemPool[] = "cuDeviceGetMemPool";
static const char __pyx_k_cuDeviceGetUuid_v2[] = "cuDeviceGetUuid_v2";
static const char __pyx_k_cuDeviceSetMemPool[] = "cuDeviceSetMemPool";
static const char __pyx_k_cuDriverGetVersion[] = "cuDriverGetVersion";
static const char __pyx_k_cuEventElapsedTime[] = "cuEventElapsedTime";
static const char __pyx_k_cuEventSynchronize[] = "cuEventSynchronize";
static const char __pyx_k_cuFuncGetAttribute[] = "cuFuncGetAttribute";
static const char __pyx_k_cuFuncSetAttribute[] = "cuFuncSetAttribute";
static const char __pyx_k_cuGraphAddHostNode[] = "cuGraphAddHostNode";
static const char __pyx_k_cuGraphDestroyNode[] = "cuGraphDestroyNode";
static const char __pyx_k_cuGraphExecDestroy[] = "cuGraphExecDestroy";
static const char __pyx_k_cuGraphInstantiate[] = "cuGraphInstantiate";
static const char __pyx_k_cuGraphNodeGetType[] = "cuGraphNodeGetType";
static const char __pyx_k_cuIpcOpenMemHandle[] = "cuIpcOpenMemHandle";
static const char __pyx_k_cuMemMapArrayAsync[] = "cuMemMapArrayAsync";
static const char __pyx_k_cuMemPoolGetAccess[] = "cuMemPoolGetAccess";
static const char __pyx_k_cuMemPoolSetAccess[] = "cuMemPoolSetAccess";
static const char __pyx_k_cuMemPrefetchAsync[] = "cuMemPrefetchAsync";
static const char __pyx_k_cuMemsetD2D16Async[] = "cuMemsetD2D16Async";
static const char __pyx_k_cuMemsetD2D32Async[] = "cuMemsetD2D32Async";
static const char __pyx_k_cuModuleGetSurfRef[] = "cuModuleGetSurfRef";
static const char __pyx_k_cuModuleLoadDataEx[] = "cuModuleLoadDataEx";
static const char __pyx_k_cuStreamBatchMemOp[] = "cuStreamBatchMemOp";
static const char __pyx_k_cuStreamEndCapture[] = "cuStreamEndCapture";
static const char __pyx_k_cuSurfObjectCreate[] = "cuSurfObjectCreate";
static const char __pyx_k_cuTexObjectDestroy[] = "cuTexObjectDestroy";
static const char __pyx_k_cuTexRefGetAddress[] = "cuTexRefGetAddress";
static const char __pyx_k_cuTexRefSetAddress[] = "cuTexRefSetAddress";
static const char __pyx_k_cuUserObjectCreate[] = "cuUserObjectCreate";
static const char __pyx_k_cuUserObjectRetain[] = "cuUserObjectRetain";
static const char __pyx_k_firstMipmapLevel_2[] = "firstMipmapLevel";
static const char __pyx_k_maxThreadsPerBlock[] = "maxThreadsPerBlock : ";
static const char __pyx_k_maxWidthInElements[] = "maxWidthInElements";
static const char __pyx_k_memOperationType_2[] = "memOperationType";
static const char __pyx_k_mipmapFilterMode_2[] = "mipmapFilterMode";
static const char __pyx_k_pydependencies_out[] = "pydependencies_out";
static const char __pyx_k_CUDA_ARRAY3D_SPARSE[] = "CUDA_ARRAY3D_SPARSE";
static const char __pyx_k_CU_JIT_FAST_COMPILE[] = "CU_JIT_FAST_COMPILE";
static const char __pyx_k_CU_JIT_INPUT_OBJECT[] = "CU_JIT_INPUT_OBJECT";
static const char __pyx_k_CU_JIT_NEW_SM3X_OPT[] = "CU_JIT_NEW_SM3X_OPT";
static const char __pyx_k_CU_LAUNCH_PARAM_END[] = "CU_LAUNCH_PARAM_END";
static const char __pyx_k_CU_LIMIT_STACK_SIZE[] = "CU_LIMIT_STACK_SIZE";
static const char __pyx_k_CU_MEMORYTYPE_ARRAY[] = "CU_MEMORYTYPE_ARRAY";
static const char __pyx_k_CU_PARAM_TR_DEFAULT[] = "CU_PARAM_TR_DEFAULT";
static const char __pyx_k_CU_SYNC_POLICY_AUTO[] = "CU_SYNC_POLICY_AUTO";
static const char __pyx_k_CU_SYNC_POLICY_SPIN[] = "CU_SYNC_POLICY_SPIN";
static const char __pyx_k_CUdevprop_st_getPtr[] = "CUdevprop_st.getPtr";
static const char __pyx_k_CUexecAffinityParam[] = "CUexecAffinityParam";
static const char __pyx_k_CUexternalSemaphore[] = "<CUexternalSemaphore ";
static const char __pyx_k_CUipcEventHandle_st[] = "CUipcEventHandle_st";
static const char __pyx_k_CUipcEventHandle_v1[] = "CUipcEventHandle_v1";
static const char __pyx_k_CUmemAllocationProp[] = "CUmemAllocationProp";
static const char __pyx_k_CUmemAllocationType[] = "CUmemAllocationType";
static const char __pyx_k_CUmemPool_attribute[] = "CUmemPool_attribute";
static const char __pyx_k_CUmemoryPool_getPtr[] = "CUmemoryPool.getPtr";
static const char __pyx_k_CUpointer_attribute[] = "CUpointer_attribute";
static const char __pyx_k_CUstreamCaptureMode[] = "CUstreamCaptureMode";
static const char __pyx_k_CUsurfObject_getPtr[] = "CUsurfObject.getPtr";
static const char __pyx_k_CUuserObject_getPtr[] = "CUuserObject.getPtr";
static const char __pyx_k_Device_code_formats[] = "\n    Device code formats\n    ";
static const char __pyx_k_Function_properties[] = "\n    Function properties\n    ";
static const char __pyx_k_Memory_handle_types[] = "\n    Memory handle types\n    ";
static const char __pyx_k_NumPackedComponents[] = "NumPackedComponents";
static const char __pyx_k_Pointer_information[] = "\n    Pointer information\n    ";
static const char __pyx_k_cpAllocateArray_ptr[] = "cpAllocateArray_ptr";
static const char __pyx_k_cpExportTableId_ptr[] = "cpExportTableId_ptr";
static const char __pyx_k_cuCtxGetCacheConfig[] = "cuCtxGetCacheConfig";
static const char __pyx_k_cuCtxSetCacheConfig[] = "cuCtxSetCacheConfig";
static const char __pyx_k_cuDeviceGetPCIBusId[] = "cuDeviceGetPCIBusId";
static const char __pyx_k_cuFuncSetBlockShape[] = "cuFuncSetBlockShape";
static const char __pyx_k_cuFuncSetSharedSize[] = "cuFuncSetSharedSize";
static const char __pyx_k_cuGraphAddEmptyNode[] = "cuGraphAddEmptyNode";
static const char __pyx_k_cuGraphGetRootNodes[] = "cuGraphGetRootNodes";
static const char __pyx_k_cuIpcCloseMemHandle[] = "cuIpcCloseMemHandle";
static const char __pyx_k_cuIpcGetEventHandle[] = "cuIpcGetEventHandle";
static const char __pyx_k_cuMemAddressReserve[] = "cuMemAddressReserve";
static const char __pyx_k_cuMemHostUnregister[] = "cuMemHostUnregister";
static const char __pyx_k_cuMemcpy2DUnaligned[] = "cuMemcpy2DUnaligned";
static const char __pyx_k_cuMemcpy3DPeerAsync[] = "cuMemcpy3DPeerAsync";
static const char __pyx_k_cuModuleGetFunction[] = "cuModuleGetFunction";
static const char __pyx_k_cuStreamAddCallback[] = "cuStreamAddCallback";
static const char __pyx_k_cuStreamGetPriority[] = "cuStreamGetPriority";
static const char __pyx_k_cuStreamIsCapturing[] = "cuStreamIsCapturing";
static const char __pyx_k_cuStreamSynchronize[] = "cuStreamSynchronize";
static const char __pyx_k_cuStreamWaitValue32[] = "cuStreamWaitValue32";
static const char __pyx_k_cuStreamWaitValue64[] = "cuStreamWaitValue64";
static const char __pyx_k_cuSurfObjectDestroy[] = "cuSurfObjectDestroy";
static const char __pyx_k_cuUserObjectRelease[] = "cuUserObjectRelease";
static const char __pyx_k_cvoidStarHelper_ptr[] = "cvoidStarHelper_ptr";
static const char __pyx_k_flushRemoteWrites_2[] = "flushRemoteWrites";
static const char __pyx_k_maxMipmapLevelClamp[] = "maxMipmapLevelClamp : ";
static const char __pyx_k_minMipmapLevelClamp[] = "minMipmapLevelClamp : ";
static const char __pyx_k_miptailFirstLevel_2[] = "miptailFirstLevel";
static const char __pyx_k_numDependencies_out[] = "numDependencies_out";
static const char __pyx_k_pMipmappedArrayDesc[] = "pMipmappedArrayDesc";
static const char __pyx_k_sharedMemPerBlock_2[] = "sharedMemPerBlock";
static const char __pyx_k_totalConstantMemory[] = "totalConstantMemory : ";
static const char __pyx_k_win32HandleMetaData[] = "win32HandleMetaData : ";
static const char __pyx_k_CUDA_ARRAY3D_2DARRAY[] = "CUDA_ARRAY3D_2DARRAY";
static const char __pyx_k_CUDA_ARRAY3D_CUBEMAP[] = "CUDA_ARRAY3D_CUBEMAP";
static const char __pyx_k_CUDA_ARRAY3D_LAYERED[] = "CUDA_ARRAY3D_LAYERED";
static const char __pyx_k_CUDA_ERROR_NOT_FOUND[] = "CUDA_ERROR_NOT_FOUND";
static const char __pyx_k_CUDA_ERROR_NOT_READY[] = "CUDA_ERROR_NOT_READY";
static const char __pyx_k_CUDA_ERROR_NO_DEVICE[] = "CUDA_ERROR_NO_DEVICE";
static const char __pyx_k_CUDA_TEXTURE_DESC_st[] = "CUDA_TEXTURE_DESC_st";
static const char __pyx_k_CUDA_TEXTURE_DESC_v1[] = "CUDA_TEXTURE_DESC_v1";
static const char __pyx_k_CU_CTX_BLOCKING_SYNC[] = "CU_CTX_BLOCKING_SYNC";
static const char __pyx_k_CU_JIT_INPUT_LIBRARY[] = "CU_JIT_INPUT_LIBRARY";
static const char __pyx_k_CU_JIT_MAX_REGISTERS[] = "CU_JIT_MAX_REGISTERS";
static const char __pyx_k_CU_MEMORYTYPE_DEVICE[] = "CU_MEMORYTYPE_DEVICE";
static const char __pyx_k_CU_MEM_ATTACH_GLOBAL[] = "CU_MEM_ATTACH_GLOBAL";
static const char __pyx_k_CU_MEM_ATTACH_SINGLE[] = "CU_MEM_ATTACH_SINGLE";
static const char __pyx_k_CU_OCCUPANCY_DEFAULT[] = "CU_OCCUPANCY_DEFAULT";
static const char __pyx_k_CU_STREAM_PER_THREAD[] = "CU_STREAM_PER_THREAD";
static const char __pyx_k_CU_SYNC_POLICY_YIELD[] = "CU_SYNC_POLICY_YIELD";
static const char __pyx_k_CU_TARGET_COMPUTE_20[] = "CU_TARGET_COMPUTE_20";
static const char __pyx_k_CU_TARGET_COMPUTE_21[] = "CU_TARGET_COMPUTE_21";
static const char __pyx_k_CU_TARGET_COMPUTE_30[] = "CU_TARGET_COMPUTE_30";
static const char __pyx_k_CU_TARGET_COMPUTE_32[] = "CU_TARGET_COMPUTE_32";
static const char __pyx_k_CU_TARGET_COMPUTE_35[] = "CU_TARGET_COMPUTE_35";
static const char __pyx_k_CU_TARGET_COMPUTE_37[] = "CU_TARGET_COMPUTE_37";
static const char __pyx_k_CU_TARGET_COMPUTE_50[] = "CU_TARGET_COMPUTE_50";
static const char __pyx_k_CU_TARGET_COMPUTE_52[] = "CU_TARGET_COMPUTE_52";
static const char __pyx_k_CU_TARGET_COMPUTE_53[] = "CU_TARGET_COMPUTE_53";
static const char __pyx_k_CU_TARGET_COMPUTE_60[] = "CU_TARGET_COMPUTE_60";
static const char __pyx_k_CU_TARGET_COMPUTE_61[] = "CU_TARGET_COMPUTE_61";
static const char __pyx_k_CU_TARGET_COMPUTE_62[] = "CU_TARGET_COMPUTE_62";
static const char __pyx_k_CU_TARGET_COMPUTE_70[] = "CU_TARGET_COMPUTE_70";
static const char __pyx_k_CU_TARGET_COMPUTE_72[] = "CU_TARGET_COMPUTE_72";
static const char __pyx_k_CU_TARGET_COMPUTE_75[] = "CU_TARGET_COMPUTE_75";
static const char __pyx_k_CU_TARGET_COMPUTE_80[] = "CU_TARGET_COMPUTE_80";
static const char __pyx_k_CU_TARGET_COMPUTE_86[] = "CU_TARGET_COMPUTE_86";
static const char __pyx_k_CUaccessPolicyWindow[] = "CUaccessPolicyWindow";
static const char __pyx_k_CUarray_cubemap_face[] = "CUarray_cubemap_face";
static const char __pyx_k_CUevent_record_flags[] = "CUevent_record_flags";
static const char __pyx_k_CUfunction_attribute[] = "CUfunction_attribute";
static const char __pyx_k_CUgraphMem_attribute[] = "CUgraphMem_attribute";
static const char __pyx_k_CUgraphicsResource_2[] = "CUgraphicsResource";
static const char __pyx_k_CUoccupancyB2DSize_2[] = "CUoccupancyB2DSize";
static const char __pyx_k_CUresourceViewFormat[] = "CUresourceViewFormat";
static const char __pyx_k_CUstreamAttrValue_v1[] = "CUstreamAttrValue_v1";
static const char __pyx_k_Event_creation_flags[] = "\n    Event creation flags\n    ";
static const char __pyx_k_Memory_advise_values[] = "\n    Memory advise values\n    ";
static const char __pyx_k_Resource_view_format[] = "\n    Resource view format\n    ";
static const char __pyx_k_accessPolicyWindow_2[] = "accessPolicyWindow";
static const char __pyx_k_cshareableHandle_ptr[] = "cshareableHandle_ptr";
static const char __pyx_k_cuArrayGetDescriptor[] = "cuArrayGetDescriptor";
static const char __pyx_k_cuCtxGetExecAffinity[] = "cuCtxGetExecAffinity";
static const char __pyx_k_cuDeviceGetAttribute[] = "cuDeviceGetAttribute";
static const char __pyx_k_cuDeviceGraphMemTrim[] = "cuDeviceGraphMemTrim";
static const char __pyx_k_cuFuncSetCacheConfig[] = "cuFuncSetCacheConfig";
static const char __pyx_k_cuGraphAddKernelNode[] = "cuGraphAddKernelNode";
static const char __pyx_k_cuGraphAddMemcpyNode[] = "cuGraphAddMemcpyNode";
static const char __pyx_k_cuGraphAddMemsetNode[] = "cuGraphAddMemsetNode";
static const char __pyx_k_cuGraphDebugDotPrint[] = "cuGraphDebugDotPrint";
static const char __pyx_k_cuIpcOpenEventHandle[] = "cuIpcOpenEventHandle";
static const char __pyx_k_cuMemGetAddressRange[] = "cuMemGetAddressRange";
static const char __pyx_k_cuStreamBeginCapture[] = "cuStreamBeginCapture";
static const char __pyx_k_cuStreamGetAttribute[] = "cuStreamGetAttribute";
static const char __pyx_k_cuStreamSetAttribute[] = "cuStreamSetAttribute";
static const char __pyx_k_cuStreamWriteValue32[] = "cuStreamWriteValue32";
static const char __pyx_k_cuStreamWriteValue64[] = "cuStreamWriteValue64";
static const char __pyx_k_cuTexRefSetAddress2D[] = "cuTexRefSetAddress2D";
static const char __pyx_k_gpuDirectRDMACapable[] = "gpuDirectRDMACapable : ";
static const char __pyx_k_maxThreadsPerBlock_2[] = "maxThreadsPerBlock";
static const char __pyx_k_pmaxMipmapLevelClamp[] = "pmaxMipmapLevelClamp";
static const char __pyx_k_pminMipmapLevelClamp[] = "pminMipmapLevelClamp";
static const char __pyx_k_requestedHandleTypes[] = "requestedHandleTypes : ";
static const char __pyx_k_CUDA_ARRAY_DESCRIPTOR[] = "CUDA_ARRAY_DESCRIPTOR";
static const char __pyx_k_CUDA_ERROR_INVALID_PC[] = "CUDA_ERROR_INVALID_PC";
static const char __pyx_k_CUDA_ERROR_MAP_FAILED[] = "CUDA_ERROR_MAP_FAILED";
static const char __pyx_k_CUDA_ERROR_NOT_MAPPED[] = "CUDA_ERROR_NOT_MAPPED";
static const char __pyx_k_CUDA_HOST_NODE_PARAMS[] = "CUDA_HOST_NODE_PARAMS";
static const char __pyx_k_CUDA_LAUNCH_PARAMS_st[] = "CUDA_LAUNCH_PARAMS_st";
static const char __pyx_k_CUDA_LAUNCH_PARAMS_v1[] = "CUDA_LAUNCH_PARAMS_v1";
static const char __pyx_k_CUDA_MEMCPY3D_PEER_st[] = "CUDA_MEMCPY3D_PEER_st";
static const char __pyx_k_CUDA_MEMCPY3D_PEER_v1[] = "CUDA_MEMCPY3D_PEER_v1";
static const char __pyx_k_CUDA_Mem_Attach_Flags[] = "\n    CUDA Mem Attach Flags\n    ";
static const char __pyx_k_CUDA_RESOURCE_DESC_st[] = "CUDA_RESOURCE_DESC_st";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1[] = "CUDA_RESOURCE_DESC_v1";
static const char __pyx_k_CU_EVENT_INTERPROCESS[] = "CU_EVENT_INTERPROCESS";
static const char __pyx_k_CU_EVENT_WAIT_DEFAULT[] = "CU_EVENT_WAIT_DEFAULT";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_MAX[] = "CU_FUNC_ATTRIBUTE_MAX";
static const char __pyx_k_CU_MEMORYTYPE_UNIFIED[] = "CU_MEMORYTYPE_UNIFIED";
static const char __pyx_k_CUdevice_P2PAttribute[] = "CUdevice_P2PAttribute";
static const char __pyx_k_CUdeviceptr_v2_getPtr[] = "CUdeviceptr_v2.getPtr";
static const char __pyx_k_CUexecAffinitySmCount[] = "CUexecAffinitySmCount";
static const char __pyx_k_CUexternalSemaphore_2[] = "CUexternalSemaphore";
static const char __pyx_k_CUgraphDebugDot_flags[] = "CUgraphDebugDot_flags";
static const char __pyx_k_CUkernelNodeAttrValue[] = "CUkernelNodeAttrValue";
static const char __pyx_k_CUmem_range_attribute[] = "CUmem_range_attribute";
static const char __pyx_k_CUstreamCaptureStatus[] = "CUstreamCaptureStatus";
static const char __pyx_k_CUtexObject_v1_getPtr[] = "CUtexObject_v1.getPtr";
static const char __pyx_k_Stream_creation_flags[] = "\n    Stream creation flags\n    ";
static const char __pyx_k_cuCtxEnablePeerAccess[] = "cuCtxEnablePeerAccess";
static const char __pyx_k_cuDeviceCanAccessPeer[] = "cuDeviceCanAccessPeer";
static const char __pyx_k_cuDeviceGetByPCIBusId[] = "cuDeviceGetByPCIBusId";
static const char __pyx_k_cuDeviceGetProperties[] = "cuDeviceGetProperties";
static const char __pyx_k_cuGraphAddMemFreeNode[] = "cuGraphAddMemFreeNode";
static const char __pyx_k_cuMemPoolGetAttribute[] = "cuMemPoolGetAttribute";
static const char __pyx_k_cuMemPoolSetAttribute[] = "cuMemPoolSetAttribute";
static const char __pyx_k_cuModuleLoadFatBinary[] = "cuModuleLoadFatBinary";
static const char __pyx_k_cuPointerGetAttribute[] = "cuPointerGetAttribute";
static const char __pyx_k_cuPointerSetAttribute[] = "cuPointerSetAttribute";
static const char __pyx_k_cuTexRefGetFilterMode[] = "cuTexRefGetFilterMode";
static const char __pyx_k_cuTexRefSetFilterMode[] = "cuTexRefSetFilterMode";
static const char __pyx_k_maxMipmapLevelClamp_2[] = "maxMipmapLevelClamp";
static const char __pyx_k_minMipmapLevelClamp_2[] = "minMipmapLevelClamp";
static const char __pyx_k_totalConstantMemory_2[] = "totalConstantMemory";
static const char __pyx_k_win32HandleMetaData_2[] = "win32HandleMetaData";
static const char __pyx_k_CUDA_ERROR_INVALID_PTX[] = "CUDA_ERROR_INVALID_PTX";
static const char __pyx_k_CU_AD_FORMAT_BC1_UNORM[] = "CU_AD_FORMAT_BC1_UNORM";
static const char __pyx_k_CU_AD_FORMAT_BC2_UNORM[] = "CU_AD_FORMAT_BC2_UNORM";
static const char __pyx_k_CU_AD_FORMAT_BC3_UNORM[] = "CU_AD_FORMAT_BC3_UNORM";
static const char __pyx_k_CU_AD_FORMAT_BC4_SNORM[] = "CU_AD_FORMAT_BC4_SNORM";
static const char __pyx_k_CU_AD_FORMAT_BC4_UNORM[] = "CU_AD_FORMAT_BC4_UNORM";
static const char __pyx_k_CU_AD_FORMAT_BC5_SNORM[] = "CU_AD_FORMAT_BC5_SNORM";
static const char __pyx_k_CU_AD_FORMAT_BC5_UNORM[] = "CU_AD_FORMAT_BC5_UNORM";
static const char __pyx_k_CU_AD_FORMAT_BC6H_SF16[] = "CU_AD_FORMAT_BC6H_SF16";
static const char __pyx_k_CU_AD_FORMAT_BC6H_UF16[] = "CU_AD_FORMAT_BC6H_UF16";
static const char __pyx_k_CU_AD_FORMAT_BC7_UNORM[] = "CU_AD_FORMAT_BC7_UNORM";
static const char __pyx_k_CU_COMPUTEMODE_DEFAULT[] = "CU_COMPUTEMODE_DEFAULT";
static const char __pyx_k_CU_EVENT_BLOCKING_SYNC[] = "CU_EVENT_BLOCKING_SYNC";
static const char __pyx_k_CU_EVENT_WAIT_EXTERNAL[] = "CU_EVENT_WAIT_EXTERNAL";
static const char __pyx_k_CU_JIT_CACHE_OPTION_CA[] = "CU_JIT_CACHE_OPTION_CA";
static const char __pyx_k_CU_JIT_CACHE_OPTION_CG[] = "CU_JIT_CACHE_OPTION_CG";
static const char __pyx_k_CU_JIT_INFO_LOG_BUFFER[] = "CU_JIT_INFO_LOG_BUFFER";
static const char __pyx_k_CU_JIT_INPUT_FATBINARY[] = "CU_JIT_INPUT_FATBINARY";
static const char __pyx_k_CU_JIT_NUM_INPUT_TYPES[] = "CU_JIT_NUM_INPUT_TYPES";
static const char __pyx_k_CU_MEM_HANDLE_TYPE_MAX[] = "CU_MEM_HANDLE_TYPE_MAX";
static const char __pyx_k_CU_RESOURCE_TYPE_ARRAY[] = "CU_RESOURCE_TYPE_ARRAY";
static const char __pyx_k_CU_STREAM_NON_BLOCKING[] = "CU_STREAM_NON_BLOCKING";
static const char __pyx_k_CUexecAffinityParam_st[] = "CUexecAffinityParam_st";
static const char __pyx_k_CUexecAffinityParam_v1[] = "CUexecAffinityParam_v1";
static const char __pyx_k_CUmemAllocationProp_st[] = "CUmemAllocationProp_st";
static const char __pyx_k_CUmemAllocationProp_v1[] = "CUmemAllocationProp_v1";
static const char __pyx_k_CUmemPoolPtrExportData[] = "CUmemPoolPtrExportData";
static const char __pyx_k_CUstreamBatchMemOpType[] = "CUstreamBatchMemOpType";
static const char __pyx_k_CUsurfObject_v1_getPtr[] = "CUsurfObject_v1.getPtr";
static const char __pyx_k_Caching_modes_for_dlcm[] = "\n    Caching modes for dlcm\n    ";
static const char __pyx_k_Context_creation_flags[] = "\n    Context creation flags\n    ";
static const char __pyx_k_Memory_operation_types[] = "\n    Memory operation types\n    ";
static const char __pyx_k_cnvSciSyncAttrList_ptr[] = "cnvSciSyncAttrList_ptr";
static const char __pyx_k_cuArray3DGetDescriptor[] = "cuArray3DGetDescriptor";
static const char __pyx_k_cuCtxDisablePeerAccess[] = "cuCtxDisablePeerAccess";
static const char __pyx_k_cuEventRecordWithFlags[] = "cuEventRecordWithFlags";
static const char __pyx_k_cuGraphAddDependencies[] = "cuGraphAddDependencies";
static const char __pyx_k_cuGraphAddMemAllocNode[] = "cuGraphAddMemAllocNode";
static const char __pyx_k_cuGraphNodeFindInClone[] = "cuGraphNodeFindInClone";
static const char __pyx_k_cuGraphicsMapResources[] = "cuGraphicsMapResources";
static const char __pyx_k_cuImportExternalMemory[] = "cuImportExternalMemory";
static const char __pyx_k_cuMemPoolExportPointer[] = "cuMemPoolExportPointer";
static const char __pyx_k_cuMemPoolImportPointer[] = "cuMemPoolImportPointer";
static const char __pyx_k_cuMemRangeGetAttribute[] = "cuMemRangeGetAttribute";
static const char __pyx_k_cuMipmappedArrayCreate[] = "cuMipmappedArrayCreate";
static const char __pyx_k_cuPointerGetAttributes[] = "cuPointerGetAttributes";
static const char __pyx_k_cuStreamAttachMemAsync[] = "cuStreamAttachMemAsync";
static const char __pyx_k_cuStreamCopyAttributes[] = "cuStreamCopyAttributes";
static const char __pyx_k_cuStreamGetCaptureInfo[] = "cuStreamGetCaptureInfo";
static const char __pyx_k_cuTexRefGetAddressMode[] = "cuTexRefGetAddressMode";
static const char __pyx_k_cuTexRefGetBorderColor[] = "cuTexRefGetBorderColor";
static const char __pyx_k_cuTexRefSetAddressMode[] = "cuTexRefSetAddressMode";
static const char __pyx_k_cuTexRefSetBorderColor[] = "cuTexRefSetBorderColor";
static const char __pyx_k_gpuDirectRDMACapable_2[] = "gpuDirectRDMACapable";
static const char __pyx_k_requestedHandleTypes_2[] = "requestedHandleTypes";
static const char __pyx_k_CUDA_ARRAY3D_DESCRIPTOR[] = "CUDA_ARRAY3D_DESCRIPTOR";
static const char __pyx_k_CUDA_ERROR_STUB_LIBRARY[] = "CUDA_ERROR_STUB_LIBRARY";
static const char __pyx_k_CUDA_ERROR_UNMAP_FAILED[] = "CUDA_ERROR_UNMAP_FAILED";
static const char __pyx_k_CUDA_KERNEL_NODE_PARAMS[] = "CUDA_KERNEL_NODE_PARAMS";
static const char __pyx_k_CUDA_MEMCPY2D_st_getPtr[] = "CUDA_MEMCPY2D_st.getPtr";
static const char __pyx_k_CUDA_MEMCPY3D_st_getPtr[] = "CUDA_MEMCPY3D_st.getPtr";
static const char __pyx_k_CUDA_MEMSET_NODE_PARAMS[] = "CUDA_MEMSET_NODE_PARAMS";
static const char __pyx_k_CUDA_RESOURCE_VIEW_DESC[] = "CUDA_RESOURCE_VIEW_DESC";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX[] = "CU_DEVICE_ATTRIBUTE_MAX";
static const char __pyx_k_CU_EVENT_DISABLE_TIMING[] = "CU_EVENT_DISABLE_TIMING";
static const char __pyx_k_CU_EVENT_RECORD_DEFAULT[] = "CU_EVENT_RECORD_DEFAULT";
static const char __pyx_k_CU_FUNC_CACHE_PREFER_L1[] = "CU_FUNC_CACHE_PREFER_L1";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_HOST[] = "CU_GRAPH_NODE_TYPE_HOST";
static const char __pyx_k_CU_JIT_ERROR_LOG_BUFFER[] = "CU_JIT_ERROR_LOG_BUFFER";
static const char __pyx_k_CU_MEM_HANDLE_TYPE_NONE[] = "CU_MEM_HANDLE_TYPE_NONE";
static const char __pyx_k_CU_RESOURCE_TYPE_LINEAR[] = "CU_RESOURCE_TYPE_LINEAR";
static const char __pyx_k_CU_RES_VIEW_FORMAT_NONE[] = "CU_RES_VIEW_FORMAT_NONE";
static const char __pyx_k_CU_STREAM_WAIT_VALUE_EQ[] = "CU_STREAM_WAIT_VALUE_EQ";
static const char __pyx_k_CU_TRSA_OVERRIDE_FORMAT[] = "CU_TRSA_OVERRIDE_FORMAT";
static const char __pyx_k_CU_TRSF_READ_AS_INTEGER[] = "CU_TRSF_READ_AS_INTEGER";
static const char __pyx_k_CU_TR_ADDRESS_MODE_WRAP[] = "CU_TR_ADDRESS_MODE_WRAP";
static const char __pyx_k_CU_TR_FILTER_MODE_POINT[] = "CU_TR_FILTER_MODE_POINT";
static const char __pyx_k_CUaccessPolicyWindow_st[] = "CUaccessPolicyWindow_st";
static const char __pyx_k_CUaccessPolicyWindow_v1[] = "CUaccessPolicyWindow_v1";
static const char __pyx_k_CUarray___reduce_cython[] = "CUarray.__reduce_cython__";
static const char __pyx_k_CUevent___reduce_cython[] = "CUevent.__reduce_cython__";
static const char __pyx_k_CUexternalMemory_getPtr[] = "CUexternalMemory.getPtr";
static const char __pyx_k_CUgraphExecUpdateResult[] = "CUgraphExecUpdateResult";
static const char __pyx_k_CUgraph___reduce_cython[] = "CUgraph.__reduce_cython__";
static const char __pyx_k_CUgraphicsRegisterFlags[] = "CUgraphicsRegisterFlags";
static const char __pyx_k_CUmemAllocationCompType[] = "CUmemAllocationCompType";
static const char __pyx_k_CUmemLocation_st_getPtr[] = "CUmemLocation_st.getPtr";
static const char __pyx_k_CUmipmappedArray_getPtr[] = "CUmipmappedArray.getPtr";
static const char __pyx_k_CUstreamAttrValue_union[] = "CUstreamAttrValue_union";
static const char __pyx_k_CUstreamCallback_getPtr[] = "CUstreamCallback.getPtr";
static const char __pyx_k_CUstreamWaitValue_flags[] = "CUstreamWaitValue_flags";
static const char __pyx_k_CUsynchronizationPolicy[] = "CUsynchronizationPolicy";
static const char __pyx_k_cuCtxGetSharedMemConfig[] = "cuCtxGetSharedMemConfig";
static const char __pyx_k_cuCtxSetSharedMemConfig[] = "cuCtxSetSharedMemConfig";
static const char __pyx_k_cuDestroyExternalMemory[] = "cuDestroyExternalMemory";
static const char __pyx_k_cuDeviceGetP2PAttribute[] = "cuDeviceGetP2PAttribute";
static const char __pyx_k_cuDevicePrimaryCtxReset[] = "cuDevicePrimaryCtxReset";
static const char __pyx_k_cuGraphAddEventWaitNode[] = "cuGraphAddEventWaitNode";
static const char __pyx_k_cuGraphRetainUserObject[] = "cuGraphRetainUserObject";
static const char __pyx_k_cuMemAllocFromPoolAsync[] = "cuMemAllocFromPoolAsync";
static const char __pyx_k_cuMemRangeGetAttributes[] = "cuMemRangeGetAttributes";
static const char __pyx_k_cuMipmappedArrayDestroy[] = "cuMipmappedArrayDestroy";
static const char __pyx_k_win32SecurityAttributes[] = "win32SecurityAttributes : ";
static const char __pyx_k_CUDA_ARRAY_DESCRIPTOR_st[] = "CUDA_ARRAY_DESCRIPTOR_st";
static const char __pyx_k_CUDA_ARRAY_DESCRIPTOR_v2[] = "CUDA_ARRAY_DESCRIPTOR_v2";
static const char __pyx_k_CUDA_ERROR_DEINITIALIZED[] = "CUDA_ERROR_DEINITIALIZED";
static const char __pyx_k_CUDA_ERROR_ILLEGAL_STATE[] = "CUDA_ERROR_ILLEGAL_STATE";
static const char __pyx_k_CUDA_ERROR_INVALID_IMAGE[] = "CUDA_ERROR_INVALID_IMAGE";
static const char __pyx_k_CUDA_ERROR_INVALID_VALUE[] = "CUDA_ERROR_INVALID_VALUE";
static const char __pyx_k_CUDA_ERROR_LAUNCH_FAILED[] = "CUDA_ERROR_LAUNCH_FAILED";
static const char __pyx_k_CUDA_ERROR_NOT_PERMITTED[] = "CUDA_ERROR_NOT_PERMITTED";
static const char __pyx_k_CUDA_ERROR_NOT_SUPPORTED[] = "CUDA_ERROR_NOT_SUPPORTED";
static const char __pyx_k_CUDA_ERROR_OUT_OF_MEMORY[] = "CUDA_ERROR_OUT_OF_MEMORY";
static const char __pyx_k_CUDA_HOST_NODE_PARAMS_st[] = "CUDA_HOST_NODE_PARAMS_st";
static const char __pyx_k_CUDA_HOST_NODE_PARAMS_v1[] = "CUDA_HOST_NODE_PARAMS_v1";
static const char __pyx_k_CUDA_NVSCISYNC_ATTR_WAIT[] = "CUDA_NVSCISYNC_ATTR_WAIT";
static const char __pyx_k_CU_AD_FORMAT_SIGNED_INT8[] = "CU_AD_FORMAT_SIGNED_INT8";
static const char __pyx_k_CU_EVENT_RECORD_EXTERNAL[] = "CU_EVENT_RECORD_EXTERNAL";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_EMPTY[] = "CU_GRAPH_NODE_TYPE_EMPTY";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_GRAPH[] = "CU_GRAPH_NODE_TYPE_GRAPH";
static const char __pyx_k_CU_JIT_CACHE_OPTION_NONE[] = "CU_JIT_CACHE_OPTION_NONE";
static const char __pyx_k_CU_JIT_FALLBACK_STRATEGY[] = "CU_JIT_FALLBACK_STRATEGY";
static const char __pyx_k_CU_JIT_THREADS_PER_BLOCK[] = "CU_JIT_THREADS_PER_BLOCK";
static const char __pyx_k_CU_MEMHOSTALLOC_PORTABLE[] = "CU_MEMHOSTALLOC_PORTABLE";
static const char __pyx_k_CU_MEM_HANDLE_TYPE_WIN32[] = "CU_MEM_HANDLE_TYPE_WIN32";
static const char __pyx_k_CU_MEM_LOCATION_TYPE_MAX[] = "CU_MEM_LOCATION_TYPE_MAX";
static const char __pyx_k_CU_RESOURCE_TYPE_PITCH2D[] = "CU_RESOURCE_TYPE_PITCH2D";
static const char __pyx_k_CU_STREAM_WAIT_VALUE_AND[] = "CU_STREAM_WAIT_VALUE_AND";
static const char __pyx_k_CU_STREAM_WAIT_VALUE_GEQ[] = "CU_STREAM_WAIT_VALUE_GEQ";
static const char __pyx_k_CU_STREAM_WAIT_VALUE_NOR[] = "CU_STREAM_WAIT_VALUE_NOR";
static const char __pyx_k_CU_TR_ADDRESS_MODE_CLAMP[] = "CU_TR_ADDRESS_MODE_CLAMP";
static const char __pyx_k_CU_TR_FILTER_MODE_LINEAR[] = "CU_TR_FILTER_MODE_LINEAR";
static const char __pyx_k_CUarrayMapInfo_st_getPtr[] = "CUarrayMapInfo_st.getPtr";
static const char __pyx_k_CUdevice___reduce_cython[] = "CUdevice.__reduce_cython__";
static const char __pyx_k_CUexecAffinitySmCount_st[] = "CUexecAffinitySmCount_st";
static const char __pyx_k_CUexecAffinitySmCount_v1[] = "CUexecAffinitySmCount_v1";
static const char __pyx_k_CUgraphInstantiate_flags[] = "CUgraphInstantiate_flags";
static const char __pyx_k_CUhostFn___reduce_cython[] = "CUhostFn.__reduce_cython__";
static const char __pyx_k_CUipcMemHandle_st_getPtr[] = "CUipcMemHandle_st.getPtr";
static const char __pyx_k_CUkernelNodeAttrValue_v1[] = "CUkernelNodeAttrValue_v1";
static const char __pyx_k_CUmemPoolProps_st_getPtr[] = "CUmemPoolProps_st.getPtr";
static const char __pyx_k_CUmodule___reduce_cython[] = "CUmodule.__reduce_cython__";
static const char __pyx_k_CUstreamBatchMemOpParams[] = "CUstreamBatchMemOpParams";
static const char __pyx_k_CUstreamWriteValue_flags[] = "CUstreamWriteValue_flags";
static const char __pyx_k_CUstream___reduce_cython[] = "CUstream.__reduce_cython__";
static const char __pyx_k_CUtexref___reduce_cython[] = "CUtexref.__reduce_cython__";
static const char __pyx_k_CUuserObjectRetain_flags[] = "CUuserObjectRetain_flags";
static const char __pyx_k_Execution_Affinity_Types[] = "\n    Execution Affinity Types\n    ";
static const char __pyx_k_Sparse_subresource_types[] = "\n    Sparse subresource types\n    ";
static const char __pyx_k_cpMipmappedArrayDesc_ptr[] = "cpMipmappedArrayDesc_ptr";
static const char __pyx_k_cuDevicePrimaryCtxRetain[] = "cuDevicePrimaryCtxRetain";
static const char __pyx_k_cuFuncSetSharedMemConfig[] = "cuFuncSetSharedMemConfig";
static const char __pyx_k_cuGraphAddChildGraphNode[] = "cuGraphAddChildGraphNode";
static const char __pyx_k_cuGraphHostNodeGetParams[] = "cuGraphHostNodeGetParams";
static const char __pyx_k_cuGraphHostNodeSetParams[] = "cuGraphHostNodeSetParams";
static const char __pyx_k_cuGraphReleaseUserObject[] = "cuGraphReleaseUserObject";
static const char __pyx_k_cuGraphicsUnmapResources[] = "cuGraphicsUnmapResources";
static const char __pyx_k_cuMipmappedArrayGetLevel[] = "cuMipmappedArrayGetLevel";
static const char __pyx_k_cuTexRefGetMaxAnisotropy[] = "cuTexRefGetMaxAnisotropy";
static const char __pyx_k_cuTexRefSetMaxAnisotropy[] = "cuTexRefSetMaxAnisotropy";
static const char __pyx_k_CUDA_ARRAY3D_SURFACE_LDST[] = "CUDA_ARRAY3D_SURFACE_LDST";
static const char __pyx_k_CUDA_ERROR_ALREADY_MAPPED[] = "CUDA_ERROR_ALREADY_MAPPED";
static const char __pyx_k_CUDA_ERROR_CAPTURED_EVENT[] = "CUDA_ERROR_CAPTURED_EVENT";
static const char __pyx_k_CUDA_ERROR_FILE_NOT_FOUND[] = "CUDA_ERROR_FILE_NOT_FOUND";
static const char __pyx_k_CUDA_ERROR_INVALID_DEVICE[] = "CUDA_ERROR_INVALID_DEVICE";
static const char __pyx_k_CUDA_ERROR_INVALID_HANDLE[] = "CUDA_ERROR_INVALID_HANDLE";
static const char __pyx_k_CUDA_ERROR_INVALID_SOURCE[] = "CUDA_ERROR_INVALID_SOURCE";
static const char __pyx_k_CUDA_ERROR_LAUNCH_TIMEOUT[] = "CUDA_ERROR_LAUNCH_TIMEOUT";
static const char __pyx_k_CUDA_ERROR_TOO_MANY_PEERS[] = "CUDA_ERROR_TOO_MANY_PEERS";
static const char __pyx_k_CU_ACCESS_PROPERTY_NORMAL[] = "CU_ACCESS_PROPERTY_NORMAL";
static const char __pyx_k_CU_AD_FORMAT_SIGNED_INT16[] = "CU_AD_FORMAT_SIGNED_INT16";
static const char __pyx_k_CU_AD_FORMAT_SIGNED_INT32[] = "CU_AD_FORMAT_SIGNED_INT32";
static const char __pyx_k_CU_AD_FORMAT_SNORM_INT8X1[] = "CU_AD_FORMAT_SNORM_INT8X1";
static const char __pyx_k_CU_AD_FORMAT_SNORM_INT8X2[] = "CU_AD_FORMAT_SNORM_INT8X2";
static const char __pyx_k_CU_AD_FORMAT_SNORM_INT8X4[] = "CU_AD_FORMAT_SNORM_INT8X4";
static const char __pyx_k_CU_AD_FORMAT_UNORM_INT8X1[] = "CU_AD_FORMAT_UNORM_INT8X1";
static const char __pyx_k_CU_AD_FORMAT_UNORM_INT8X2[] = "CU_AD_FORMAT_UNORM_INT8X2";
static const char __pyx_k_CU_AD_FORMAT_UNORM_INT8X4[] = "CU_AD_FORMAT_UNORM_INT8X4";
static const char __pyx_k_CU_COMPUTEMODE_PROHIBITED[] = "CU_COMPUTEMODE_PROHIBITED";
static const char __pyx_k_CU_CTX_LMEM_RESIZE_TO_MAX[] = "CU_CTX_LMEM_RESIZE_TO_MAX";
static const char __pyx_k_CU_EXEC_AFFINITY_TYPE_MAX[] = "CU_EXEC_AFFINITY_TYPE_MAX";
static const char __pyx_k_CU_FUNC_CACHE_PREFER_NONE[] = "CU_FUNC_CACHE_PREFER_NONE";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_KERNEL[] = "CU_GRAPH_NODE_TYPE_KERNEL";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_MEMCPY[] = "CU_GRAPH_NODE_TYPE_MEMCPY";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_MEMSET[] = "CU_GRAPH_NODE_TYPE_MEMSET";
static const char __pyx_k_CU_GRAPH_USER_OBJECT_MOVE[] = "CU_GRAPH_USER_OBJECT_MOVE";
static const char __pyx_k_CU_JIT_GENERATE_LINE_INFO[] = "CU_JIT_GENERATE_LINE_INFO";
static const char __pyx_k_CU_JIT_OPTIMIZATION_LEVEL[] = "CU_JIT_OPTIMIZATION_LEVEL";
static const char __pyx_k_CU_LIMIT_MALLOC_HEAP_SIZE[] = "CU_LIMIT_MALLOC_HEAP_SIZE";
static const char __pyx_k_CU_LIMIT_PRINTF_FIFO_SIZE[] = "CU_LIMIT_PRINTF_FIFO_SIZE";
static const char __pyx_k_CU_MEMHOSTALLOC_DEVICEMAP[] = "CU_MEMHOSTALLOC_DEVICEMAP";
static const char __pyx_k_CU_MEM_OPERATION_TYPE_MAP[] = "CU_MEM_OPERATION_TYPE_MAP";
static const char __pyx_k_CU_TR_ADDRESS_MODE_BORDER[] = "CU_TR_ADDRESS_MODE_BORDER";
static const char __pyx_k_CU_TR_ADDRESS_MODE_MIRROR[] = "CU_TR_ADDRESS_MODE_MIRROR";
static const char __pyx_k_CUarray___setstate_cython[] = "CUarray.__setstate_cython__";
static const char __pyx_k_CUcontext___reduce_cython[] = "CUcontext.__reduce_cython__";
static const char __pyx_k_CUdriverProcAddress_flags[] = "CUdriverProcAddress_flags";
static const char __pyx_k_CUevent___setstate_cython[] = "CUevent.__setstate_cython__";
static const char __pyx_k_CUgraph___setstate_cython[] = "CUgraph.__setstate_cython__";
static const char __pyx_k_CUgraphicsResource_getPtr[] = "CUgraphicsResource.getPtr";
static const char __pyx_k_CUmemAccessDesc_st_getPtr[] = "CUmemAccessDesc_st.getPtr";
static const char __pyx_k_CUmemAllocationHandleType[] = "CUmemAllocationHandleType";
static const char __pyx_k_CUmemPoolPtrExportData_st[] = "CUmemPoolPtrExportData_st";
static const char __pyx_k_CUmemPoolPtrExportData_v1[] = "CUmemPoolPtrExportData_v1";
static const char __pyx_k_CUoccupancyB2DSize_getPtr[] = "CUoccupancyB2DSize.getPtr";
static const char __pyx_k_CUsurfref___reduce_cython[] = "CUsurfref.__reduce_cython__";
static const char __pyx_k_CUuuid_st___reduce_cython[] = "CUuuid_st.__reduce_cython__";
static const char __pyx_k_Occupancy_calculator_flag[] = "\n    Occupancy calculator flag\n    ";
static const char __pyx_k_cuDeviceComputeCapability[] = "cuDeviceComputeCapability";
static const char __pyx_k_cuDeviceGetDefaultMemPool[] = "cuDeviceGetDefaultMemPool";
static const char __pyx_k_cuDevicePrimaryCtxRelease[] = "cuDevicePrimaryCtxRelease";
static const char __pyx_k_cuGraphAddEventRecordNode[] = "cuGraphAddEventRecordNode";
static const char __pyx_k_cuGraphRemoveDependencies[] = "cuGraphRemoveDependencies";
static const char __pyx_k_cuImportExternalSemaphore[] = "cuImportExternalSemaphore";
static const char __pyx_k_cuLaunchCooperativeKernel[] = "cuLaunchCooperativeKernel";
static const char __pyx_k_cuMemHostGetDevicePointer[] = "cuMemHostGetDevicePointer";
static const char __pyx_k_cuStreamGetCaptureInfo_v2[] = "cuStreamGetCaptureInfo_v2";
static const char __pyx_k_cuTexObjectGetTextureDesc[] = "cuTexObjectGetTextureDesc";
static const char __pyx_k_cuTexRefGetMipmappedArray[] = "cuTexRefGetMipmappedArray";
static const char __pyx_k_cuTexRefSetMipmappedArray[] = "cuTexRefSetMipmappedArray";
static const char __pyx_k_win32SecurityAttributes_2[] = "win32SecurityAttributes";
static const char __pyx_k_CUDA_ARRAY3D_DEPTH_TEXTURE[] = "CUDA_ARRAY3D_DEPTH_TEXTURE";
static const char __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st[] = "CUDA_ARRAY3D_DESCRIPTOR_st";
static const char __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_v2[] = "CUDA_ARRAY3D_DESCRIPTOR_v2";
static const char __pyx_k_CUDA_ERROR_ARRAY_IS_MAPPED[] = "CUDA_ERROR_ARRAY_IS_MAPPED";
static const char __pyx_k_CUDA_ERROR_EXTERNAL_DEVICE[] = "CUDA_ERROR_EXTERNAL_DEVICE";
static const char __pyx_k_CUDA_ERROR_ILLEGAL_ADDRESS[] = "CUDA_ERROR_ILLEGAL_ADDRESS";
static const char __pyx_k_CUDA_ERROR_INVALID_CONTEXT[] = "CUDA_ERROR_INVALID_CONTEXT";
static const char __pyx_k_CUDA_ERROR_MPS_RPC_FAILURE[] = "CUDA_ERROR_MPS_RPC_FAILURE";
static const char __pyx_k_CUDA_ERROR_NOT_INITIALIZED[] = "CUDA_ERROR_NOT_INITIALIZED";
static const char __pyx_k_CUDA_KERNEL_NODE_PARAMS_st[] = "CUDA_KERNEL_NODE_PARAMS_st";
static const char __pyx_k_CUDA_KERNEL_NODE_PARAMS_v1[] = "CUDA_KERNEL_NODE_PARAMS_v1";
static const char __pyx_k_CUDA_MEMSET_NODE_PARAMS_st[] = "CUDA_MEMSET_NODE_PARAMS_st";
static const char __pyx_k_CUDA_MEMSET_NODE_PARAMS_v1[] = "CUDA_MEMSET_NODE_PARAMS_v1";
static const char __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS[] = "CUDA_MEM_ALLOC_NODE_PARAMS";
static const char __pyx_k_CUDA_NVSCISYNC_ATTR_SIGNAL[] = "CUDA_NVSCISYNC_ATTR_SIGNAL";
static const char __pyx_k_CUDA_RESOURCE_VIEW_DESC_st[] = "CUDA_RESOURCE_VIEW_DESC_st";
static const char __pyx_k_CUDA_RESOURCE_VIEW_DESC_v1[] = "CUDA_RESOURCE_VIEW_DESC_v1";
static const char __pyx_k_CU_AD_FORMAT_SNORM_INT16X1[] = "CU_AD_FORMAT_SNORM_INT16X1";
static const char __pyx_k_CU_AD_FORMAT_SNORM_INT16X2[] = "CU_AD_FORMAT_SNORM_INT16X2";
static const char __pyx_k_CU_AD_FORMAT_SNORM_INT16X4[] = "CU_AD_FORMAT_SNORM_INT16X4";
static const char __pyx_k_CU_AD_FORMAT_UNORM_INT16X1[] = "CU_AD_FORMAT_UNORM_INT16X1";
static const char __pyx_k_CU_AD_FORMAT_UNORM_INT16X2[] = "CU_AD_FORMAT_UNORM_INT16X2";
static const char __pyx_k_CU_AD_FORMAT_UNORM_INT16X4[] = "CU_AD_FORMAT_UNORM_INT16X4";
static const char __pyx_k_CU_AD_FORMAT_UNSIGNED_INT8[] = "CU_AD_FORMAT_UNSIGNED_INT8";
static const char __pyx_k_CU_CTX_SCHED_BLOCKING_SYNC[] = "CU_CTX_SCHED_BLOCKING_SYNC";
static const char __pyx_k_CU_CUBEMAP_FACE_NEGATIVE_X[] = "CU_CUBEMAP_FACE_NEGATIVE_X";
static const char __pyx_k_CU_CUBEMAP_FACE_NEGATIVE_Y[] = "CU_CUBEMAP_FACE_NEGATIVE_Y";
static const char __pyx_k_CU_CUBEMAP_FACE_NEGATIVE_Z[] = "CU_CUBEMAP_FACE_NEGATIVE_Z";
static const char __pyx_k_CU_CUBEMAP_FACE_POSITIVE_X[] = "CU_CUBEMAP_FACE_POSITIVE_X";
static const char __pyx_k_CU_CUBEMAP_FACE_POSITIVE_Y[] = "CU_CUBEMAP_FACE_POSITIVE_Y";
static const char __pyx_k_CU_CUBEMAP_FACE_POSITIVE_Z[] = "CU_CUBEMAP_FACE_POSITIVE_Z";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_NUM_REGS[] = "CU_FUNC_ATTRIBUTE_NUM_REGS";
static const char __pyx_k_CU_FUNC_CACHE_PREFER_EQUAL[] = "CU_FUNC_CACHE_PREFER_EQUAL";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR[] = "CU_GRAPH_EXEC_UPDATE_ERROR";
static const char __pyx_k_CU_JIT_GENERATE_DEBUG_INFO[] = "CU_JIT_GENERATE_DEBUG_INFO";
static const char __pyx_k_CU_JIT_GLOBAL_SYMBOL_COUNT[] = "CU_JIT_GLOBAL_SYMBOL_COUNT";
static const char __pyx_k_CU_JIT_GLOBAL_SYMBOL_NAMES[] = "CU_JIT_GLOBAL_SYMBOL_NAMES";
static const char __pyx_k_CU_MEM_ALLOCATION_TYPE_MAX[] = "CU_MEM_ALLOCATION_TYPE_MAX";
static const char __pyx_k_CU_MEM_HANDLE_TYPE_GENERIC[] = "CU_MEM_HANDLE_TYPE_GENERIC";
static const char __pyx_k_CU_STREAM_WAIT_VALUE_FLUSH[] = "CU_STREAM_WAIT_VALUE_FLUSH";
static const char __pyx_k_CUdevice___setstate_cython[] = "CUdevice.__setstate_cython__";
static const char __pyx_k_CUexternalMemoryHandleType[] = "CUexternalMemoryHandleType";
static const char __pyx_k_CUexternalSemaphore_getPtr[] = "CUexternalSemaphore.getPtr";
static const char __pyx_k_CUfunction___reduce_cython[] = "CUfunction.__reduce_cython__";
static const char __pyx_k_CUgraphicsMapResourceFlags[] = "CUgraphicsMapResourceFlags";
static const char __pyx_k_CUhostFn___setstate_cython[] = "CUhostFn.__setstate_cython__";
static const char __pyx_k_CUipcEventHandle_st_getPtr[] = "CUipcEventHandle_st.getPtr";
static const char __pyx_k_CUmodule___setstate_cython[] = "CUmodule.__setstate_cython__";
static const char __pyx_k_CUstream___setstate_cython[] = "CUstream.__setstate_cython__";
static const char __pyx_k_CUtexref___setstate_cython[] = "CUtexref.__setstate_cython__";
static const char __pyx_k_Online_compilation_targets[] = "\n    Online compilation targets\n    ";
static const char __pyx_k_blockSizeToDynamicSMemSize[] = "blockSizeToDynamicSMemSize";
static const char __pyx_k_cuArrayGetSparseProperties[] = "cuArrayGetSparseProperties";
static const char __pyx_k_cuDestroyExternalSemaphore[] = "cuDestroyExternalSemaphore";
static const char __pyx_k_cuDevicePrimaryCtxGetState[] = "cuDevicePrimaryCtxGetState";
static const char __pyx_k_cuDevicePrimaryCtxSetFlags[] = "cuDevicePrimaryCtxSetFlags";
static const char __pyx_k_cuFlushGPUDirectRDMAWrites[] = "cuFlushGPUDirectRDMAWrites";
static const char __pyx_k_cuGraphKernelNodeGetParams[] = "cuGraphKernelNodeGetParams";
static const char __pyx_k_cuGraphKernelNodeSetParams[] = "cuGraphKernelNodeSetParams";
static const char __pyx_k_cuGraphMemcpyNodeGetParams[] = "cuGraphMemcpyNodeGetParams";
static const char __pyx_k_cuGraphMemcpyNodeSetParams[] = "cuGraphMemcpyNodeSetParams";
static const char __pyx_k_cuGraphMemsetNodeGetParams[] = "cuGraphMemsetNodeGetParams";
static const char __pyx_k_cuGraphMemsetNodeSetParams[] = "cuGraphMemsetNodeSetParams";
static const char __pyx_k_cuGraphNodeGetDependencies[] = "cuGraphNodeGetDependencies";
static const char __pyx_k_cuStreamCreateWithPriority[] = "cuStreamCreateWithPriority";
static const char __pyx_k_cuTexObjectGetResourceDesc[] = "cuTexObjectGetResourceDesc";
static const char __pyx_k_cuTexRefGetMipmapLevelBias[] = "cuTexRefGetMipmapLevelBias";
static const char __pyx_k_cuTexRefSetMipmapLevelBias[] = "cuTexRefSetMipmapLevelBias";
static const char __pyx_k_cuuint32_t___reduce_cython[] = "cuuint32_t.__reduce_cython__";
static const char __pyx_k_cuuint64_t___reduce_cython[] = "cuuint64_t.__reduce_cython__";
static const char __pyx_k_CUDA_ARRAY3D_TEXTURE_GATHER[] = "CUDA_ARRAY3D_TEXTURE_GATHER";
static const char __pyx_k_CUDA_ERROR_ALREADY_ACQUIRED[] = "CUDA_ERROR_ALREADY_ACQUIRED";
static const char __pyx_k_CUDA_ERROR_OPERATING_SYSTEM[] = "CUDA_ERROR_OPERATING_SYSTEM";
static const char __pyx_k_CUDA_ERROR_SYSTEM_NOT_READY[] = "CUDA_ERROR_SYSTEM_NOT_READY";
static const char __pyx_k_CUDA_TEXTURE_DESC_st_getPtr[] = "CUDA_TEXTURE_DESC_st.getPtr";
static const char __pyx_k_CUDA_memory_pool_attributes[] = "\n    CUDA memory pool attributes\n    ";
static const char __pyx_k_CU_AD_FORMAT_BC1_UNORM_SRGB[] = "CU_AD_FORMAT_BC1_UNORM_SRGB";
static const char __pyx_k_CU_AD_FORMAT_BC2_UNORM_SRGB[] = "CU_AD_FORMAT_BC2_UNORM_SRGB";
static const char __pyx_k_CU_AD_FORMAT_BC3_UNORM_SRGB[] = "CU_AD_FORMAT_BC3_UNORM_SRGB";
static const char __pyx_k_CU_AD_FORMAT_BC7_UNORM_SRGB[] = "CU_AD_FORMAT_BC7_UNORM_SRGB";
static const char __pyx_k_CU_AD_FORMAT_UNSIGNED_INT16[] = "CU_AD_FORMAT_UNSIGNED_INT16";
static const char __pyx_k_CU_AD_FORMAT_UNSIGNED_INT32[] = "CU_AD_FORMAT_UNSIGNED_INT32";
static const char __pyx_k_CU_FUNC_CACHE_PREFER_SHARED[] = "CU_FUNC_CACHE_PREFER_SHARED";
static const char __pyx_k_CU_GET_PROC_ADDRESS_DEFAULT[] = "CU_GET_PROC_ADDRESS_DEFAULT";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_MEM_FREE[] = "CU_GRAPH_NODE_TYPE_MEM_FREE";
static const char __pyx_k_CU_LAUNCH_PARAM_BUFFER_SIZE[] = "CU_LAUNCH_PARAM_BUFFER_SIZE";
static const char __pyx_k_CU_MEMHOSTREGISTER_IOMEMORY[] = "CU_MEMHOSTREGISTER_IOMEMORY";
static const char __pyx_k_CU_MEMHOSTREGISTER_PORTABLE[] = "CU_MEMHOSTREGISTER_PORTABLE";
static const char __pyx_k_CU_MEM_ALLOCATION_COMP_NONE[] = "CU_MEM_ALLOCATION_COMP_NONE";
static const char __pyx_k_CU_MEM_LOCATION_TYPE_DEVICE[] = "CU_MEM_LOCATION_TYPE_DEVICE";
static const char __pyx_k_CU_MEM_OPERATION_TYPE_UNMAP[] = "CU_MEM_OPERATION_TYPE_UNMAP";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_MAPPED[] = "CU_POINTER_ATTRIBUTE_MAPPED";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_1X8[] = "CU_RES_VIEW_FORMAT_SINT_1X8";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_2X8[] = "CU_RES_VIEW_FORMAT_SINT_2X8";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_4X8[] = "CU_RES_VIEW_FORMAT_SINT_4X8";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_1X8[] = "CU_RES_VIEW_FORMAT_UINT_1X8";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_2X8[] = "CU_RES_VIEW_FORMAT_UINT_2X8";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_4X8[] = "CU_RES_VIEW_FORMAT_UINT_4X8";
static const char __pyx_k_CUcontext___setstate_cython[] = "CUcontext.__setstate_cython__";
static const char __pyx_k_CUdevice_v1___reduce_cython[] = "CUdevice_v1.__reduce_cython__";
static const char __pyx_k_CUdeviceptr___reduce_cython[] = "CUdeviceptr.__reduce_cython__";
static const char __pyx_k_CUgraphExec___reduce_cython[] = "CUgraphExec.__reduce_cython__";
static const char __pyx_k_CUgraphNode___reduce_cython[] = "CUgraphNode.__reduce_cython__";
static const char __pyx_k_CUkernelNodeAttrValue_union[] = "CUkernelNodeAttrValue_union";
static const char __pyx_k_CUlinkState___reduce_cython[] = "CUlinkState.__reduce_cython__";
static const char __pyx_k_CUstreamBatchMemOpParams_v1[] = "CUstreamBatchMemOpParams_v1";
static const char __pyx_k_CUsurfref___setstate_cython[] = "CUsurfref.__setstate_cython__";
static const char __pyx_k_CUtexObject___reduce_cython[] = "CUtexObject.__reduce_cython__";
static const char __pyx_k_CUuuid_st___setstate_cython[] = "CUuuid_st.__setstate_cython__";
static const char __pyx_k_cuCtxGetStreamPriorityRange[] = "cuCtxGetStreamPriorityRange";
static const char __pyx_k_cuCtxResetPersistingL2Cache[] = "cuCtxResetPersistingL2Cache";
static const char __pyx_k_cuGraphInstantiateWithFlags[] = "cuGraphInstantiateWithFlags";
static const char __pyx_k_cuGraphMemFreeNodeGetParams[] = "cuGraphMemFreeNodeGetParams";
static const char __pyx_k_cuLinkCreate_locals_genexpr[] = "cuLinkCreate.<locals>.genexpr";
static const char __pyx_k_cuMemRetainAllocationHandle[] = "cuMemRetainAllocationHandle";
static const char __pyx_k_cuSurfObjectGetResourceDesc[] = "cuSurfObjectGetResourceDesc";
static const char __pyx_k_cuTexRefGetMipmapFilterMode[] = "cuTexRefGetMipmapFilterMode";
static const char __pyx_k_cuTexRefGetMipmapLevelClamp[] = "cuTexRefGetMipmapLevelClamp";
static const char __pyx_k_cuTexRefSetMipmapFilterMode[] = "cuTexRefSetMipmapFilterMode";
static const char __pyx_k_cuTexRefSetMipmapLevelClamp[] = "cuTexRefSetMipmapLevelClamp";
static const char __pyx_k_Array_indices_for_cube_faces[] = "\n    Array indices for cube faces\n    ";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES[] = "CUDA_ARRAY_SPARSE_PROPERTIES";
static const char __pyx_k_CUDA_ERROR_ECC_UNCORRECTABLE[] = "CUDA_ERROR_ECC_UNCORRECTABLE";
static const char __pyx_k_CUDA_ERROR_NO_BINARY_FOR_GPU[] = "CUDA_ERROR_NO_BINARY_FOR_GPU";
static const char __pyx_k_CUDA_ERROR_PROFILER_DISABLED[] = "CUDA_ERROR_PROFILER_DISABLED";
static const char __pyx_k_CUDA_ERROR_UNSUPPORTED_LIMIT[] = "CUDA_ERROR_UNSUPPORTED_LIMIT";
static const char __pyx_k_CUDA_LAUNCH_PARAMS_st_getPtr[] = "CUDA_LAUNCH_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_MEMCPY3D_PEER_st_getPtr[] = "CUDA_MEMCPY3D_PEER_st.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_st_getPtr[] = "CUDA_RESOURCE_DESC_st.getPtr";
static const char __pyx_k_CU_ACCESS_PROPERTY_STREAMING[] = "CU_ACCESS_PROPERTY_STREAMING";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_SUCCESS[] = "CU_GRAPH_EXEC_UPDATE_SUCCESS";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_MEM_ALLOC[] = "CU_GRAPH_NODE_TYPE_MEM_ALLOC";
static const char __pyx_k_CU_JIT_TARGET_FROM_CUCONTEXT[] = "CU_JIT_TARGET_FROM_CUCONTEXT";
static const char __pyx_k_CU_MEMHOSTREGISTER_DEVICEMAP[] = "CU_MEMHOSTREGISTER_DEVICEMAP";
static const char __pyx_k_CU_MEMHOSTREGISTER_READ_ONLY[] = "CU_MEMHOSTREGISTER_READ_ONLY";
static const char __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_MAX[] = "CU_MEM_ACCESS_FLAGS_PROT_MAX";
static const char __pyx_k_CU_MEM_HANDLE_TYPE_WIN32_KMT[] = "CU_MEM_HANDLE_TYPE_WIN32_KMT";
static const char __pyx_k_CU_MEM_LOCATION_TYPE_INVALID[] = "CU_MEM_LOCATION_TYPE_INVALID";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_CONTEXT[] = "CU_POINTER_ATTRIBUTE_CONTEXT";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_1X16[] = "CU_RES_VIEW_FORMAT_SINT_1X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_1X32[] = "CU_RES_VIEW_FORMAT_SINT_1X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_2X16[] = "CU_RES_VIEW_FORMAT_SINT_2X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_2X32[] = "CU_RES_VIEW_FORMAT_SINT_2X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_4X16[] = "CU_RES_VIEW_FORMAT_SINT_4X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SINT_4X32[] = "CU_RES_VIEW_FORMAT_SINT_4X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_1X16[] = "CU_RES_VIEW_FORMAT_UINT_1X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_1X32[] = "CU_RES_VIEW_FORMAT_UINT_1X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_2X16[] = "CU_RES_VIEW_FORMAT_UINT_2X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_2X32[] = "CU_RES_VIEW_FORMAT_UINT_2X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_4X16[] = "CU_RES_VIEW_FORMAT_UINT_4X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UINT_4X32[] = "CU_RES_VIEW_FORMAT_UINT_4X32";
static const char __pyx_k_CU_SHAREDMEM_CARVEOUT_MAX_L1[] = "CU_SHAREDMEM_CARVEOUT_MAX_L1";
static const char __pyx_k_CU_SYNC_POLICY_BLOCKING_SYNC[] = "CU_SYNC_POLICY_BLOCKING_SYNC";
static const char __pyx_k_CUarraySparseSubresourceType[] = "CUarraySparseSubresourceType";
static const char __pyx_k_CUdevprop_st___reduce_cython[] = "CUdevprop_st.__reduce_cython__";
static const char __pyx_k_CUfunction___setstate_cython[] = "CUfunction.__setstate_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle[] = "<CUmemGenericAllocationHandle ";
static const char __pyx_k_CUmemoryPool___reduce_cython[] = "CUmemoryPool.__reduce_cython__";
static const char __pyx_k_CUsurfObject___reduce_cython[] = "CUsurfObject.__reduce_cython__";
static const char __pyx_k_CUuserObject___reduce_cython[] = "CUuserObject.__reduce_cython__";
static const char __pyx_k_External_memory_handle_types[] = "\n    External memory handle types\n    ";
static const char __pyx_k_Graph_kernel_node_Attributes[] = "\n    Graph kernel node Attributes\n    ";
static const char __pyx_k_Shared_memory_configurations[] = "\n    Shared memory configurations\n    ";
static const char __pyx_k_cuDeviceGetGraphMemAttribute[] = "cuDeviceGetGraphMemAttribute";
static const char __pyx_k_cuDeviceSetGraphMemAttribute[] = "cuDeviceSetGraphMemAttribute";
static const char __pyx_k_cuGraphEventWaitNodeGetEvent[] = "cuGraphEventWaitNodeGetEvent";
static const char __pyx_k_cuGraphEventWaitNodeSetEvent[] = "cuGraphEventWaitNodeSetEvent";
static const char __pyx_k_cuGraphExecHostNodeSetParams[] = "cuGraphExecHostNodeSetParams";
static const char __pyx_k_cuGraphMemAllocNodeGetParams[] = "cuGraphMemAllocNodeGetParams";
static const char __pyx_k_cuGraphNodeGetDependentNodes[] = "cuGraphNodeGetDependentNodes";
static const char __pyx_k_cuGraphicsUnregisterResource[] = "cuGraphicsUnregisterResource";
static const char __pyx_k_cuLinkAddData_locals_genexpr[] = "cuLinkAddData.<locals>.genexpr";
static const char __pyx_k_cuLinkAddFile_locals_genexpr[] = "cuLinkAddFile.<locals>.genexpr";
static const char __pyx_k_cuMemExportToShareableHandle[] = "cuMemExportToShareableHandle";
static const char __pyx_k_cuuint32_t___setstate_cython[] = "cuuint32_t.__setstate_cython__";
static const char __pyx_k_cuuint64_t___setstate_cython[] = "cuuint64_t.__setstate_cython__";
static const char __pyx_k_reserved_length_must_be_4_is[] = "reserved length must be 4, is ";
static const char __pyx_k_CUDA_ARRAY3D_COLOR_ATTACHMENT[] = "CUDA_ARRAY3D_COLOR_ATTACHMENT";
static const char __pyx_k_CUDA_ERROR_MISALIGNED_ADDRESS[] = "CUDA_ERROR_MISALIGNED_ADDRESS";
static const char __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS";
static const char __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st";
static const char __pyx_k_CUGPUDirectRDMAWritesOrdering[] = "CUGPUDirectRDMAWritesOrdering";
static const char __pyx_k_CU_ACCESS_PROPERTY_PERSISTING[] = "CU_ACCESS_PROPERTY_PERSISTING";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_PITCH[] = "CU_DEVICE_ATTRIBUTE_MAX_PITCH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_WARP_SIZE[] = "CU_DEVICE_ATTRIBUTE_WARP_SIZE";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_PTX_VERSION[] = "CU_FUNC_ATTRIBUTE_PTX_VERSION";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_WAIT_EVENT[] = "CU_GRAPH_NODE_TYPE_WAIT_EVENT";
static const char __pyx_k_CU_MEMHOSTALLOC_WRITECOMBINED[] = "CU_MEMHOSTALLOC_WRITECOMBINED";
static const char __pyx_k_CU_MEMPOOL_ATTR_USED_MEM_HIGH[] = "CU_MEMPOOL_ATTR_USED_MEM_HIGH";
static const char __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_NONE[] = "CU_MEM_ACCESS_FLAGS_PROT_NONE";
static const char __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_READ[] = "CU_MEM_ACCESS_FLAGS_PROT_READ";
static const char __pyx_k_CU_MEM_ADVISE_SET_ACCESSED_BY[] = "CU_MEM_ADVISE_SET_ACCESSED_BY";
static const char __pyx_k_CU_MEM_ADVISE_SET_READ_MOSTLY[] = "CU_MEM_ADVISE_SET_READ_MOSTLY";
static const char __pyx_k_CU_MEM_ALLOCATION_TYPE_PINNED[] = "CU_MEM_ALLOCATION_TYPE_PINNED";
static const char __pyx_k_CU_MEM_CREATE_USAGE_TILE_POOL[] = "CU_MEM_CREATE_USAGE_TILE_POOL";
static const char __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_1X16[] = "CU_RES_VIEW_FORMAT_FLOAT_1X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_1X32[] = "CU_RES_VIEW_FORMAT_FLOAT_1X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_2X16[] = "CU_RES_VIEW_FORMAT_FLOAT_2X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_2X32[] = "CU_RES_VIEW_FORMAT_FLOAT_2X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_4X16[] = "CU_RES_VIEW_FORMAT_FLOAT_4X16";
static const char __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_4X32[] = "CU_RES_VIEW_FORMAT_FLOAT_4X32";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC4[] = "CU_RES_VIEW_FORMAT_SIGNED_BC4";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC5[] = "CU_RES_VIEW_FORMAT_SIGNED_BC5";
static const char __pyx_k_CU_SHAREDMEM_CARVEOUT_DEFAULT[] = "CU_SHAREDMEM_CARVEOUT_DEFAULT";
static const char __pyx_k_CU_STREAM_CAPTURE_MODE_GLOBAL[] = "CU_STREAM_CAPTURE_MODE_GLOBAL";
static const char __pyx_k_CU_STREAM_CAPTURE_STATUS_NONE[] = "CU_STREAM_CAPTURE_STATUS_NONE";
static const char __pyx_k_CU_STREAM_WRITE_VALUE_DEFAULT[] = "CU_STREAM_WRITE_VALUE_DEFAULT";
static const char __pyx_k_CUdevice_v1___setstate_cython[] = "CUdevice_v1.__setstate_cython__";
static const char __pyx_k_CUdeviceptr___setstate_cython[] = "CUdeviceptr.__setstate_cython__";
static const char __pyx_k_CUexecAffinityParam_st_getPtr[] = "CUexecAffinityParam_st.getPtr";
static const char __pyx_k_CUexternalSemaphoreHandleType[] = "CUexternalSemaphoreHandleType";
static const char __pyx_k_CUgraphExec___setstate_cython[] = "CUgraphExec.__setstate_cython__";
static const char __pyx_k_CUgraphNode___setstate_cython[] = "CUgraphNode.__setstate_cython__";
static const char __pyx_k_CUlinkState___setstate_cython[] = "CUlinkState.__setstate_cython__";
static const char __pyx_k_CUmemAllocationProp_st_getPtr[] = "CUmemAllocationProp_st.getPtr";
static const char __pyx_k_CUtexObject___setstate_cython[] = "CUtexObject.__setstate_cython__";
static const char __pyx_k_Function_cache_configurations[] = "\n    Function cache configurations\n    ";
static const char __pyx_k_cuCtxCreate_v3_locals_genexpr[] = "cuCtxCreate_v3.<locals>.genexpr";
static const char __pyx_k_cuGraphChildGraphNodeGetGraph[] = "cuGraphChildGraphNodeGetGraph";
static const char __pyx_k_cuGraphKernelNodeGetAttribute[] = "cuGraphKernelNodeGetAttribute";
static const char __pyx_k_cuGraphKernelNodeSetAttribute[] = "cuGraphKernelNodeSetAttribute";
static const char __pyx_k_cuGraphicsResourceSetMapFlags[] = "cuGraphicsResourceSetMapFlags";
static const char __pyx_k_cuMemGetAllocationGranularity[] = "cuMemGetAllocationGranularity";
static const char __pyx_k_cuMemSetAccess_locals_genexpr[] = "cuMemSetAccess.<locals>.genexpr";
static const char __pyx_k_cuWaitExternalSemaphoresAsync[] = "cuWaitExternalSemaphoresAsync";
static const char __pyx_k_reserved_length_must_be_64_is[] = "reserved length must be 64, is ";
static const char __pyx_k_CUDA_ERROR_DEVICE_NOT_LICENSED[] = "CUDA_ERROR_DEVICE_NOT_LICENSED";
static const char __pyx_k_CUDA_ERROR_ILLEGAL_INSTRUCTION[] = "CUDA_ERROR_ILLEGAL_INSTRUCTION";
static const char __pyx_k_CUDA_ERROR_NOT_MAPPED_AS_ARRAY[] = "CUDA_ERROR_NOT_MAPPED_AS_ARRAY";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_DEDICATED[] = "CUDA_EXTERNAL_MEMORY_DEDICATED";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CLOCK_RATE[] = "CU_DEVICE_ATTRIBUTE_CLOCK_RATE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_INTEGRATED[] = "CU_DEVICE_ATTRIBUTE_INTEGRATED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID[] = "CU_DEVICE_ATTRIBUTE_PCI_BUS_ID";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_TCC_DRIVER[] = "CU_DEVICE_ATTRIBUTE_TCC_DRIVER";
static const char __pyx_k_CU_EXEC_AFFINITY_TYPE_SM_COUNT[] = "CU_EXEC_AFFINITY_TYPE_SM_COUNT";
static const char __pyx_k_CU_JIT_GLOBAL_SYMBOL_ADDRESSES[] = "CU_JIT_GLOBAL_SYMBOL_ADDRESSES";
static const char __pyx_k_CU_LAUNCH_PARAM_BUFFER_POINTER[] = "CU_LAUNCH_PARAM_BUFFER_POINTER";
static const char __pyx_k_CU_MEM_ALLOCATION_COMP_GENERIC[] = "CU_MEM_ALLOCATION_COMP_GENERIC";
static const char __pyx_k_CU_MEM_ALLOCATION_TYPE_INVALID[] = "CU_MEM_ALLOCATION_TYPE_INVALID";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_BUFFER_ID[] = "CU_POINTER_ATTRIBUTE_BUFFER_ID";
static const char __pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC6H[] = "CU_RES_VIEW_FORMAT_SIGNED_BC6H";
static const char __pyx_k_CU_STREAM_CAPTURE_MODE_RELAXED[] = "CU_STREAM_CAPTURE_MODE_RELAXED";
static const char __pyx_k_CU_STREAM_MEM_OP_WAIT_VALUE_32[] = "CU_STREAM_MEM_OP_WAIT_VALUE_32";
static const char __pyx_k_CU_STREAM_MEM_OP_WAIT_VALUE_64[] = "CU_STREAM_MEM_OP_WAIT_VALUE_64";
static const char __pyx_k_CU_TRSF_NORMALIZED_COORDINATES[] = "CU_TRSF_NORMALIZED_COORDINATES";
static const char __pyx_k_CUaccessPolicyWindow_st_getPtr[] = "CUaccessPolicyWindow_st.getPtr";
static const char __pyx_k_CUdeviceptr_v2___reduce_cython[] = "CUdeviceptr_v2.__reduce_cython__";
static const char __pyx_k_CUdevprop_st___setstate_cython[] = "CUdevprop_st.__setstate_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle_2[] = "CUmemGenericAllocationHandle";
static const char __pyx_k_CUmemoryPool___setstate_cython[] = "CUmemoryPool.__setstate_cython__";
static const char __pyx_k_CUstreamAttrValue_union_getPtr[] = "CUstreamAttrValue_union.getPtr";
static const char __pyx_k_CUstreamBatchMemOpParams_union[] = "CUstreamBatchMemOpParams_union";
static const char __pyx_k_CUsurfObject___setstate_cython[] = "CUsurfObject.__setstate_cython__";
static const char __pyx_k_CUtexObject_v1___reduce_cython[] = "CUtexObject_v1.__reduce_cython__";
static const char __pyx_k_CUuserObject___setstate_cython[] = "CUuserObject.__setstate_cython__";
static const char __pyx_k_Flags_for_cuStreamWriteValue32[] = "\n    Flags for cuStreamWriteValue32\n    ";
static const char __pyx_k_Specifies_the_type_of_location[] = "\n    Specifies the type of location\n    ";
static const char __pyx_k_cuDeviceGetExecAffinitySupport[] = "cuDeviceGetExecAffinitySupport";
static const char __pyx_k_cuDeviceGetNvSciSyncAttributes[] = "cuDeviceGetNvSciSyncAttributes";
static const char __pyx_k_cuGraphEventRecordNodeGetEvent[] = "cuGraphEventRecordNodeGetEvent";
static const char __pyx_k_cuGraphEventRecordNodeSetEvent[] = "cuGraphEventRecordNodeSetEvent";
static const char __pyx_k_cuGraphExecKernelNodeSetParams[] = "cuGraphExecKernelNodeSetParams";
static const char __pyx_k_cuGraphExecMemcpyNodeSetParams[] = "cuGraphExecMemcpyNodeSetParams";
static const char __pyx_k_cuGraphExecMemsetNodeSetParams[] = "cuGraphExecMemsetNodeSetParams";
static const char __pyx_k_cuMemImportFromShareableHandle[] = "cuMemImportFromShareableHandle";
static const char __pyx_k_cuTexObjectGetResourceViewDesc[] = "cuTexObjectGetResourceViewDesc";
static const char __pyx_k_Access_flags_that_specify_the_l[] = "\n    Access flags that specify the level of access the current context's\n    device has on the memory referenced.\n    ";
static const char __pyx_k_Argument_map_is_not_instance_of[] = "Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]";
static const char __pyx_k_Bitmasks_for_CU_DEVICE_ATTRIBUT[] = "\n    Bitmasks for\n    CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS\n    ";
static const char __pyx_k_CUDA_ARRAY_DESCRIPTOR_st_getPtr[] = "CUDA_ARRAY_DESCRIPTOR_st.getPtr";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s";
static const char __pyx_k_CUDA_ERROR_COMPAT_NOT_SUPPORTED[] = "CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE";
static const char __pyx_k_CUDA_ERROR_CONTEXT_IS_DESTROYED[] = "CUDA_ERROR_CONTEXT_IS_DESTROYED";
static const char __pyx_k_CUDA_ERROR_HARDWARE_STACK_ERROR[] = "CUDA_ERROR_HARDWARE_STACK_ERROR";
static const char __pyx_k_CUDA_ERROR_MPS_SERVER_NOT_READY[] = "CUDA_ERROR_MPS_SERVER_NOT_READY";
static const char __pyx_k_CUDA_ERROR_NVLINK_UNCORRECTABLE[] = "CUDA_ERROR_NVLINK_UNCORRECTABLE";
static const char __pyx_k_CUDA_ERROR_SHARED_OBJECT_SYMBOL[] = "CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_MERGE[] = "CUDA_ERROR_STREAM_CAPTURE_MERGE";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_WRONG[] = "CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s";
static const char __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st";
static const char __pyx_k_CUDA_HOST_NODE_PARAMS_st_getPtr[] = "CUDA_HOST_NODE_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_2[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_3[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s";
static const char __pyx_k_CUDA_TEXTURE_DESC_st___setstate[] = "CUDA_TEXTURE_DESC_st.__setstate_cython__";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_COOPERATIVE[] = "CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_ECC_ENABLED[] = "CU_DEVICE_ATTRIBUTE_ECC_ENABLED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP[] = "CU_DEVICE_ATTRIBUTE_GPU_OVERLAP";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE[] = "CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_HOST_NATIVE[] = "CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC[] = "CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_THREADS[] = "CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA[] = "CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED";
static const char __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES[] = "CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA[] = "CU_FUNC_ATTRIBUTE_CACHE_MODE_CA";
static const char __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_NONE[] = "CU_GRAPHICS_REGISTER_FLAGS_NONE";
static const char __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_READ[] = "CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL[] = "CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY[] = "CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET[] = "CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_NODE[] = "CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED";
static const char __pyx_k_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH[] = "CU_GRAPH_MEM_ATTR_USED_MEM_HIGH";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_EVENT_RECORD[] = "CU_GRAPH_NODE_TYPE_EVENT_RECORD";
static const char __pyx_k_CU_KERNEL_NODE_ATTRIBUTE_ACCESS[] = "CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW";
static const char __pyx_k_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH[] = "CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH";
static const char __pyx_k_CU_MEM_ADVISE_UNSET_ACCESSED_BY[] = "CU_MEM_ADVISE_UNSET_ACCESSED_BY";
static const char __pyx_k_CU_MEM_ADVISE_UNSET_READ_MOSTLY[] = "CU_MEM_ADVISE_UNSET_READ_MOSTLY";
static const char __pyx_k_CU_MEM_RANGE_ATTRIBUTE_ACCESSED[] = "CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_IS_MANAGED[] = "CU_POINTER_ATTRIBUTE_IS_MANAGED";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_P2P_TOKENS[] = "CU_POINTER_ATTRIBUTE_P2P_TOKENS";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_RANGE_SIZE[] = "CU_POINTER_ATTRIBUTE_RANGE_SIZE";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC1[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC1";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC2[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC2";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC3[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC3";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC4[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC4";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC5[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC5";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC7[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC7";
static const char __pyx_k_CU_SHARED_MEM_CONFIG_EIGHT_BYTE[] = "CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE";
static const char __pyx_k_CU_STREAM_CAPTURE_STATUS_ACTIVE[] = "CU_STREAM_CAPTURE_STATUS_ACTIVE";
static const char __pyx_k_CU_STREAM_MEM_OP_WRITE_VALUE_32[] = "CU_STREAM_MEM_OP_WRITE_VALUE_32";
static const char __pyx_k_CU_STREAM_MEM_OP_WRITE_VALUE_64[] = "CU_STREAM_MEM_OP_WRITE_VALUE_64";
static const char __pyx_k_CU_STREAM_WRITE_VALUE_NO_MEMORY[] = "CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u";
static const char __pyx_k_CUexecAffinityParam_st___reduce[] = "CUexecAffinityParam_st.__reduce_cython__";
static const char __pyx_k_CUexecAffinityParam_v1_CUexecAf[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u";
static const char __pyx_k_CUexecAffinitySmCount_st_getPtr[] = "CUexecAffinitySmCount_st.getPtr";
static const char __pyx_k_CUflushGPUDirectRDMAWritesScope[] = "CUflushGPUDirectRDMAWritesScope";
static const char __pyx_k_CUmemAllocationProp_st___reduce[] = "CUmemAllocationProp_st.__reduce_cython__";
static const char __pyx_k_CUmemAllocationProp_v1_CUmemAll[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s";
static const char __pyx_k_CUmemGenericAllocationHandle_v1[] = "<CUmemGenericAllocationHandle_v1 ";
static const char __pyx_k_CUstreamMemOpWaitValueParams_st[] = "CUstreamMemOpWaitValueParams_st";
static const char __pyx_k_CUsurfObject_v1___reduce_cython[] = "CUsurfObject_v1.__reduce_cython__";
static const char __pyx_k_Cubin_matching_fallback_strateg[] = "\n    Cubin matching fallback strategies\n    ";
static const char __pyx_k_Defines_the_allocation_types_av[] = "\n    Defines the allocation types available\n    ";
static const char __pyx_k_External_semaphore_handle_types[] = "\n    External semaphore handle types\n    ";
static const char __pyx_k_Flag_for_requesting_different_o[] = "\n    Flag for requesting different optimal and required granularities\n    for an allocation.\n    ";
static const char __pyx_k_Flags_for_cuStreamUpdateCapture[] = "\n    Flags for cuStreamUpdateCaptureDependencies\n    ";
static const char __pyx_k_Flags_for_cuStreamWaitValue32_a[] = "\n    Flags for cuStreamWaitValue32 and cuStreamWaitValue64\n    ";
static const char __pyx_k_Flags_for_instantiating_a_graph[] = "\n    Flags for instantiating a graph\n    ";
static const char __pyx_k_Flags_for_mapping_and_unmapping[] = "\n    Flags for mapping and unmapping interop resources\n    ";
static const char __pyx_k_Flags_for_retaining_user_object[] = "\n    Flags for retaining user object references for graphs\n    ";
static const char __pyx_k_Flags_for_specifying_particular[] = "\n    Flags for specifying particular handle types\n    ";
static const char __pyx_k_Flags_for_user_objects_for_grap[] = "\n    Flags for user objects for graphs\n    ";
static const char __pyx_k_Flags_to_register_a_graphics_re[] = "\n    Flags to register a graphics resource\n    ";
static const char __pyx_k_Flags_to_specify_search_options[] = "\n    Flags to specify search options. For more details see\n    cuGetProcAddress\n    ";
static const char __pyx_k_Online_compiler_and_linker_opti[] = "\n    Online compiler and linker options\n    ";
static const char __pyx_k_Operations_for_cuStreamBatchMem[] = "\n    Operations for cuStreamBatchMemOp\n    ";
static const char __pyx_k_Platform_native_ordering_for_GP[] = "\n    Platform native ordering for GPUDirect RDMA writes\n    ";
static const char __pyx_k_Possible_modes_for_stream_captu[] = "\n    Possible modes for stream capture thread interactions. For more\n    details see cuStreamBeginCapture and\n    cuThreadExchangeStreamCaptureMode\n    ";
static const char __pyx_k_Possible_stream_capture_statuse[] = "\n    Possible stream capture statuses returned by cuStreamIsCapturing\n    ";
static const char __pyx_k_Shared_memory_carveout_configur[] = "\n    Shared memory carveout configurations. These may be passed to\n    cuFuncSetAttribute\n    ";
static const char __pyx_k_Specifies_compression_attribute[] = "\n    Specifies compression attribute for an allocation.\n    ";
static const char __pyx_k_Specifies_performance_hint_with[] = "\n    Specifies performance hint with ::CUaccessPolicyWindow for hitProp\n    and missProp members.\n    ";
static const char __pyx_k_Specifies_the_memory_protection[] = "\n    Specifies the memory protection flags for mapping.\n    ";
static const char __pyx_k_Texture_reference_addressing_mo[] = "\n    Texture reference addressing modes\n    ";
static const char __pyx_k_Texture_reference_filtering_mod[] = "\n    Texture reference filtering modes\n    ";
static const char __pyx_k_The_additional_write_options_fo[] = "\n    The additional write options for cuGraphDebugDotPrint\n    ";
static const char __pyx_k_The_scopes_for_cuFlushGPUDirect[] = "\n    The scopes for cuFlushGPUDirectRDMAWrites\n    ";
static const char __pyx_k_The_targets_for_cuFlushGPUDirec[] = "\n    The targets for cuFlushGPUDirectRDMAWrites\n    ";
static const char __pyx_k_cuExternalMemoryGetMappedBuffer[] = "cuExternalMemoryGetMappedBuffer";
static const char __pyx_k_cuGraphAddChildGraphNode_locals[] = "cuGraphAddChildGraphNode.<locals>.genexpr";
static const char __pyx_k_cuGraphKernelNodeCopyAttributes[] = "cuGraphKernelNodeCopyAttributes";
static const char __pyx_k_cuSignalExternalSemaphoresAsync[] = "cuSignalExternalSemaphoresAsync.<locals>.genexpr";
static const char __pyx_k_Argument_attributes_is_not_insta[] = "Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]";
static const char __pyx_k_Argument_dataSizes_is_not_instan[] = "Argument 'dataSizes' is not instance of type (expected List[int]";
static const char __pyx_k_Argument_dependencies_is_not_ins[] = "Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]";
static const char __pyx_k_Argument_desc_is_not_instance_of[] = "Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]";
static const char __pyx_k_Argument_extSemArray_is_not_inst[] = "Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]";
static const char __pyx_k_Argument_from__is_not_instance_o[] = "Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]";
static const char __pyx_k_Argument_launchParamsList_is_not[] = "Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]";
static const char __pyx_k_Argument_mapInfoList_is_not_inst[] = "Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]";
static const char __pyx_k_Argument_options_is_not_instance[] = "Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]";
static const char __pyx_k_Argument_paramArray_is_not_insta[] = "Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]";
static const char __pyx_k_Argument_paramsArray_is_not_inst[] = "Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]";
static const char __pyx_k_Argument_to_is_not_instance_of_t[] = "Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]";
static const char __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st___red[] = "CUDA_ARRAY3D_DESCRIPTOR_st.__reduce_cython__";
static const char __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st___set[] = "CUDA_ARRAY3D_DESCRIPTOR_st.__setstate_cython__";
static const char __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st_getPt[] = "CUDA_ARRAY3D_DESCRIPTOR_st.getPtr";
static const char __pyx_k_CUDA_ARRAY_DESCRIPTOR_st___reduc[] = "CUDA_ARRAY_DESCRIPTOR_st.__reduce_cython__";
static const char __pyx_k_CUDA_ARRAY_DESCRIPTOR_st___setst[] = "CUDA_ARRAY_DESCRIPTOR_st.__setstate_cython__";
static const char __pyx_k_CUDA_COOPERATIVE_LAUNCH_MULTI_DE[] = "CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC";
static const char __pyx_k_CUDA_ERROR_CONTEXT_ALREADY_CURRE[] = "CUDA_ERROR_CONTEXT_ALREADY_CURRENT";
static const char __pyx_k_CUDA_ERROR_CONTEXT_ALREADY_IN_US[] = "CUDA_ERROR_CONTEXT_ALREADY_IN_USE";
static const char __pyx_k_CUDA_ERROR_COOPERATIVE_LAUNCH_TO[] = "CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE";
static const char __pyx_k_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAI[] = "CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE";
static const char __pyx_k_CUDA_ERROR_HOST_MEMORY_ALREADY_R[] = "CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED";
static const char __pyx_k_CUDA_ERROR_HOST_MEMORY_NOT_REGIS[] = "CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED";
static const char __pyx_k_CUDA_ERROR_INVALID_ADDRESS_SPACE[] = "CUDA_ERROR_INVALID_ADDRESS_SPACE";
static const char __pyx_k_CUDA_ERROR_INVALID_GRAPHICS_CONT[] = "CUDA_ERROR_INVALID_GRAPHICS_CONTEXT";
static const char __pyx_k_CUDA_ERROR_JIT_COMPILATION_DISAB[] = "CUDA_ERROR_JIT_COMPILATION_DISABLED";
static const char __pyx_k_CUDA_ERROR_JIT_COMPILER_NOT_FOUN[] = "CUDA_ERROR_JIT_COMPILER_NOT_FOUND";
static const char __pyx_k_CUDA_ERROR_LAUNCH_INCOMPATIBLE_T[] = "CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING";
static const char __pyx_k_CUDA_ERROR_LAUNCH_OUT_OF_RESOURC[] = "CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES";
static const char __pyx_k_CUDA_ERROR_MPS_CONNECTION_FAILED[] = "CUDA_ERROR_MPS_CONNECTION_FAILED";
static const char __pyx_k_CUDA_ERROR_MPS_MAX_CLIENTS_REACH[] = "CUDA_ERROR_MPS_MAX_CLIENTS_REACHED";
static const char __pyx_k_CUDA_ERROR_MPS_MAX_CONNECTIONS_R[] = "CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED";
static const char __pyx_k_CUDA_ERROR_NOT_MAPPED_AS_POINTER[] = "CUDA_ERROR_NOT_MAPPED_AS_POINTER";
static const char __pyx_k_CUDA_ERROR_PEER_ACCESS_ALREADY_E[] = "CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED";
static const char __pyx_k_CUDA_ERROR_PEER_ACCESS_NOT_ENABL[] = "CUDA_ERROR_PEER_ACCESS_NOT_ENABLED";
static const char __pyx_k_CUDA_ERROR_PEER_ACCESS_UNSUPPORT[] = "CUDA_ERROR_PEER_ACCESS_UNSUPPORTED";
static const char __pyx_k_CUDA_ERROR_PRIMARY_CONTEXT_ACTIV[] = "CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE";
static const char __pyx_k_CUDA_ERROR_PROFILER_ALREADY_STAR[] = "CUDA_ERROR_PROFILER_ALREADY_STARTED";
static const char __pyx_k_CUDA_ERROR_PROFILER_ALREADY_STOP[] = "CUDA_ERROR_PROFILER_ALREADY_STOPPED";
static const char __pyx_k_CUDA_ERROR_PROFILER_NOT_INITIALI[] = "CUDA_ERROR_PROFILER_NOT_INITIALIZED";
static const char __pyx_k_CUDA_ERROR_SHARED_OBJECT_INIT_FA[] = "CUDA_ERROR_SHARED_OBJECT_INIT_FAILED";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_IMPLIC[] = "CUDA_ERROR_STREAM_CAPTURE_IMPLICIT";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_INVALI[] = "CUDA_ERROR_STREAM_CAPTURE_INVALIDATED";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_ISOLAT[] = "CUDA_ERROR_STREAM_CAPTURE_ISOLATION";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNJOIN[] = "CUDA_ERROR_STREAM_CAPTURE_UNJOINED";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNMATC[] = "CUDA_ERROR_STREAM_CAPTURE_UNMATCHED";
static const char __pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNSUPP[] = "CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED";
static const char __pyx_k_CUDA_ERROR_SYSTEM_DRIVER_MISMATC[] = "CUDA_ERROR_SYSTEM_DRIVER_MISMATCH";
static const char __pyx_k_CUDA_ERROR_UNSUPPORTED_EXEC_AFFI[] = "CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY";
static const char __pyx_k_CUDA_ERROR_UNSUPPORTED_PTX_VERSI[] = "CUDA_ERROR_UNSUPPORTED_PTX_VERSION";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_2[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_3[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_4[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_5[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_6[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_7[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_8[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_2[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_3[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_4[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_5[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_6[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_7[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_8[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_9[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_S[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKI[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC";
static const char __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st";
static const char __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1";
static const char __pyx_k_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO[] = "CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH";
static const char __pyx_k_CUDA_HOST_NODE_PARAMS_st___reduc[] = "CUDA_HOST_NODE_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_HOST_NODE_PARAMS_st___setst[] = "CUDA_HOST_NODE_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_KERNEL_NODE_PARAMS_st___red[] = "CUDA_KERNEL_NODE_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_KERNEL_NODE_PARAMS_st___set[] = "CUDA_KERNEL_NODE_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_KERNEL_NODE_PARAMS_st_getPt[] = "CUDA_KERNEL_NODE_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_LAUNCH_PARAMS_st___reduce_c[] = "CUDA_LAUNCH_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_LAUNCH_PARAMS_st___setstate[] = "CUDA_LAUNCH_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_MEMCPY2D_st___reduce_cython[] = "CUDA_MEMCPY2D_st.__reduce_cython__";
static const char __pyx_k_CUDA_MEMCPY2D_st___setstate_cyth[] = "CUDA_MEMCPY2D_st.__setstate_cython__";
static const char __pyx_k_CUDA_MEMCPY3D_PEER_st___reduce_c[] = "CUDA_MEMCPY3D_PEER_st.__reduce_cython__";
static const char __pyx_k_CUDA_MEMCPY3D_PEER_st___setstate[] = "CUDA_MEMCPY3D_PEER_st.__setstate_cython__";
static const char __pyx_k_CUDA_MEMCPY3D_st___reduce_cython[] = "CUDA_MEMCPY3D_st.__reduce_cython__";
static const char __pyx_k_CUDA_MEMCPY3D_st___setstate_cyth[] = "CUDA_MEMCPY3D_st.__setstate_cython__";
static const char __pyx_k_CUDA_MEMSET_NODE_PARAMS_st___red[] = "CUDA_MEMSET_NODE_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_MEMSET_NODE_PARAMS_st___set[] = "CUDA_MEMSET_NODE_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_MEMSET_NODE_PARAMS_st_getPt[] = "CUDA_MEMSET_NODE_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_ge[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_ACCESS_FL[] = "CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st";
static const char __pyx_k_CUDA_RESOURCE_DESC_st___reduce_c[] = "CUDA_RESOURCE_DESC_st.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_st___setstate[] = "CUDA_RESOURCE_DESC_st.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_VIEW_DESC_st___red[] = "CUDA_RESOURCE_VIEW_DESC_st.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_VIEW_DESC_st___set[] = "CUDA_RESOURCE_VIEW_DESC_st.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_VIEW_DESC_st_getPt[] = "CUDA_RESOURCE_VIEW_DESC_st.getPtr";
static const char __pyx_k_CUDA_TEXTURE_DESC_st___reduce_cy[] = "CUDA_TEXTURE_DESC_st.__reduce_cython__";
static const char __pyx_k_CU_ARRAY_SPARSE_PROPERTIES_SINGL[] = "CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL";
static const char __pyx_k_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE[] = "CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL";
static const char __pyx_k_CU_COMPUTEMODE_EXCLUSIVE_PROCESS[] = "CU_COMPUTEMODE_EXCLUSIVE_PROCESS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE[] = "CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_RE[] = "CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST[] = "CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GA[] = "CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_64_B[] = "CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST[] = "CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE[] = "CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA[] = "CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE[] = "CU_DEVICE_ATTRIBUTE_COMPUTE_MODE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_PREE[] = "CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CONCURRENT_K[] = "CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CONCURRENT_M[] = "CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_DIRECT_MANAG[] = "CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GENERIC_COMP[] = "CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CA[] = "CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMOR[] = "CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R[] = "CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_HOST_REGISTE[] = "CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZ[] = "CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CAC[] = "CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MANAGED_MEMO[] = "CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_P[] = "CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_P[] = "CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI[] = "CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM[] = "CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_PERSISTI[] = "CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_REGISTER[] = "CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M[] = "CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK[] = "CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS[] = "CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPP[] = "CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MULTIPROCESS[] = "CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO[] = "CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM[] = "CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_I[] = "CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_I[] = "CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_READ_ONLY_HO[] = "CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_REGISTERS_PE[] = "CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_RESERVED_SHA[] = "CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_SHARED_MEMOR[] = "CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DO[] = "CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_STREAM_PRIOR[] = "CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_SURFACE_ALIG[] = "CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIG[] = "CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_TEXTURE_PITC[] = "CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_TIMELINE_SEM[] = "CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTA[] = "CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDR[] = "CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDR[] = "CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMO[] = "CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED";
static const char __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_A[] = "CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED";
static const char __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_S[] = "CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED";
static const char __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARR[] = "CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED";
static const char __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_A[] = "CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED";
static const char __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_PERFORMA[] = "CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_N[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_BINARY_VERSION[] = "CU_FUNC_ATTRIBUTE_BINARY_VERSION";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYT[] = "CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYT[] = "CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SH[] = "CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_MAX_THREADS_PE[] = "CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_PREFERRED_SHAR[] = "CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT";
static const char __pyx_k_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BY[] = "CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES";
static const char __pyx_k_CU_GET_PROC_ADDRESS_LEGACY_STREA[] = "CU_GET_PROC_ADDRESS_LEGACY_STREAM";
static const char __pyx_k_CU_GET_PROC_ADDRESS_PER_THREAD_D[] = "CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM";
static const char __pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI[] = "CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE";
static const char __pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_N[] = "CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE";
static const char __pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_R[] = "CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY";
static const char __pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_W[] = "CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD";
static const char __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_SURFA[] = "CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST";
static const char __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_TEXTU[] = "CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER";
static const char __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_WRITE[] = "CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_N[] = "CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM[] = "CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES[] = "CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NO[] = "CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALL[] = "CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FRE[] = "CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME[] = "CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE[] = "CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCT[] = "CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_S[] = "CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_PARAM[] = "CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOL[] = "CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED";
static const char __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUP[] = "CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE";
static const char __pyx_k_CU_GRAPH_MEM_ATTR_RESERVED_MEM_C[] = "CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT";
static const char __pyx_k_CU_GRAPH_MEM_ATTR_RESERVED_MEM_H[] = "CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH";
static const char __pyx_k_CU_GRAPH_MEM_ATTR_USED_MEM_CURRE[] = "CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIG[] = "CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL";
static const char __pyx_k_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAI[] = "CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT";
static const char __pyx_k_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCE[] = "CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS";
static const char __pyx_k_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYT[] = "CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES";
static const char __pyx_k_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTE[] = "CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES";
static const char __pyx_k_CU_KERNEL_NODE_ATTRIBUTE_COOPERA[] = "CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE";
static const char __pyx_k_CU_LIMIT_DEV_RUNTIME_PENDING_LAU[] = "CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT";
static const char __pyx_k_CU_LIMIT_MAX_L2_FETCH_GRANULARIT[] = "CU_LIMIT_MAX_L2_FETCH_GRANULARITY";
static const char __pyx_k_CU_LIMIT_PERSISTING_L2_CACHE_SIZ[] = "CU_LIMIT_PERSISTING_L2_CACHE_SIZE";
static const char __pyx_k_CU_MEMPOOL_ATTR_RELEASE_THRESHOL[] = "CU_MEMPOOL_ATTR_RELEASE_THRESHOLD";
static const char __pyx_k_CU_MEMPOOL_ATTR_RESERVED_MEM_CUR[] = "CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT";
static const char __pyx_k_CU_MEMPOOL_ATTR_RESERVED_MEM_HIG[] = "CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH";
static const char __pyx_k_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTE[] = "CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES";
static const char __pyx_k_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPO[] = "CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC";
static const char __pyx_k_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVE[] = "CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES";
static const char __pyx_k_CU_MEMPOOL_ATTR_USED_MEM_CURRENT[] = "CU_MEMPOOL_ATTR_USED_MEM_CURRENT";
static const char __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_READWRI[] = "CU_MEM_ACCESS_FLAGS_PROT_READWRITE";
static const char __pyx_k_CU_MEM_ADVISE_SET_PREFERRED_LOCA[] = "CU_MEM_ADVISE_SET_PREFERRED_LOCATION";
static const char __pyx_k_CU_MEM_ADVISE_UNSET_PREFERRED_LO[] = "CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION";
static const char __pyx_k_CU_MEM_ALLOC_GRANULARITY_MINIMUM[] = "CU_MEM_ALLOC_GRANULARITY_MINIMUM";
static const char __pyx_k_CU_MEM_ALLOC_GRANULARITY_RECOMME[] = "CU_MEM_ALLOC_GRANULARITY_RECOMMENDED";
static const char __pyx_k_CU_MEM_HANDLE_TYPE_POSIX_FILE_DE[] = "CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR";
static const char __pyx_k_CU_MEM_RANGE_ATTRIBUTE_LAST_PREF[] = "CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION";
static const char __pyx_k_CU_MEM_RANGE_ATTRIBUTE_PREFERRED[] = "CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION";
static const char __pyx_k_CU_MEM_RANGE_ATTRIBUTE_READ_MOST[] = "CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY";
static const char __pyx_k_CU_OCCUPANCY_DISABLE_CACHING_OVE[] = "CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG[] = "CU_POINTER_ATTRIBUTE_ACCESS_FLAGS";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_ALLOWED_HAN[] = "CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_DEVICE_ORDI[] = "CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_DEVICE_POIN[] = "CU_POINTER_ATTRIBUTE_DEVICE_POINTER";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_HOST_POINTE[] = "CU_POINTER_ATTRIBUTE_HOST_POINTER";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_IS_GPU_DIRE[] = "CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_IS_LEGACY_C[] = "CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_MEMORY_TYPE[] = "CU_POINTER_ATTRIBUTE_MEMORY_TYPE";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_MEMPOOL_HAN[] = "CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_RANGE_START[] = "CU_POINTER_ATTRIBUTE_RANGE_START_ADDR";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS[] = "CU_POINTER_ATTRIBUTE_SYNC_MEMOPS";
static const char __pyx_k_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY[] = "CU_RESOURCE_TYPE_MIPMAPPED_ARRAY";
static const char __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H[] = "CU_RES_VIEW_FORMAT_UNSIGNED_BC6H";
static const char __pyx_k_CU_SHAREDMEM_CARVEOUT_MAX_SHARED[] = "CU_SHAREDMEM_CARVEOUT_MAX_SHARED";
static const char __pyx_k_CU_SHARED_MEM_CONFIG_DEFAULT_BAN[] = "CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE";
static const char __pyx_k_CU_SHARED_MEM_CONFIG_FOUR_BYTE_B[] = "CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE";
static const char __pyx_k_CU_STREAM_ADD_CAPTURE_DEPENDENCI[] = "CU_STREAM_ADD_CAPTURE_DEPENDENCIES";
static const char __pyx_k_CU_STREAM_ATTRIBUTE_ACCESS_POLIC[] = "CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW";
static const char __pyx_k_CU_STREAM_ATTRIBUTE_SYNCHRONIZAT[] = "CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY";
static const char __pyx_k_CU_STREAM_CAPTURE_MODE_THREAD_LO[] = "CU_STREAM_CAPTURE_MODE_THREAD_LOCAL";
static const char __pyx_k_CU_STREAM_CAPTURE_STATUS_INVALID[] = "CU_STREAM_CAPTURE_STATUS_INVALIDATED";
static const char __pyx_k_CU_STREAM_MEM_OP_FLUSH_REMOTE_WR[] = "CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES";
static const char __pyx_k_CU_STREAM_SET_CAPTURE_DEPENDENCI[] = "CU_STREAM_SET_CAPTURE_DEPENDENCIES";
static const char __pyx_k_CU_TRSF_DISABLE_TRILINEAR_OPTIMI[] = "CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION";
static const char __pyx_k_CU_USER_OBJECT_NO_DESTRUCTOR_SYN[] = "CU_USER_OBJECT_NO_DESTRUCTOR_SYNC";
static const char __pyx_k_CUaccessPolicyWindow_st___reduce[] = "CUaccessPolicyWindow_st.__reduce_cython__";
static const char __pyx_k_CUaccessPolicyWindow_st___setsta[] = "CUaccessPolicyWindow_st.__setstate_cython__";
static const char __pyx_k_CUarrayMapInfo_st___reduce_cytho[] = "CUarrayMapInfo_st.__reduce_cython__";
static const char __pyx_k_CUarrayMapInfo_st___setstate_cyt[] = "CUarrayMapInfo_st.__setstate_cython__";
static const char __pyx_k_CUdeviceptr_v2___setstate_cython[] = "CUdeviceptr_v2.__setstate_cython__";
static const char __pyx_k_CUexecAffinityParam_st___setstat[] = "CUexecAffinityParam_st.__setstate_cython__";
static const char __pyx_k_CUexecAffinitySmCount_st___reduc[] = "CUexecAffinitySmCount_st.__reduce_cython__";
static const char __pyx_k_CUexecAffinitySmCount_st___setst[] = "CUexecAffinitySmCount_st.__setstate_cython__";
static const char __pyx_k_CUexternalMemory___reduce_cython[] = "CUexternalMemory.__reduce_cython__";
static const char __pyx_k_CUexternalMemory___setstate_cyth[] = "CUexternalMemory.__setstate_cython__";
static const char __pyx_k_CUexternalSemaphore___reduce_cyt[] = "CUexternalSemaphore.__reduce_cython__";
static const char __pyx_k_CUexternalSemaphore___setstate_c[] = "CUexternalSemaphore.__setstate_cython__";
static const char __pyx_k_CUflushGPUDirectRDMAWritesOption[] = "CUflushGPUDirectRDMAWritesOptions";
static const char __pyx_k_CUflushGPUDirectRDMAWritesTarget[] = "CUflushGPUDirectRDMAWritesTarget";
static const char __pyx_k_CUgraphicsResource___reduce_cyth[] = "CUgraphicsResource.__reduce_cython__";
static const char __pyx_k_CUgraphicsResource___setstate_cy[] = "CUgraphicsResource.__setstate_cython__";
static const char __pyx_k_CUipcEventHandle_st___reduce_cyt[] = "CUipcEventHandle_st.__reduce_cython__";
static const char __pyx_k_CUipcEventHandle_st___setstate_c[] = "CUipcEventHandle_st.__setstate_cython__";
static const char __pyx_k_CUipcMemHandle_st___reduce_cytho[] = "CUipcMemHandle_st.__reduce_cython__";
static const char __pyx_k_CUipcMemHandle_st___setstate_cyt[] = "CUipcMemHandle_st.__setstate_cython__";
static const char __pyx_k_CUkernelNodeAttrValue_union___re[] = "CUkernelNodeAttrValue_union.__reduce_cython__";
static const char __pyx_k_CUkernelNodeAttrValue_union___se[] = "CUkernelNodeAttrValue_union.__setstate_cython__";
static const char __pyx_k_CUkernelNodeAttrValue_union_getP[] = "CUkernelNodeAttrValue_union.getPtr";
static const char __pyx_k_CUmemAccessDesc_st___reduce_cyth[] = "CUmemAccessDesc_st.__reduce_cython__";
static const char __pyx_k_CUmemAccessDesc_st___setstate_cy[] = "CUmemAccessDesc_st.__setstate_cython__";
static const char __pyx_k_CUmemAllocationGranularity_flags[] = "CUmemAllocationGranularity_flags";
static const char __pyx_k_CUmemAllocationProp_st___setstat[] = "CUmemAllocationProp_st.__setstate_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle___r[] = "CUmemGenericAllocationHandle.__reduce_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle___s[] = "CUmemGenericAllocationHandle.__setstate_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle_get[] = "CUmemGenericAllocationHandle.getPtr";
static const char __pyx_k_CUmemLocation_st___reduce_cython[] = "CUmemLocation_st.__reduce_cython__";
static const char __pyx_k_CUmemLocation_st___setstate_cyth[] = "CUmemLocation_st.__setstate_cython__";
static const char __pyx_k_CUmemPoolProps_st___reduce_cytho[] = "CUmemPoolProps_st.__reduce_cython__";
static const char __pyx_k_CUmemPoolProps_st___setstate_cyt[] = "CUmemPoolProps_st.__setstate_cython__";
static const char __pyx_k_CUmemPoolPtrExportData_st___redu[] = "CUmemPoolPtrExportData_st.__reduce_cython__";
static const char __pyx_k_CUmemPoolPtrExportData_st___sets[] = "CUmemPoolPtrExportData_st.__setstate_cython__";
static const char __pyx_k_CUmemPoolPtrExportData_st_getPtr[] = "CUmemPoolPtrExportData_st.getPtr";
static const char __pyx_k_CUmipmappedArray___reduce_cython[] = "CUmipmappedArray.__reduce_cython__";
static const char __pyx_k_CUmipmappedArray___setstate_cyth[] = "CUmipmappedArray.__setstate_cython__";
static const char __pyx_k_CUoccupancyB2DSize___reduce_cyth[] = "CUoccupancyB2DSize.__reduce_cython__";
static const char __pyx_k_CUoccupancyB2DSize___setstate_cy[] = "CUoccupancyB2DSize.__setstate_cython__";
static const char __pyx_k_CUstreamAttrValue_union___reduce[] = "CUstreamAttrValue_union.__reduce_cython__";
static const char __pyx_k_CUstreamAttrValue_union___setsta[] = "CUstreamAttrValue_union.__setstate_cython__";
static const char __pyx_k_CUstreamBatchMemOpParams_union_2[] = "CUstreamBatchMemOpParams_union.__reduce_cython__";
static const char __pyx_k_CUstreamBatchMemOpParams_union_3[] = "CUstreamBatchMemOpParams_union.__setstate_cython__";
static const char __pyx_k_CUstreamBatchMemOpParams_union_g[] = "CUstreamBatchMemOpParams_union.getPtr";
static const char __pyx_k_CUstreamCallback___reduce_cython[] = "CUstreamCallback.__reduce_cython__";
static const char __pyx_k_CUstreamCallback___setstate_cyth[] = "CUstreamCallback.__setstate_cython__";
static const char __pyx_k_CUstreamMemOpFlushRemoteWritesPa[] = "CUstreamMemOpFlushRemoteWritesParams_st";
static const char __pyx_k_CUstreamMemOpWriteValueParams_st[] = "CUstreamMemOpWriteValueParams_st";
static const char __pyx_k_CUstreamUpdateCaptureDependencie[] = "CUstreamUpdateCaptureDependencies_flags";
static const char __pyx_k_CUsurfObject_v1___setstate_cytho[] = "CUsurfObject_v1.__setstate_cython__";
static const char __pyx_k_CUtexObject_v1___setstate_cython[] = "CUtexObject_v1.__setstate_cython__";
static const char __pyx_k_Failed_to_allocate_length_x_size[] = "Failed to allocate length x size memory: 1x";
static const char __pyx_k_cuDeviceGetTexture1DLinearMaxWid[] = "cuDeviceGetTexture1DLinearMaxWidth";
static const char __pyx_k_cuExternalMemoryGetMappedMipmapp[] = "cuExternalMemoryGetMappedMipmappedArray";
static const char __pyx_k_cuGraphAddDependencies_locals_ge[] = "cuGraphAddDependencies.<locals>.genexpr";
static const char __pyx_k_cuGraphAddEmptyNode_locals_genex[] = "cuGraphAddEmptyNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddEventRecordNode_locals[] = "cuGraphAddEventRecordNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddEventWaitNode_locals_g[] = "cuGraphAddEventWaitNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddExternalSemaphoresSign[] = "cuGraphAddExternalSemaphoresSignalNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddExternalSemaphoresWait[] = "cuGraphAddExternalSemaphoresWaitNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddHostNode_locals_genexp[] = "cuGraphAddHostNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddKernelNode_locals_gene[] = "cuGraphAddKernelNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddMemAllocNode_locals_ge[] = "cuGraphAddMemAllocNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddMemFreeNode_locals_gen[] = "cuGraphAddMemFreeNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddMemcpyNode_locals_gene[] = "cuGraphAddMemcpyNode.<locals>.genexpr";
static const char __pyx_k_cuGraphAddMemsetNode_locals_gene[] = "cuGraphAddMemsetNode.<locals>.genexpr";
static const char __pyx_k_cuGraphExecChildGraphNodeSetPara[] = "cuGraphExecChildGraphNodeSetParams";
static const char __pyx_k_cuGraphExecEventRecordNodeSetEve[] = "cuGraphExecEventRecordNodeSetEvent";
static const char __pyx_k_cuGraphExecEventWaitNodeSetEvent[] = "cuGraphExecEventWaitNodeSetEvent";
static const char __pyx_k_cuGraphExecExternalSemaphoresSig[] = "cuGraphExecExternalSemaphoresSignalNodeSetParams";
static const char __pyx_k_cuGraphExecExternalSemaphoresWai[] = "cuGraphExecExternalSemaphoresWaitNodeSetParams";
static const char __pyx_k_cuGraphExternalSemaphoresSignalN[] = "cuGraphExternalSemaphoresSignalNodeGetParams";
static const char __pyx_k_cuGraphExternalSemaphoresWaitNod[] = "cuGraphExternalSemaphoresWaitNodeGetParams";
static const char __pyx_k_cuGraphRemoveDependencies_locals[] = "cuGraphRemoveDependencies.<locals>.genexpr";
static const char __pyx_k_cuGraphicsResourceGetMappedMipma[] = "cuGraphicsResourceGetMappedMipmappedArray";
static const char __pyx_k_cuGraphicsResourceGetMappedPoint[] = "cuGraphicsResourceGetMappedPointer";
static const char __pyx_k_cuGraphicsSubResourceGetMappedAr[] = "cuGraphicsSubResourceGetMappedArray";
static const char __pyx_k_cuLaunchCooperativeKernelMultiDe[] = "cuLaunchCooperativeKernelMultiDevice.<locals>.genexpr";
static const char __pyx_k_cuMemGetAllocationPropertiesFrom[] = "cuMemGetAllocationPropertiesFromHandle";
static const char __pyx_k_cuMemMapArrayAsync_locals_genexp[] = "cuMemMapArrayAsync.<locals>.genexpr";
static const char __pyx_k_cuMemPoolExportToShareableHandle[] = "cuMemPoolExportToShareableHandle";
static const char __pyx_k_cuMemPoolImportFromShareableHand[] = "cuMemPoolImportFromShareableHandle";
static const char __pyx_k_cuMemPoolSetAccess_locals_genexp[] = "cuMemPoolSetAccess.<locals>.genexpr";
static const char __pyx_k_cuMemRangeGetAttributes_locals_g[] = "cuMemRangeGetAttributes.<locals>.genexpr";
static const char __pyx_k_cuMipmappedArrayGetSparsePropert[] = "cuMipmappedArrayGetSparseProperties";
static const char __pyx_k_cuModuleLoadDataEx_locals_genexp[] = "cuModuleLoadDataEx.<locals>.genexpr";
static const char __pyx_k_cuOccupancyAvailableDynamicSMemP[] = "cuOccupancyAvailableDynamicSMemPerBlock";
static const char __pyx_k_cuOccupancyMaxActiveBlocksPerMul[] = "cuOccupancyMaxActiveBlocksPerMultiprocessor";
static const char __pyx_k_cuOccupancyMaxPotentialBlockSize[] = "cuOccupancyMaxPotentialBlockSize";
static const char __pyx_k_cuPointerGetAttributes_locals_ge[] = "cuPointerGetAttributes.<locals>.genexpr";
static const char __pyx_k_cuStreamBatchMemOp_locals_genexp[] = "cuStreamBatchMemOp.<locals>.genexpr";
static const char __pyx_k_cuStreamUpdateCaptureDependencie[] = "cuStreamUpdateCaptureDependencies.<locals>.genexpr";
static const char __pyx_k_cuThreadExchangeStreamCaptureMod[] = "cuThreadExchangeStreamCaptureMode";
static const char __pyx_k_cuWaitExternalSemaphoresAsync_lo[] = "cuWaitExternalSemaphoresAsync.<locals>.genexpr";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_2[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st.getPtr";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_3[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st.__reduce_cython__";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_4[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st.__setstate_cython__";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_2[] = "CUDA_ARRAY_SPARSE_PROPERTIES_v1";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_3[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.getPtr";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_4[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__reduce_cython__";
static const char __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_5[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_2[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_3[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_4[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_5[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_6[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_7[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_8[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_10[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_11[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_12[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_13[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_14[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_15[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_16[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_2[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_3[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_4[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_5[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_6[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_7[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_8[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_9[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__reduce_cython__";
static const char __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_2[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1";
static const char __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS";
static const char __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_4[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_5[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_6[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_2[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_3[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_4[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_5[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_6[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_7[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_8[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_9[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__setstate_cython__";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_COOPERATIVE_2[] = "CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_2[] = "CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_3[] = "CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_THREADS_2[] = "CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR";
static const char __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_2[] = "CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS";
static const char __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_3[] = "CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER";
static const char __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_4[] = "CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES";
static const char __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_5[] = "CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_2[] = "CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_2[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_3[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_4[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_5[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_6[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.getPtr";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_7[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__reduce_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_8[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__setstate_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_9[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.getPtr";
static const char __pyx_k_CUexecAffinityParam_v1_CUexecAf_2[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.getPtr";
static const char __pyx_k_CUexecAffinityParam_v1_CUexecAf_3[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__reduce_cython__";
static const char __pyx_k_CUexecAffinityParam_v1_CUexecAf_4[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__setstate_cython__";
static const char __pyx_k_CUmemAllocationProp_v1_CUmemAll_2[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.getPtr";
static const char __pyx_k_CUmemAllocationProp_v1_CUmemAll_3[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__reduce_cython__";
static const char __pyx_k_CUmemAllocationProp_v1_CUmemAll_4[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__setstate_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle_v1_2[] = "CUmemGenericAllocationHandle_v1";
static const char __pyx_k_CUmemGenericAllocationHandle_v1_3[] = "CUmemGenericAllocationHandle_v1.getPtr";
static const char __pyx_k_CUmemGenericAllocationHandle_v1_4[] = "CUmemGenericAllocationHandle_v1.__reduce_cython__";
static const char __pyx_k_CUmemGenericAllocationHandle_v1_5[] = "CUmemGenericAllocationHandle_v1.__setstate_cython__";
static const char __pyx_k_CUstreamMemOpWaitValueParams_st_2[] = "CUstreamMemOpWaitValueParams_st.getPtr";
static const char __pyx_k_CUstreamMemOpWaitValueParams_st_3[] = "CUstreamMemOpWaitValueParams_st.__reduce_cython__";
static const char __pyx_k_CUstreamMemOpWaitValueParams_st_4[] = "CUstreamMemOpWaitValueParams_st.__setstate_cython__";
static const char __pyx_k_cuSignalExternalSemaphoresAsync_2[] = "cuSignalExternalSemaphoresAsync";
static const char __pyx_k_Argument_attributes_is_not_insta_2[] = "Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]";
static const char __pyx_k_Argument_paramsArray_is_not_inst_2[] = "Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]";
static const char __pyx_k_Argument_paramsArray_is_not_inst_3[] = "Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]";
static const char __pyx_k_CUDA_COOPERATIVE_LAUNCH_MULTI_DE_2[] = "CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_2[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_4[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_5[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_6[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_2[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_4[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_5[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_6[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_2[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_4[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_5[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_6[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_2[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_4[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_5[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_6[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_2[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_3[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_4[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_5[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_6[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_2[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_3[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_4[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_5[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_6[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_10[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_11[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_12[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_13[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_14[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.getPtr";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_15[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__reduce_cython__";
static const char __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_16[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__setstate_cython__";
static const char __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.getPtr";
static const char __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__reduce_cython__";
static const char __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__setstate_cython__";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_2[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_3[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_4[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.getPtr";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_5[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__reduce_cython__";
static const char __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_6[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_10[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_11[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_12[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_13[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_14[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_15[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_16[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_17[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_18[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_19[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_20[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_21[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__setstate_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_22[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.getPtr";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_23[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__reduce_cython__";
static const char __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_24[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__setstate_cython__";
static const char __pyx_k_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_2[] = "CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE_2[] = "CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA_2[] = "CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_2[] = "CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_3[] = "CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_4[] = "CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_2[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_3[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_4[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_5[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_6[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_7[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_8[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_9[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_2[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_3[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_4[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_5[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_6[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_7[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_8[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_9[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_2[] = "CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_3[] = "CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_2[] = "CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_3[] = "CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_REGISTER_2[] = "CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_2[] = "CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_3[] = "CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO_2[] = "CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM_2[] = "CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_2[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_3[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_4[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_2[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32";
static const char __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_3[] = "CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_2[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_3[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_4[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_5[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_6[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_7[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_8[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_9[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD";
static const char __pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_2[] = "CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER";
static const char __pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_3[] = "CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES";
static const char __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM_2[] = "CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_2[] = "CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_3[] = "CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ";
static const char __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_4[] = "CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_10[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__reduce_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_11[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__setstate_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_12[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.getPtr";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_13[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__reduce_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_14[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__setstate_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_15[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.getPtr";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_16[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__reduce_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_17[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__setstate_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_18[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.getPtr";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_19[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__reduce_cython__";
static const char __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_20[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__setstate_cython__";
static const char __pyx_k_CUstreamMemOpFlushRemoteWritesPa_2[] = "CUstreamMemOpFlushRemoteWritesParams_st.getPtr";
static const char __pyx_k_CUstreamMemOpFlushRemoteWritesPa_3[] = "CUstreamMemOpFlushRemoteWritesParams_st.__reduce_cython__";
static const char __pyx_k_CUstreamMemOpFlushRemoteWritesPa_4[] = "CUstreamMemOpFlushRemoteWritesParams_st.__setstate_cython__";
static const char __pyx_k_CUstreamMemOpWriteValueParams_st_2[] = "CUstreamMemOpWriteValueParams_st.getPtr";
static const char __pyx_k_CUstreamMemOpWriteValueParams_st_3[] = "CUstreamMemOpWriteValueParams_st.__reduce_cython__";
static const char __pyx_k_CUstreamMemOpWriteValueParams_st_4[] = "CUstreamMemOpWriteValueParams_st.__setstate_cython__";
static const char __pyx_k_Failed_to_allocate_length_x_size_2[] = "Failed to allocate length x size memory: ";
static const char __pyx_k_cuGraphAddExternalSemaphoresSign_2[] = "cuGraphAddExternalSemaphoresSignalNode";
static const char __pyx_k_cuGraphAddExternalSemaphoresWait_2[] = "cuGraphAddExternalSemaphoresWaitNode";
static const char __pyx_k_cuGraphExternalSemaphoresSignalN_2[] = "cuGraphExternalSemaphoresSignalNodeSetParams";
static const char __pyx_k_cuGraphExternalSemaphoresWaitNod_2[] = "cuGraphExternalSemaphoresWaitNodeSetParams";
static const char __pyx_k_cuLaunchCooperativeKernelMultiDe_2[] = "cuLaunchCooperativeKernelMultiDevice";
static const char __pyx_k_cuOccupancyMaxActiveBlocksPerMul_2[] = "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags";
static const char __pyx_k_cuOccupancyMaxPotentialBlockSize_2[] = "cuOccupancyMaxPotentialBlockSizeWithFlags";
static const char __pyx_k_cuStreamUpdateCaptureDependencie_2[] = "cuStreamUpdateCaptureDependencies";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_10[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_11[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_12[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_13[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_14[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_10[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_11[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_12[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_13[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_14[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_15[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_16[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_17[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_18[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_19[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_20[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_21[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_22[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_23[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_24[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_25[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_26[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_27[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_28[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT";
static const char __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_29[] = "CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH";
static const char __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_10[] = "CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32";
static PyObject *__pyx_kp_u_;
static PyObject *__pyx_kp_s_Access_flags_that_specify_the_l;
static PyObject *__pyx_n_s_Any;
static PyObject *__pyx_kp_u_Argument_attributes_is_not_insta;
static PyObject *__pyx_kp_u_Argument_attributes_is_not_insta_2;
static PyObject *__pyx_kp_u_Argument_dataSizes_is_not_instan;
static PyObject *__pyx_kp_u_Argument_dependencies_is_not_ins;
static PyObject *__pyx_kp_u_Argument_desc_is_not_instance_of;
static PyObject *__pyx_kp_u_Argument_extSemArray_is_not_inst;
static PyObject *__pyx_kp_u_Argument_from__is_not_instance_o;
static PyObject *__pyx_kp_u_Argument_launchParamsList_is_not;
static PyObject *__pyx_kp_u_Argument_mapInfoList_is_not_inst;
static PyObject *__pyx_kp_u_Argument_map_is_not_instance_of;
static PyObject *__pyx_kp_u_Argument_options_is_not_instance;
static PyObject *__pyx_kp_u_Argument_paramArray_is_not_insta;
static PyObject *__pyx_kp_u_Argument_paramsArray_is_not_inst;
static PyObject *__pyx_kp_u_Argument_paramsArray_is_not_inst_2;
static PyObject *__pyx_kp_u_Argument_paramsArray_is_not_inst_3;
static PyObject *__pyx_kp_u_Argument_to_is_not_instance_of_t;
static PyObject *__pyx_kp_s_Array_formats;
static PyObject *__pyx_kp_s_Array_indices_for_cube_faces;
static PyObject *__pyx_kp_s_Bitmasks_for_CU_DEVICE_ATTRIBUT;
static PyObject *__pyx_n_s_ByteCount;
static PyObject *__pyx_n_s_ByteOffset;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_2DARRAY;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_COLOR_ATTACHMENT;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_CUBEMAP;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DEPTH_TEXTURE;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR;
static PyObject *__pyx_n_u_CUDA_ARRAY3D_DESCRIPTOR;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st___red;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st___set;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st_getPt;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_v2;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_LAYERED;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_SPARSE;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_SURFACE_LDST;
static PyObject *__pyx_n_s_CUDA_ARRAY3D_TEXTURE_GATHER;
static PyObject *__pyx_n_s_CUDA_ARRAY_DESCRIPTOR;
static PyObject *__pyx_n_u_CUDA_ARRAY_DESCRIPTOR;
static PyObject *__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st;
static PyObject *__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st___reduc;
static PyObject *__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st___setst;
static PyObject *__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st_getPtr;
static PyObject *__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_v2;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_2;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_3;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_4;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_2;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_3;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_4;
static PyObject *__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_5;
static PyObject *__pyx_n_s_CUDA_COOPERATIVE_LAUNCH_MULTI_DE;
static PyObject *__pyx_n_s_CUDA_COOPERATIVE_LAUNCH_MULTI_DE_2;
static PyObject *__pyx_n_s_CUDA_ERROR_ALREADY_ACQUIRED;
static PyObject *__pyx_n_s_CUDA_ERROR_ALREADY_MAPPED;
static PyObject *__pyx_n_s_CUDA_ERROR_ARRAY_IS_MAPPED;
static PyObject *__pyx_n_s_CUDA_ERROR_ASSERT;
static PyObject *__pyx_n_s_CUDA_ERROR_CAPTURED_EVENT;
static PyObject *__pyx_n_s_CUDA_ERROR_COMPAT_NOT_SUPPORTED;
static PyObject *__pyx_n_s_CUDA_ERROR_CONTEXT_ALREADY_CURRE;
static PyObject *__pyx_n_s_CUDA_ERROR_CONTEXT_ALREADY_IN_US;
static PyObject *__pyx_n_s_CUDA_ERROR_CONTEXT_IS_DESTROYED;
static PyObject *__pyx_n_s_CUDA_ERROR_COOPERATIVE_LAUNCH_TO;
static PyObject *__pyx_n_s_CUDA_ERROR_DEINITIALIZED;
static PyObject *__pyx_n_s_CUDA_ERROR_DEVICE_NOT_LICENSED;
static PyObject *__pyx_n_s_CUDA_ERROR_ECC_UNCORRECTABLE;
static PyObject *__pyx_n_s_CUDA_ERROR_EXTERNAL_DEVICE;
static PyObject *__pyx_n_s_CUDA_ERROR_FILE_NOT_FOUND;
static PyObject *__pyx_n_s_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAI;
static PyObject *__pyx_n_s_CUDA_ERROR_HARDWARE_STACK_ERROR;
static PyObject *__pyx_n_s_CUDA_ERROR_HOST_MEMORY_ALREADY_R;
static PyObject *__pyx_n_s_CUDA_ERROR_HOST_MEMORY_NOT_REGIS;
static PyObject *__pyx_n_s_CUDA_ERROR_ILLEGAL_ADDRESS;
static PyObject *__pyx_n_s_CUDA_ERROR_ILLEGAL_INSTRUCTION;
static PyObject *__pyx_n_s_CUDA_ERROR_ILLEGAL_STATE;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_ADDRESS_SPACE;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_CONTEXT;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_DEVICE;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_GRAPHICS_CONT;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_HANDLE;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_IMAGE;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_PC;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_PTX;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_SOURCE;
static PyObject *__pyx_n_s_CUDA_ERROR_INVALID_VALUE;
static PyObject *__pyx_n_s_CUDA_ERROR_JIT_COMPILATION_DISAB;
static PyObject *__pyx_n_s_CUDA_ERROR_JIT_COMPILER_NOT_FOUN;
static PyObject *__pyx_n_s_CUDA_ERROR_LAUNCH_FAILED;
static PyObject *__pyx_n_s_CUDA_ERROR_LAUNCH_INCOMPATIBLE_T;
static PyObject *__pyx_n_s_CUDA_ERROR_LAUNCH_OUT_OF_RESOURC;
static PyObject *__pyx_n_s_CUDA_ERROR_LAUNCH_TIMEOUT;
static PyObject *__pyx_n_s_CUDA_ERROR_MAP_FAILED;
static PyObject *__pyx_n_s_CUDA_ERROR_MISALIGNED_ADDRESS;
static PyObject *__pyx_n_s_CUDA_ERROR_MPS_CONNECTION_FAILED;
static PyObject *__pyx_n_s_CUDA_ERROR_MPS_MAX_CLIENTS_REACH;
static PyObject *__pyx_n_s_CUDA_ERROR_MPS_MAX_CONNECTIONS_R;
static PyObject *__pyx_n_s_CUDA_ERROR_MPS_RPC_FAILURE;
static PyObject *__pyx_n_s_CUDA_ERROR_MPS_SERVER_NOT_READY;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_FOUND;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_INITIALIZED;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_MAPPED;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_MAPPED_AS_ARRAY;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_MAPPED_AS_POINTER;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_PERMITTED;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_READY;
static PyObject *__pyx_n_s_CUDA_ERROR_NOT_SUPPORTED;
static PyObject *__pyx_n_s_CUDA_ERROR_NO_BINARY_FOR_GPU;
static PyObject *__pyx_n_s_CUDA_ERROR_NO_DEVICE;
static PyObject *__pyx_n_s_CUDA_ERROR_NVLINK_UNCORRECTABLE;
static PyObject *__pyx_n_s_CUDA_ERROR_OPERATING_SYSTEM;
static PyObject *__pyx_n_s_CUDA_ERROR_OUT_OF_MEMORY;
static PyObject *__pyx_n_s_CUDA_ERROR_PEER_ACCESS_ALREADY_E;
static PyObject *__pyx_n_s_CUDA_ERROR_PEER_ACCESS_NOT_ENABL;
static PyObject *__pyx_n_s_CUDA_ERROR_PEER_ACCESS_UNSUPPORT;
static PyObject *__pyx_n_s_CUDA_ERROR_PRIMARY_CONTEXT_ACTIV;
static PyObject *__pyx_n_s_CUDA_ERROR_PROFILER_ALREADY_STAR;
static PyObject *__pyx_n_s_CUDA_ERROR_PROFILER_ALREADY_STOP;
static PyObject *__pyx_n_s_CUDA_ERROR_PROFILER_DISABLED;
static PyObject *__pyx_n_s_CUDA_ERROR_PROFILER_NOT_INITIALI;
static PyObject *__pyx_n_s_CUDA_ERROR_SHARED_OBJECT_INIT_FA;
static PyObject *__pyx_n_s_CUDA_ERROR_SHARED_OBJECT_SYMBOL;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_IMPLIC;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_INVALI;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_ISOLAT;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_MERGE;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNJOIN;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNMATC;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNSUPP;
static PyObject *__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_WRONG;
static PyObject *__pyx_n_s_CUDA_ERROR_STUB_LIBRARY;
static PyObject *__pyx_n_s_CUDA_ERROR_SYSTEM_DRIVER_MISMATC;
static PyObject *__pyx_n_s_CUDA_ERROR_SYSTEM_NOT_READY;
static PyObject *__pyx_n_s_CUDA_ERROR_TIMEOUT;
static PyObject *__pyx_n_s_CUDA_ERROR_TOO_MANY_PEERS;
static PyObject *__pyx_n_s_CUDA_ERROR_UNKNOWN;
static PyObject *__pyx_n_s_CUDA_ERROR_UNMAP_FAILED;
static PyObject *__pyx_n_s_CUDA_ERROR_UNSUPPORTED_EXEC_AFFI;
static PyObject *__pyx_n_s_CUDA_ERROR_UNSUPPORTED_LIMIT;
static PyObject *__pyx_n_s_CUDA_ERROR_UNSUPPORTED_PTX_VERSI;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3;
static PyObject *__pyx_n_u_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_DEDICATED;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3;
static PyObject *__pyx_n_u_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_7;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_8;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3;
static PyObject *__pyx_n_u_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_7;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_8;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3;
static PyObject *__pyx_n_u_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_10;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_11;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_12;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_13;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_14;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_15;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_16;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_7;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_8;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_9;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_S;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_10;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_11;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_12;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_13;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_14;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_15;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_16;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_2;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_3;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_4;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_5;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_6;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_7;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_8;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_9;
static PyObject *__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKI;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_2;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3;
static PyObject *__pyx_n_u_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_4;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_5;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_6;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS;
static PyObject *__pyx_n_u_CUDA_EXT_SEM_WAIT_NODE_PARAMS;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4;
static PyObject *__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1;
static PyObject *__pyx_n_s_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO;
static PyObject *__pyx_n_s_CUDA_HOST_NODE_PARAMS;
static PyObject *__pyx_n_u_CUDA_HOST_NODE_PARAMS;
static PyObject *__pyx_n_s_CUDA_HOST_NODE_PARAMS_st;
static PyObject *__pyx_n_s_CUDA_HOST_NODE_PARAMS_st___reduc;
static PyObject *__pyx_n_s_CUDA_HOST_NODE_PARAMS_st___setst;
static PyObject *__pyx_n_s_CUDA_HOST_NODE_PARAMS_st_getPtr;
static PyObject *__pyx_n_s_CUDA_HOST_NODE_PARAMS_v1;
static PyObject *__pyx_kp_s_CUDA_Ipc_Mem_Flags;
static PyObject *__pyx_n_s_CUDA_KERNEL_NODE_PARAMS;
static PyObject *__pyx_n_u_CUDA_KERNEL_NODE_PARAMS;
static PyObject *__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st;
static PyObject *__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st___red;
static PyObject *__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st___set;
static PyObject *__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st_getPt;
static PyObject *__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_v1;
static PyObject *__pyx_n_s_CUDA_LAUNCH_PARAMS;
static PyObject *__pyx_n_s_CUDA_LAUNCH_PARAMS_st;
static PyObject *__pyx_n_s_CUDA_LAUNCH_PARAMS_st___reduce_c;
static PyObject *__pyx_n_s_CUDA_LAUNCH_PARAMS_st___setstate;
static PyObject *__pyx_n_s_CUDA_LAUNCH_PARAMS_st_getPtr;
static PyObject *__pyx_n_s_CUDA_LAUNCH_PARAMS_v1;
static PyObject *__pyx_n_s_CUDA_MEMCPY2D;
static PyObject *__pyx_n_u_CUDA_MEMCPY2D;
static PyObject *__pyx_n_s_CUDA_MEMCPY2D_st;
static PyObject *__pyx_n_s_CUDA_MEMCPY2D_st___reduce_cython;
static PyObject *__pyx_n_s_CUDA_MEMCPY2D_st___setstate_cyth;
static PyObject *__pyx_n_s_CUDA_MEMCPY2D_st_getPtr;
static PyObject *__pyx_n_s_CUDA_MEMCPY2D_v2;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D;
static PyObject *__pyx_n_u_CUDA_MEMCPY3D;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_PEER;
static PyObject *__pyx_n_u_CUDA_MEMCPY3D_PEER;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_PEER_st;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_PEER_st___reduce_c;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_PEER_st___setstate;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_PEER_st_getPtr;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_PEER_v1;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_st;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_st___reduce_cython;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_st___setstate_cyth;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_st_getPtr;
static PyObject *__pyx_n_s_CUDA_MEMCPY3D_v2;
static PyObject *__pyx_n_s_CUDA_MEMSET_NODE_PARAMS;
static PyObject *__pyx_n_u_CUDA_MEMSET_NODE_PARAMS;
static PyObject *__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st;
static PyObject *__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st___red;
static PyObject *__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st___set;
static PyObject *__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st_getPt;
static PyObject *__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_v1;
static PyObject *__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS;
static PyObject *__pyx_n_u_CUDA_MEM_ALLOC_NODE_PARAMS;
static PyObject *__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st;
static PyObject *__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_2;
static PyObject *__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_3;
static PyObject *__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_ge;
static PyObject *__pyx_kp_s_CUDA_Mem_Attach_Flags;
static PyObject *__pyx_n_s_CUDA_NVSCISYNC_ATTR_SIGNAL;
static PyObject *__pyx_n_s_CUDA_NVSCISYNC_ATTR_WAIT;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_ACCESS_FL;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_2;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_3;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_4;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_5;
static PyObject *__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_6;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC;
static PyObject *__pyx_n_u_CUDA_RESOURCE_DESC;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_st;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_st___reduce_c;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_st___setstate;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_st_getPtr;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_10;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_11;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_12;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_13;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_14;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_15;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_16;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_17;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_18;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_19;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_2;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_20;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_21;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_22;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_23;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_24;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_3;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_4;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_5;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_6;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_7;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_8;
static PyObject *__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_9;
static PyObject *__pyx_n_s_CUDA_RESOURCE_VIEW_DESC;
static PyObject *__pyx_n_u_CUDA_RESOURCE_VIEW_DESC;
static PyObject *__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st;
static PyObject *__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st___red;
static PyObject *__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st___set;
static PyObject *__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st_getPt;
static PyObject *__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_v1;
static PyObject *__pyx_n_s_CUDA_SUCCESS;
static PyObject *__pyx_n_s_CUDA_TEXTURE_DESC;
static PyObject *__pyx_n_u_CUDA_TEXTURE_DESC;
static PyObject *__pyx_n_s_CUDA_TEXTURE_DESC_st;
static PyObject *__pyx_n_s_CUDA_TEXTURE_DESC_st___reduce_cy;
static PyObject *__pyx_n_s_CUDA_TEXTURE_DESC_st___setstate;
static PyObject *__pyx_n_s_CUDA_TEXTURE_DESC_st_getPtr;
static PyObject *__pyx_n_s_CUDA_TEXTURE_DESC_v1;
static PyObject *__pyx_n_s_CUDA_VERSION;
static PyObject *__pyx_kp_s_CUDA_memory_pool_attributes;
static PyObject *__pyx_n_s_CUGPUDirectRDMAWritesOrdering;
static PyObject *__pyx_n_s_CU_ACCESS_PROPERTY_NORMAL;
static PyObject *__pyx_n_s_CU_ACCESS_PROPERTY_PERSISTING;
static PyObject *__pyx_n_s_CU_ACCESS_PROPERTY_STREAMING;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC1_UNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC1_UNORM_SRGB;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC2_UNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC2_UNORM_SRGB;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC3_UNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC3_UNORM_SRGB;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC4_SNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC4_UNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC5_SNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC5_UNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC6H_SF16;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC6H_UF16;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC7_UNORM;
static PyObject *__pyx_n_s_CU_AD_FORMAT_BC7_UNORM_SRGB;
static PyObject *__pyx_n_s_CU_AD_FORMAT_FLOAT;
static PyObject *__pyx_n_s_CU_AD_FORMAT_HALF;
static PyObject *__pyx_n_s_CU_AD_FORMAT_NV12;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SIGNED_INT16;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SIGNED_INT32;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SIGNED_INT8;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SNORM_INT16X1;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SNORM_INT16X2;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SNORM_INT16X4;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SNORM_INT8X1;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SNORM_INT8X2;
static PyObject *__pyx_n_s_CU_AD_FORMAT_SNORM_INT8X4;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNORM_INT16X1;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNORM_INT16X2;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNORM_INT16X4;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNORM_INT8X1;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNORM_INT8X2;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNORM_INT8X4;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT16;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT32;
static PyObject *__pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT8;
static PyObject *__pyx_n_s_CU_ARRAY_SPARSE_PROPERTIES_SINGL;
static PyObject *__pyx_n_s_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE;
static PyObject *__pyx_n_s_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_2;
static PyObject *__pyx_n_s_CU_COMPUTEMODE_DEFAULT;
static PyObject *__pyx_n_s_CU_COMPUTEMODE_EXCLUSIVE_PROCESS;
static PyObject *__pyx_n_s_CU_COMPUTEMODE_PROHIBITED;
static PyObject *__pyx_n_s_CU_CTX_BLOCKING_SYNC;
static PyObject *__pyx_n_s_CU_CTX_FLAGS_MASK;
static PyObject *__pyx_n_s_CU_CTX_LMEM_RESIZE_TO_MAX;
static PyObject *__pyx_n_s_CU_CTX_MAP_HOST;
static PyObject *__pyx_n_s_CU_CTX_SCHED_AUTO;
static PyObject *__pyx_n_s_CU_CTX_SCHED_BLOCKING_SYNC;
static PyObject *__pyx_n_s_CU_CTX_SCHED_MASK;
static PyObject *__pyx_n_s_CU_CTX_SCHED_SPIN;
static PyObject *__pyx_n_s_CU_CTX_SCHED_YIELD;
static PyObject *__pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_X;
static PyObject *__pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_Y;
static PyObject *__pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_Z;
static PyObject *__pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_X;
static PyObject *__pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_Y;
static PyObject *__pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_Z;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_RE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GA;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_64_B;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CLOCK_RATE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_PREE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CONCURRENT_K;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_CONCURRENT_M;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_COOPERATIVE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_COOPERATIVE_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_DIRECT_MANAG;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_ECC_ENABLED;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GENERIC_COMP;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CA;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMOR;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_4;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_HOST_NATIVE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_HOST_REGISTE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_INTEGRATED;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZ;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CAC;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MANAGED_MEMO;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_10;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_11;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_12;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_13;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_14;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_4;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_5;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_6;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_7;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_8;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_9;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_10;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_11;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_12;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_13;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_14;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_15;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_16;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_17;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_18;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_19;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_20;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_21;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_22;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_23;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_24;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_25;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_26;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_27;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_28;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_29;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_4;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_5;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_6;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_7;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_8;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_9;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_P;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_P;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_PERSISTI;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_PITCH;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_REGISTER;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_REGISTER_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_3;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_THREADS;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_THREADS_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPP;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTIPROCESS;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM_2;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_I;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_I;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_READ_ONLY_HO;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_REGISTERS_PE;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_RESERVED_SHA;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_SHARED_MEMOR;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DO;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_STREAM_PRIOR;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_SURFACE_ALIG;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_TCC_DRIVER;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIG;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_TEXTURE_PITC;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_TIMELINE_SEM;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTA;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDR;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDR;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMO;
static PyObject *__pyx_n_s_CU_DEVICE_ATTRIBUTE_WARP_SIZE;
static PyObject *__pyx_n_s_CU_DEVICE_CPU;
static PyObject *__pyx_n_s_CU_DEVICE_INVALID;
static PyObject *__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_A;
static PyObject *__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_S;
static PyObject *__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARR;
static PyObject *__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_A;
static PyObject *__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_PERFORMA;
static PyObject *__pyx_n_s_CU_EVENT_BLOCKING_SYNC;
static PyObject *__pyx_n_s_CU_EVENT_DEFAULT;
static PyObject *__pyx_n_s_CU_EVENT_DISABLE_TIMING;
static PyObject *__pyx_n_s_CU_EVENT_INTERPROCESS;
static PyObject *__pyx_n_s_CU_EVENT_RECORD_DEFAULT;
static PyObject *__pyx_n_s_CU_EVENT_RECORD_EXTERNAL;
static PyObject *__pyx_n_s_CU_EVENT_WAIT_DEFAULT;
static PyObject *__pyx_n_s_CU_EVENT_WAIT_EXTERNAL;
static PyObject *__pyx_n_s_CU_EXEC_AFFINITY_TYPE_MAX;
static PyObject *__pyx_n_s_CU_EXEC_AFFINITY_TYPE_SM_COUNT;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_2;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_3;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_4;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_N;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_2;
static PyObject *__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_3;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_10;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_2;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_3;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_4;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_5;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_6;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_7;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_8;
static PyObject *__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_9;
static PyObject *__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES;
static PyObject *__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_2;
static PyObject *__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_3;
static PyObject *__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_4;
static PyObject *__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_5;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_BINARY_VERSION;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYT;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYT;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_MAX;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SH;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_MAX_THREADS_PE;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_NUM_REGS;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_PREFERRED_SHAR;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_PTX_VERSION;
static PyObject *__pyx_n_s_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BY;
static PyObject *__pyx_n_s_CU_FUNC_CACHE_PREFER_EQUAL;
static PyObject *__pyx_n_s_CU_FUNC_CACHE_PREFER_L1;
static PyObject *__pyx_n_s_CU_FUNC_CACHE_PREFER_NONE;
static PyObject *__pyx_n_s_CU_FUNC_CACHE_PREFER_SHARED;
static PyObject *__pyx_n_s_CU_GET_PROC_ADDRESS_DEFAULT;
static PyObject *__pyx_n_s_CU_GET_PROC_ADDRESS_LEGACY_STREA;
static PyObject *__pyx_n_s_CU_GET_PROC_ADDRESS_PER_THREAD_D;
static PyObject *__pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI;
static PyObject *__pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_2;
static PyObject *__pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_3;
static PyObject *__pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_N;
static PyObject *__pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_R;
static PyObject *__pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_W;
static PyObject *__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_NONE;
static PyObject *__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_READ;
static PyObject *__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_SURFA;
static PyObject *__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_TEXTU;
static PyObject *__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_WRITE;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_N;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM_2;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NO;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_2;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALL;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FRE;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME;
static PyObject *__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCT;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_NODE;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_S;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_PARAM;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOL;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUP;
static PyObject *__pyx_n_s_CU_GRAPH_EXEC_UPDATE_SUCCESS;
static PyObject *__pyx_n_s_CU_GRAPH_MEM_ATTR_RESERVED_MEM_C;
static PyObject *__pyx_n_s_CU_GRAPH_MEM_ATTR_RESERVED_MEM_H;
static PyObject *__pyx_n_s_CU_GRAPH_MEM_ATTR_USED_MEM_CURRE;
static PyObject *__pyx_n_s_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_EMPTY;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_EVENT_RECORD;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIG;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAI;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_GRAPH;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_HOST;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_KERNEL;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_MEMCPY;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_MEMSET;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_MEM_ALLOC;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_MEM_FREE;
static PyObject *__pyx_n_s_CU_GRAPH_NODE_TYPE_WAIT_EVENT;
static PyObject *__pyx_n_s_CU_GRAPH_USER_OBJECT_MOVE;
static PyObject *__pyx_n_s_CU_IPC_HANDLE_SIZE;
static PyObject *__pyx_n_s_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCE;
static PyObject *__pyx_n_s_CU_JIT_CACHE_MODE;
static PyObject *__pyx_n_s_CU_JIT_CACHE_OPTION_CA;
static PyObject *__pyx_n_s_CU_JIT_CACHE_OPTION_CG;
static PyObject *__pyx_n_s_CU_JIT_CACHE_OPTION_NONE;
static PyObject *__pyx_n_s_CU_JIT_ERROR_LOG_BUFFER;
static PyObject *__pyx_n_s_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYT;
static PyObject *__pyx_n_s_CU_JIT_FALLBACK_STRATEGY;
static PyObject *__pyx_n_s_CU_JIT_FAST_COMPILE;
static PyObject *__pyx_n_s_CU_JIT_FMA;
static PyObject *__pyx_n_s_CU_JIT_FTZ;
static PyObject *__pyx_n_s_CU_JIT_GENERATE_DEBUG_INFO;
static PyObject *__pyx_n_s_CU_JIT_GENERATE_LINE_INFO;
static PyObject *__pyx_n_s_CU_JIT_GLOBAL_SYMBOL_ADDRESSES;
static PyObject *__pyx_n_s_CU_JIT_GLOBAL_SYMBOL_COUNT;
static PyObject *__pyx_n_s_CU_JIT_GLOBAL_SYMBOL_NAMES;
static PyObject *__pyx_n_s_CU_JIT_INFO_LOG_BUFFER;
static PyObject *__pyx_n_s_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTE;
static PyObject *__pyx_n_s_CU_JIT_INPUT_CUBIN;
static PyObject *__pyx_n_s_CU_JIT_INPUT_FATBINARY;
static PyObject *__pyx_n_s_CU_JIT_INPUT_LIBRARY;
static PyObject *__pyx_n_s_CU_JIT_INPUT_NVVM;
static PyObject *__pyx_n_s_CU_JIT_INPUT_OBJECT;
static PyObject *__pyx_n_s_CU_JIT_INPUT_PTX;
static PyObject *__pyx_n_s_CU_JIT_LOG_VERBOSE;
static PyObject *__pyx_n_s_CU_JIT_LTO;
static PyObject *__pyx_n_s_CU_JIT_MAX_REGISTERS;
static PyObject *__pyx_n_s_CU_JIT_NEW_SM3X_OPT;
static PyObject *__pyx_n_s_CU_JIT_NUM_INPUT_TYPES;
static PyObject *__pyx_n_s_CU_JIT_NUM_OPTIONS;
static PyObject *__pyx_n_s_CU_JIT_OPTIMIZATION_LEVEL;
static PyObject *__pyx_n_s_CU_JIT_PREC_DIV;
static PyObject *__pyx_n_s_CU_JIT_PREC_SQRT;
static PyObject *__pyx_n_s_CU_JIT_TARGET;
static PyObject *__pyx_n_s_CU_JIT_TARGET_FROM_CUCONTEXT;
static PyObject *__pyx_n_s_CU_JIT_THREADS_PER_BLOCK;
static PyObject *__pyx_n_s_CU_JIT_WALL_TIME;
static PyObject *__pyx_n_s_CU_KERNEL_NODE_ATTRIBUTE_ACCESS;
static PyObject *__pyx_n_s_CU_KERNEL_NODE_ATTRIBUTE_COOPERA;
static PyObject *__pyx_n_s_CU_LAUNCH_PARAM_BUFFER_POINTER;
static PyObject *__pyx_n_s_CU_LAUNCH_PARAM_BUFFER_SIZE;
static PyObject *__pyx_n_s_CU_LAUNCH_PARAM_END;
static PyObject *__pyx_n_s_CU_LIMIT_DEV_RUNTIME_PENDING_LAU;
static PyObject *__pyx_n_s_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH;
static PyObject *__pyx_n_s_CU_LIMIT_MALLOC_HEAP_SIZE;
static PyObject *__pyx_n_s_CU_LIMIT_MAX;
static PyObject *__pyx_n_s_CU_LIMIT_MAX_L2_FETCH_GRANULARIT;
static PyObject *__pyx_n_s_CU_LIMIT_PERSISTING_L2_CACHE_SIZ;
static PyObject *__pyx_n_s_CU_LIMIT_PRINTF_FIFO_SIZE;
static PyObject *__pyx_n_s_CU_LIMIT_STACK_SIZE;
static PyObject *__pyx_n_s_CU_MEMHOSTALLOC_DEVICEMAP;
static PyObject *__pyx_n_s_CU_MEMHOSTALLOC_PORTABLE;
static PyObject *__pyx_n_s_CU_MEMHOSTALLOC_WRITECOMBINED;
static PyObject *__pyx_n_s_CU_MEMHOSTREGISTER_DEVICEMAP;
static PyObject *__pyx_n_s_CU_MEMHOSTREGISTER_IOMEMORY;
static PyObject *__pyx_n_s_CU_MEMHOSTREGISTER_PORTABLE;
static PyObject *__pyx_n_s_CU_MEMHOSTREGISTER_READ_ONLY;
static PyObject *__pyx_n_s_CU_MEMORYTYPE_ARRAY;
static PyObject *__pyx_n_s_CU_MEMORYTYPE_DEVICE;
static PyObject *__pyx_n_s_CU_MEMORYTYPE_HOST;
static PyObject *__pyx_n_s_CU_MEMORYTYPE_UNIFIED;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_RELEASE_THRESHOL;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_RESERVED_MEM_CUR;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_RESERVED_MEM_HIG;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTE;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPO;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVE;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_USED_MEM_CURRENT;
static PyObject *__pyx_n_s_CU_MEMPOOL_ATTR_USED_MEM_HIGH;
static PyObject *__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_MAX;
static PyObject *__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_NONE;
static PyObject *__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_READ;
static PyObject *__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_READWRI;
static PyObject *__pyx_n_s_CU_MEM_ADVISE_SET_ACCESSED_BY;
static PyObject *__pyx_n_s_CU_MEM_ADVISE_SET_PREFERRED_LOCA;
static PyObject *__pyx_n_s_CU_MEM_ADVISE_SET_READ_MOSTLY;
static PyObject *__pyx_n_s_CU_MEM_ADVISE_UNSET_ACCESSED_BY;
static PyObject *__pyx_n_s_CU_MEM_ADVISE_UNSET_PREFERRED_LO;
static PyObject *__pyx_n_s_CU_MEM_ADVISE_UNSET_READ_MOSTLY;
static PyObject *__pyx_n_s_CU_MEM_ALLOCATION_COMP_GENERIC;
static PyObject *__pyx_n_s_CU_MEM_ALLOCATION_COMP_NONE;
static PyObject *__pyx_n_s_CU_MEM_ALLOCATION_TYPE_INVALID;
static PyObject *__pyx_n_s_CU_MEM_ALLOCATION_TYPE_MAX;
static PyObject *__pyx_n_s_CU_MEM_ALLOCATION_TYPE_PINNED;
static PyObject *__pyx_n_s_CU_MEM_ALLOC_GRANULARITY_MINIMUM;
static PyObject *__pyx_n_s_CU_MEM_ALLOC_GRANULARITY_RECOMME;
static PyObject *__pyx_n_s_CU_MEM_ATTACH_GLOBAL;
static PyObject *__pyx_n_s_CU_MEM_ATTACH_HOST;
static PyObject *__pyx_n_s_CU_MEM_ATTACH_SINGLE;
static PyObject *__pyx_n_s_CU_MEM_CREATE_USAGE_TILE_POOL;
static PyObject *__pyx_n_s_CU_MEM_HANDLE_TYPE_GENERIC;
static PyObject *__pyx_n_s_CU_MEM_HANDLE_TYPE_MAX;
static PyObject *__pyx_n_s_CU_MEM_HANDLE_TYPE_NONE;
static PyObject *__pyx_n_s_CU_MEM_HANDLE_TYPE_POSIX_FILE_DE;
static PyObject *__pyx_n_s_CU_MEM_HANDLE_TYPE_WIN32;
static PyObject *__pyx_n_s_CU_MEM_HANDLE_TYPE_WIN32_KMT;
static PyObject *__pyx_n_s_CU_MEM_LOCATION_TYPE_DEVICE;
static PyObject *__pyx_n_s_CU_MEM_LOCATION_TYPE_INVALID;
static PyObject *__pyx_n_s_CU_MEM_LOCATION_TYPE_MAX;
static PyObject *__pyx_n_s_CU_MEM_OPERATION_TYPE_MAP;
static PyObject *__pyx_n_s_CU_MEM_OPERATION_TYPE_UNMAP;
static PyObject *__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_ACCESSED;
static PyObject *__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_LAST_PREF;
static PyObject *__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_PREFERRED;
static PyObject *__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_READ_MOST;
static PyObject *__pyx_n_s_CU_OCCUPANCY_DEFAULT;
static PyObject *__pyx_n_s_CU_OCCUPANCY_DISABLE_CACHING_OVE;
static PyObject *__pyx_n_s_CU_PARAM_TR_DEFAULT;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_2;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_3;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_4;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_ALLOWED_HAN;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_BUFFER_ID;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_CONTEXT;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_DEVICE_ORDI;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_DEVICE_POIN;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_HOST_POINTE;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_IS_GPU_DIRE;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_IS_LEGACY_C;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_IS_MANAGED;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_MAPPED;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_MEMORY_TYPE;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_MEMPOOL_HAN;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_P2P_TOKENS;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_RANGE_SIZE;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_RANGE_START;
static PyObject *__pyx_n_s_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS;
static PyObject *__pyx_n_s_CU_PREFER_BINARY;
static PyObject *__pyx_n_s_CU_PREFER_PTX;
static PyObject *__pyx_n_s_CU_RESOURCE_TYPE_ARRAY;
static PyObject *__pyx_n_s_CU_RESOURCE_TYPE_LINEAR;
static PyObject *__pyx_n_s_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY;
static PyObject *__pyx_n_s_CU_RESOURCE_TYPE_PITCH2D;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_1X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_1X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_2X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_2X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_4X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_4X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_NONE;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC4;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC5;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC6H;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X8;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X8;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X8;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X8;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X8;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X16;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X32;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X8;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC1;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC2;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC3;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC4;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC5;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H;
static PyObject *__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC7;
static PyObject *__pyx_n_s_CU_SHAREDMEM_CARVEOUT_DEFAULT;
static PyObject *__pyx_n_s_CU_SHAREDMEM_CARVEOUT_MAX_L1;
static PyObject *__pyx_n_s_CU_SHAREDMEM_CARVEOUT_MAX_SHARED;
static PyObject *__pyx_n_s_CU_SHARED_MEM_CONFIG_DEFAULT_BAN;
static PyObject *__pyx_n_s_CU_SHARED_MEM_CONFIG_EIGHT_BYTE;
static PyObject *__pyx_n_s_CU_SHARED_MEM_CONFIG_FOUR_BYTE_B;
static PyObject *__pyx_n_s_CU_STREAM_ADD_CAPTURE_DEPENDENCI;
static PyObject *__pyx_n_s_CU_STREAM_ATTRIBUTE_ACCESS_POLIC;
static PyObject *__pyx_n_s_CU_STREAM_ATTRIBUTE_SYNCHRONIZAT;
static PyObject *__pyx_n_s_CU_STREAM_CAPTURE_MODE_GLOBAL;
static PyObject *__pyx_n_s_CU_STREAM_CAPTURE_MODE_RELAXED;
static PyObject *__pyx_n_s_CU_STREAM_CAPTURE_MODE_THREAD_LO;
static PyObject *__pyx_n_s_CU_STREAM_CAPTURE_STATUS_ACTIVE;
static PyObject *__pyx_n_s_CU_STREAM_CAPTURE_STATUS_INVALID;
static PyObject *__pyx_n_s_CU_STREAM_CAPTURE_STATUS_NONE;
static PyObject *__pyx_n_s_CU_STREAM_DEFAULT;
static PyObject *__pyx_n_s_CU_STREAM_LEGACY;
static PyObject *__pyx_n_s_CU_STREAM_MEM_OP_FLUSH_REMOTE_WR;
static PyObject *__pyx_n_s_CU_STREAM_MEM_OP_WAIT_VALUE_32;
static PyObject *__pyx_n_s_CU_STREAM_MEM_OP_WAIT_VALUE_64;
static PyObject *__pyx_n_s_CU_STREAM_MEM_OP_WRITE_VALUE_32;
static PyObject *__pyx_n_s_CU_STREAM_MEM_OP_WRITE_VALUE_64;
static PyObject *__pyx_n_s_CU_STREAM_NON_BLOCKING;
static PyObject *__pyx_n_s_CU_STREAM_PER_THREAD;
static PyObject *__pyx_n_s_CU_STREAM_SET_CAPTURE_DEPENDENCI;
static PyObject *__pyx_n_s_CU_STREAM_WAIT_VALUE_AND;
static PyObject *__pyx_n_s_CU_STREAM_WAIT_VALUE_EQ;
static PyObject *__pyx_n_s_CU_STREAM_WAIT_VALUE_FLUSH;
static PyObject *__pyx_n_s_CU_STREAM_WAIT_VALUE_GEQ;
static PyObject *__pyx_n_s_CU_STREAM_WAIT_VALUE_NOR;
static PyObject *__pyx_n_s_CU_STREAM_WRITE_VALUE_DEFAULT;
static PyObject *__pyx_n_s_CU_STREAM_WRITE_VALUE_NO_MEMORY;
static PyObject *__pyx_n_s_CU_SYNC_POLICY_AUTO;
static PyObject *__pyx_n_s_CU_SYNC_POLICY_BLOCKING_SYNC;
static PyObject *__pyx_n_s_CU_SYNC_POLICY_SPIN;
static PyObject *__pyx_n_s_CU_SYNC_POLICY_YIELD;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_20;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_21;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_30;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_32;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_35;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_37;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_50;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_52;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_53;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_60;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_61;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_62;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_70;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_72;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_75;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_80;
static PyObject *__pyx_n_s_CU_TARGET_COMPUTE_86;
static PyObject *__pyx_n_s_CU_TRSA_OVERRIDE_FORMAT;
static PyObject *__pyx_n_s_CU_TRSF_DISABLE_TRILINEAR_OPTIMI;
static PyObject *__pyx_n_s_CU_TRSF_NORMALIZED_COORDINATES;
static PyObject *__pyx_n_s_CU_TRSF_READ_AS_INTEGER;
static PyObject *__pyx_n_s_CU_TRSF_SRGB;
static PyObject *__pyx_n_s_CU_TR_ADDRESS_MODE_BORDER;
static PyObject *__pyx_n_s_CU_TR_ADDRESS_MODE_CLAMP;
static PyObject *__pyx_n_s_CU_TR_ADDRESS_MODE_MIRROR;
static PyObject *__pyx_n_s_CU_TR_ADDRESS_MODE_WRAP;
static PyObject *__pyx_n_s_CU_TR_FILTER_MODE_LINEAR;
static PyObject *__pyx_n_s_CU_TR_FILTER_MODE_POINT;
static PyObject *__pyx_n_s_CU_USER_OBJECT_NO_DESTRUCTOR_SYN;
static PyObject *__pyx_n_s_CUaccessPolicyWindow;
static PyObject *__pyx_n_s_CUaccessPolicyWindow_st;
static PyObject *__pyx_n_s_CUaccessPolicyWindow_st___reduce;
static PyObject *__pyx_n_s_CUaccessPolicyWindow_st___setsta;
static PyObject *__pyx_n_s_CUaccessPolicyWindow_st_getPtr;
static PyObject *__pyx_n_s_CUaccessPolicyWindow_v1;
static PyObject *__pyx_n_s_CUaccessProperty;
static PyObject *__pyx_n_s_CUaddress_mode;
static PyObject *__pyx_kp_u_CUarray;
static PyObject *__pyx_n_s_CUarrayMapInfo;
static PyObject *__pyx_n_s_CUarrayMapInfo_st;
static PyObject *__pyx_n_s_CUarrayMapInfo_st___reduce_cytho;
static PyObject *__pyx_n_s_CUarrayMapInfo_st___setstate_cyt;
static PyObject *__pyx_n_s_CUarrayMapInfo_st_getPtr;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_10;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_11;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_12;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_13;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_14;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_15;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_16;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_17;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_18;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_19;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_2;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_20;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_3;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_4;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_5;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_6;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_7;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_8;
static PyObject *__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_9;
static PyObject *__pyx_n_s_CUarraySparseSubresourceType;
static PyObject *__pyx_n_s_CUarray_2;
static PyObject *__pyx_n_u_CUarray_2;
static PyObject *__pyx_n_s_CUarray___reduce_cython;
static PyObject *__pyx_n_s_CUarray___setstate_cython;
static PyObject *__pyx_n_s_CUarray_cubemap_face;
static PyObject *__pyx_n_s_CUarray_format;
static PyObject *__pyx_n_s_CUarray_getPtr;
static PyObject *__pyx_n_s_CUcomputemode;
static PyObject *__pyx_kp_u_CUcontext;
static PyObject *__pyx_n_s_CUcontext_2;
static PyObject *__pyx_n_u_CUcontext_2;
static PyObject *__pyx_n_s_CUcontext___reduce_cython;
static PyObject *__pyx_n_s_CUcontext___setstate_cython;
static PyObject *__pyx_n_s_CUcontext_getPtr;
static PyObject *__pyx_n_s_CUctx_flags;
static PyObject *__pyx_kp_u_CUdevice;
static PyObject *__pyx_n_s_CUdevice_2;
static PyObject *__pyx_n_u_CUdevice_2;
static PyObject *__pyx_n_s_CUdevice_P2PAttribute;
static PyObject *__pyx_n_s_CUdevice___reduce_cython;
static PyObject *__pyx_n_s_CUdevice___setstate_cython;
static PyObject *__pyx_n_s_CUdevice_attribute;
static PyObject *__pyx_n_s_CUdevice_getPtr;
static PyObject *__pyx_kp_u_CUdevice_v1;
static PyObject *__pyx_n_s_CUdevice_v1_2;
static PyObject *__pyx_n_s_CUdevice_v1___reduce_cython;
static PyObject *__pyx_n_s_CUdevice_v1___setstate_cython;
static PyObject *__pyx_n_s_CUdevice_v1_getPtr;
static PyObject *__pyx_kp_u_CUdeviceptr;
static PyObject *__pyx_n_s_CUdeviceptr_2;
static PyObject *__pyx_n_u_CUdeviceptr_2;
static PyObject *__pyx_n_s_CUdeviceptr___reduce_cython;
static PyObject *__pyx_n_s_CUdeviceptr___setstate_cython;
static PyObject *__pyx_n_s_CUdeviceptr_getPtr;
static PyObject *__pyx_kp_u_CUdeviceptr_v2;
static PyObject *__pyx_n_s_CUdeviceptr_v2_2;
static PyObject *__pyx_n_s_CUdeviceptr_v2___reduce_cython;
static PyObject *__pyx_n_s_CUdeviceptr_v2___setstate_cython;
static PyObject *__pyx_n_s_CUdeviceptr_v2_getPtr;
static PyObject *__pyx_n_s_CUdevprop;
static PyObject *__pyx_n_s_CUdevprop_st;
static PyObject *__pyx_n_s_CUdevprop_st___reduce_cython;
static PyObject *__pyx_n_s_CUdevprop_st___setstate_cython;
static PyObject *__pyx_n_s_CUdevprop_st_getPtr;
static PyObject *__pyx_n_s_CUdevprop_v1;
static PyObject *__pyx_n_s_CUdriverProcAddress_flags;
static PyObject *__pyx_kp_u_CUevent;
static PyObject *__pyx_n_s_CUevent_2;
static PyObject *__pyx_n_u_CUevent_2;
static PyObject *__pyx_n_s_CUevent___reduce_cython;
static PyObject *__pyx_n_s_CUevent___setstate_cython;
static PyObject *__pyx_n_s_CUevent_flags;
static PyObject *__pyx_n_s_CUevent_getPtr;
static PyObject *__pyx_n_s_CUevent_record_flags;
static PyObject *__pyx_n_s_CUevent_wait_flags;
static PyObject *__pyx_n_s_CUexecAffinityParam;
static PyObject *__pyx_n_s_CUexecAffinityParam_st;
static PyObject *__pyx_n_s_CUexecAffinityParam_st___reduce;
static PyObject *__pyx_n_s_CUexecAffinityParam_st___setstat;
static PyObject *__pyx_n_s_CUexecAffinityParam_st_getPtr;
static PyObject *__pyx_n_s_CUexecAffinityParam_v1;
static PyObject *__pyx_n_s_CUexecAffinityParam_v1_CUexecAf;
static PyObject *__pyx_n_s_CUexecAffinityParam_v1_CUexecAf_2;
static PyObject *__pyx_n_s_CUexecAffinityParam_v1_CUexecAf_3;
static PyObject *__pyx_n_s_CUexecAffinityParam_v1_CUexecAf_4;
static PyObject *__pyx_n_s_CUexecAffinitySmCount;
static PyObject *__pyx_n_s_CUexecAffinitySmCount_st;
static PyObject *__pyx_n_s_CUexecAffinitySmCount_st___reduc;
static PyObject *__pyx_n_s_CUexecAffinitySmCount_st___setst;
static PyObject *__pyx_n_s_CUexecAffinitySmCount_st_getPtr;
static PyObject *__pyx_n_s_CUexecAffinitySmCount_v1;
static PyObject *__pyx_n_s_CUexecAffinityType;
static PyObject *__pyx_kp_u_CUexternalMemory;
static PyObject *__pyx_n_s_CUexternalMemoryHandleType;
static PyObject *__pyx_n_s_CUexternalMemory_2;
static PyObject *__pyx_n_u_CUexternalMemory_2;
static PyObject *__pyx_n_s_CUexternalMemory___reduce_cython;
static PyObject *__pyx_n_s_CUexternalMemory___setstate_cyth;
static PyObject *__pyx_n_s_CUexternalMemory_getPtr;
static PyObject *__pyx_kp_u_CUexternalSemaphore;
static PyObject *__pyx_n_s_CUexternalSemaphoreHandleType;
static PyObject *__pyx_n_s_CUexternalSemaphore_2;
static PyObject *__pyx_n_u_CUexternalSemaphore_2;
static PyObject *__pyx_n_s_CUexternalSemaphore___reduce_cyt;
static PyObject *__pyx_n_s_CUexternalSemaphore___setstate_c;
static PyObject *__pyx_n_s_CUexternalSemaphore_getPtr;
static PyObject *__pyx_n_s_CUfilter_mode;
static PyObject *__pyx_n_s_CUflushGPUDirectRDMAWritesOption;
static PyObject *__pyx_n_s_CUflushGPUDirectRDMAWritesScope;
static PyObject *__pyx_n_s_CUflushGPUDirectRDMAWritesTarget;
static PyObject *__pyx_n_s_CUfunc_cache;
static PyObject *__pyx_kp_u_CUfunction;
static PyObject *__pyx_n_s_CUfunction_2;
static PyObject *__pyx_n_u_CUfunction_2;
static PyObject *__pyx_n_s_CUfunction___reduce_cython;
static PyObject *__pyx_n_s_CUfunction___setstate_cython;
static PyObject *__pyx_n_s_CUfunction_attribute;
static PyObject *__pyx_n_s_CUfunction_getPtr;
static PyObject *__pyx_kp_u_CUgraph;
static PyObject *__pyx_n_s_CUgraphDebugDot_flags;
static PyObject *__pyx_kp_u_CUgraphExec;
static PyObject *__pyx_n_s_CUgraphExecUpdateResult;
static PyObject *__pyx_n_s_CUgraphExec_2;
static PyObject *__pyx_n_u_CUgraphExec_2;
static PyObject *__pyx_n_s_CUgraphExec___reduce_cython;
static PyObject *__pyx_n_s_CUgraphExec___setstate_cython;
static PyObject *__pyx_n_s_CUgraphExec_getPtr;
static PyObject *__pyx_n_s_CUgraphInstantiate_flags;
static PyObject *__pyx_n_s_CUgraphMem_attribute;
static PyObject *__pyx_kp_u_CUgraphNode;
static PyObject *__pyx_n_s_CUgraphNodeType;
static PyObject *__pyx_n_s_CUgraphNode_2;
static PyObject *__pyx_n_u_CUgraphNode_2;
static PyObject *__pyx_n_s_CUgraphNode___reduce_cython;
static PyObject *__pyx_n_s_CUgraphNode___setstate_cython;
static PyObject *__pyx_n_s_CUgraphNode_getPtr;
static PyObject *__pyx_n_s_CUgraph_2;
static PyObject *__pyx_n_u_CUgraph_2;
static PyObject *__pyx_n_s_CUgraph___reduce_cython;
static PyObject *__pyx_n_s_CUgraph___setstate_cython;
static PyObject *__pyx_n_s_CUgraph_getPtr;
static PyObject *__pyx_n_s_CUgraphicsMapResourceFlags;
static PyObject *__pyx_n_s_CUgraphicsRegisterFlags;
static PyObject *__pyx_kp_u_CUgraphicsResource;
static PyObject *__pyx_n_s_CUgraphicsResource_2;
static PyObject *__pyx_n_u_CUgraphicsResource_2;
static PyObject *__pyx_n_s_CUgraphicsResource___reduce_cyth;
static PyObject *__pyx_n_s_CUgraphicsResource___setstate_cy;
static PyObject *__pyx_n_s_CUgraphicsResource_getPtr;
static PyObject *__pyx_kp_u_CUhostFn;
static PyObject *__pyx_n_s_CUhostFn_2;
static PyObject *__pyx_n_u_CUhostFn_2;
static PyObject *__pyx_n_s_CUhostFn___reduce_cython;
static PyObject *__pyx_n_s_CUhostFn___setstate_cython;
static PyObject *__pyx_n_s_CUhostFn_getPtr;
static PyObject *__pyx_n_s_CUipcEventHandle;
static PyObject *__pyx_n_u_CUipcEventHandle;
static PyObject *__pyx_n_s_CUipcEventHandle_st;
static PyObject *__pyx_n_s_CUipcEventHandle_st___reduce_cyt;
static PyObject *__pyx_n_s_CUipcEventHandle_st___setstate_c;
static PyObject *__pyx_n_s_CUipcEventHandle_st_getPtr;
static PyObject *__pyx_n_s_CUipcEventHandle_v1;
static PyObject *__pyx_n_s_CUipcMemHandle;
static PyObject *__pyx_n_u_CUipcMemHandle;
static PyObject *__pyx_n_s_CUipcMemHandle_st;
static PyObject *__pyx_n_s_CUipcMemHandle_st___reduce_cytho;
static PyObject *__pyx_n_s_CUipcMemHandle_st___setstate_cyt;
static PyObject *__pyx_n_s_CUipcMemHandle_st_getPtr;
static PyObject *__pyx_n_s_CUipcMemHandle_v1;
static PyObject *__pyx_n_s_CUipcMem_flags;
static PyObject *__pyx_n_s_CUjitInputType;
static PyObject *__pyx_n_s_CUjit_cacheMode;
static PyObject *__pyx_n_s_CUjit_fallback;
static PyObject *__pyx_n_s_CUjit_option;
static PyObject *__pyx_n_s_CUjit_target;
static PyObject *__pyx_n_s_CUkernelNodeAttrID;
static PyObject *__pyx_n_s_CUkernelNodeAttrValue;
static PyObject *__pyx_n_u_CUkernelNodeAttrValue;
static PyObject *__pyx_n_s_CUkernelNodeAttrValue_union;
static PyObject *__pyx_n_s_CUkernelNodeAttrValue_union___re;
static PyObject *__pyx_n_s_CUkernelNodeAttrValue_union___se;
static PyObject *__pyx_n_s_CUkernelNodeAttrValue_union_getP;
static PyObject *__pyx_n_s_CUkernelNodeAttrValue_v1;
static PyObject *__pyx_n_s_CUlimit;
static PyObject *__pyx_kp_u_CUlinkState;
static PyObject *__pyx_n_s_CUlinkState_2;
static PyObject *__pyx_n_u_CUlinkState_2;
static PyObject *__pyx_n_s_CUlinkState___reduce_cython;
static PyObject *__pyx_n_s_CUlinkState___setstate_cython;
static PyObject *__pyx_n_s_CUlinkState_getPtr;
static PyObject *__pyx_n_s_CUmemAccessDesc;
static PyObject *__pyx_n_s_CUmemAccessDesc_st;
static PyObject *__pyx_n_s_CUmemAccessDesc_st___reduce_cyth;
static PyObject *__pyx_n_s_CUmemAccessDesc_st___setstate_cy;
static PyObject *__pyx_n_s_CUmemAccessDesc_st_getPtr;
static PyObject *__pyx_n_s_CUmemAccessDesc_v1;
static PyObject *__pyx_n_s_CUmemAccess_flags;
static PyObject *__pyx_n_s_CUmemAllocationCompType;
static PyObject *__pyx_n_s_CUmemAllocationGranularity_flags;
static PyObject *__pyx_n_s_CUmemAllocationHandleType;
static PyObject *__pyx_n_s_CUmemAllocationProp;
static PyObject *__pyx_n_u_CUmemAllocationProp;
static PyObject *__pyx_n_s_CUmemAllocationProp_st;
static PyObject *__pyx_n_s_CUmemAllocationProp_st___reduce;
static PyObject *__pyx_n_s_CUmemAllocationProp_st___setstat;
static PyObject *__pyx_n_s_CUmemAllocationProp_st_getPtr;
static PyObject *__pyx_n_s_CUmemAllocationProp_v1;
static PyObject *__pyx_n_s_CUmemAllocationProp_v1_CUmemAll;
static PyObject *__pyx_n_s_CUmemAllocationProp_v1_CUmemAll_2;
static PyObject *__pyx_n_s_CUmemAllocationProp_v1_CUmemAll_3;
static PyObject *__pyx_n_s_CUmemAllocationProp_v1_CUmemAll_4;
static PyObject *__pyx_n_s_CUmemAllocationType;
static PyObject *__pyx_n_s_CUmemAttach_flags;
static PyObject *__pyx_kp_u_CUmemGenericAllocationHandle;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle_2;
static PyObject *__pyx_n_u_CUmemGenericAllocationHandle_2;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle___r;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle___s;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle_get;
static PyObject *__pyx_kp_u_CUmemGenericAllocationHandle_v1;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle_v1_2;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle_v1_3;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle_v1_4;
static PyObject *__pyx_n_s_CUmemGenericAllocationHandle_v1_5;
static PyObject *__pyx_n_s_CUmemHandleType;
static PyObject *__pyx_n_s_CUmemLocation;
static PyObject *__pyx_n_u_CUmemLocation;
static PyObject *__pyx_n_s_CUmemLocationType;
static PyObject *__pyx_n_s_CUmemLocation_st;
static PyObject *__pyx_n_s_CUmemLocation_st___reduce_cython;
static PyObject *__pyx_n_s_CUmemLocation_st___setstate_cyth;
static PyObject *__pyx_n_s_CUmemLocation_st_getPtr;
static PyObject *__pyx_n_s_CUmemLocation_v1;
static PyObject *__pyx_n_s_CUmemOperationType;
static PyObject *__pyx_n_s_CUmemPoolProps;
static PyObject *__pyx_n_u_CUmemPoolProps;
static PyObject *__pyx_n_s_CUmemPoolProps_st;
static PyObject *__pyx_n_s_CUmemPoolProps_st___reduce_cytho;
static PyObject *__pyx_n_s_CUmemPoolProps_st___setstate_cyt;
static PyObject *__pyx_n_s_CUmemPoolProps_st_getPtr;
static PyObject *__pyx_n_s_CUmemPoolProps_v1;
static PyObject *__pyx_n_s_CUmemPoolPtrExportData;
static PyObject *__pyx_n_u_CUmemPoolPtrExportData;
static PyObject *__pyx_n_s_CUmemPoolPtrExportData_st;
static PyObject *__pyx_n_s_CUmemPoolPtrExportData_st___redu;
static PyObject *__pyx_n_s_CUmemPoolPtrExportData_st___sets;
static PyObject *__pyx_n_s_CUmemPoolPtrExportData_st_getPtr;
static PyObject *__pyx_n_s_CUmemPoolPtrExportData_v1;
static PyObject *__pyx_n_s_CUmemPool_attribute;
static PyObject *__pyx_n_s_CUmem_advise;
static PyObject *__pyx_n_s_CUmem_range_attribute;
static PyObject *__pyx_kp_u_CUmemoryPool;
static PyObject *__pyx_n_s_CUmemoryPool_2;
static PyObject *__pyx_n_u_CUmemoryPool_2;
static PyObject *__pyx_n_s_CUmemoryPool___reduce_cython;
static PyObject *__pyx_n_s_CUmemoryPool___setstate_cython;
static PyObject *__pyx_n_s_CUmemoryPool_getPtr;
static PyObject *__pyx_n_s_CUmemorytype;
static PyObject *__pyx_kp_u_CUmipmappedArray;
static PyObject *__pyx_n_s_CUmipmappedArray_2;
static PyObject *__pyx_n_u_CUmipmappedArray_2;
static PyObject *__pyx_n_s_CUmipmappedArray___reduce_cython;
static PyObject *__pyx_n_s_CUmipmappedArray___setstate_cyth;
static PyObject *__pyx_n_s_CUmipmappedArray_getPtr;
static PyObject *__pyx_kp_u_CUmodule;
static PyObject *__pyx_n_s_CUmodule_2;
static PyObject *__pyx_n_u_CUmodule_2;
static PyObject *__pyx_n_s_CUmodule___reduce_cython;
static PyObject *__pyx_n_s_CUmodule___setstate_cython;
static PyObject *__pyx_n_s_CUmodule_getPtr;
static PyObject *__pyx_kp_u_CUoccupancyB2DSize;
static PyObject *__pyx_n_s_CUoccupancyB2DSize_2;
static PyObject *__pyx_n_u_CUoccupancyB2DSize_2;
static PyObject *__pyx_n_s_CUoccupancyB2DSize___reduce_cyth;
static PyObject *__pyx_n_s_CUoccupancyB2DSize___setstate_cy;
static PyObject *__pyx_n_s_CUoccupancyB2DSize_getPtr;
static PyObject *__pyx_n_s_CUoccupancy_flags;
static PyObject *__pyx_n_s_CUpointer_attribute;
static PyObject *__pyx_n_s_CUresourceViewFormat;
static PyObject *__pyx_n_s_CUresourcetype;
static PyObject *__pyx_n_s_CUresult;
static PyObject *__pyx_n_s_CUshared_carveout;
static PyObject *__pyx_n_s_CUsharedconfig;
static PyObject *__pyx_kp_u_CUstream;
static PyObject *__pyx_n_s_CUstreamAttrID;
static PyObject *__pyx_n_s_CUstreamAttrValue;
static PyObject *__pyx_n_u_CUstreamAttrValue;
static PyObject *__pyx_n_s_CUstreamAttrValue_union;
static PyObject *__pyx_n_s_CUstreamAttrValue_union___reduce;
static PyObject *__pyx_n_s_CUstreamAttrValue_union___setsta;
static PyObject *__pyx_n_s_CUstreamAttrValue_union_getPtr;
static PyObject *__pyx_n_s_CUstreamAttrValue_v1;
static PyObject *__pyx_n_s_CUstreamBatchMemOpParams;
static PyObject *__pyx_n_s_CUstreamBatchMemOpParams_union;
static PyObject *__pyx_n_s_CUstreamBatchMemOpParams_union_2;
static PyObject *__pyx_n_s_CUstreamBatchMemOpParams_union_3;
static PyObject *__pyx_n_s_CUstreamBatchMemOpParams_union_g;
static PyObject *__pyx_n_s_CUstreamBatchMemOpParams_v1;
static PyObject *__pyx_n_s_CUstreamBatchMemOpType;
static PyObject *__pyx_kp_u_CUstreamCallback;
static PyObject *__pyx_n_s_CUstreamCallback_2;
static PyObject *__pyx_n_u_CUstreamCallback_2;
static PyObject *__pyx_n_s_CUstreamCallback___reduce_cython;
static PyObject *__pyx_n_s_CUstreamCallback___setstate_cyth;
static PyObject *__pyx_n_s_CUstreamCallback_getPtr;
static PyObject *__pyx_n_s_CUstreamCaptureMode;
static PyObject *__pyx_n_s_CUstreamCaptureStatus;
static PyObject *__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa;
static PyObject *__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_2;
static PyObject *__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_3;
static PyObject *__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_4;
static PyObject *__pyx_n_s_CUstreamMemOpWaitValueParams_st;
static PyObject *__pyx_n_s_CUstreamMemOpWaitValueParams_st_2;
static PyObject *__pyx_n_s_CUstreamMemOpWaitValueParams_st_3;
static PyObject *__pyx_n_s_CUstreamMemOpWaitValueParams_st_4;
static PyObject *__pyx_n_s_CUstreamMemOpWriteValueParams_st;
static PyObject *__pyx_n_s_CUstreamMemOpWriteValueParams_st_2;
static PyObject *__pyx_n_s_CUstreamMemOpWriteValueParams_st_3;
static PyObject *__pyx_n_s_CUstreamMemOpWriteValueParams_st_4;
static PyObject *__pyx_n_s_CUstreamUpdateCaptureDependencie;
static PyObject *__pyx_n_s_CUstreamWaitValue_flags;
static PyObject *__pyx_n_s_CUstreamWriteValue_flags;
static PyObject *__pyx_n_s_CUstream_2;
static PyObject *__pyx_n_u_CUstream_2;
static PyObject *__pyx_n_s_CUstream___reduce_cython;
static PyObject *__pyx_n_s_CUstream___setstate_cython;
static PyObject *__pyx_n_s_CUstream_flags;
static PyObject *__pyx_n_s_CUstream_getPtr;
static PyObject *__pyx_kp_u_CUsurfObject;
static PyObject *__pyx_n_s_CUsurfObject_2;
static PyObject *__pyx_n_u_CUsurfObject_2;
static PyObject *__pyx_n_s_CUsurfObject___reduce_cython;
static PyObject *__pyx_n_s_CUsurfObject___setstate_cython;
static PyObject *__pyx_n_s_CUsurfObject_getPtr;
static PyObject *__pyx_kp_u_CUsurfObject_v1;
static PyObject *__pyx_n_s_CUsurfObject_v1_2;
static PyObject *__pyx_n_s_CUsurfObject_v1___reduce_cython;
static PyObject *__pyx_n_s_CUsurfObject_v1___setstate_cytho;
static PyObject *__pyx_n_s_CUsurfObject_v1_getPtr;
static PyObject *__pyx_kp_u_CUsurfref;
static PyObject *__pyx_n_s_CUsurfref_2;
static PyObject *__pyx_n_u_CUsurfref_2;
static PyObject *__pyx_n_s_CUsurfref___reduce_cython;
static PyObject *__pyx_n_s_CUsurfref___setstate_cython;
static PyObject *__pyx_n_s_CUsurfref_getPtr;
static PyObject *__pyx_n_s_CUsynchronizationPolicy;
static PyObject *__pyx_kp_u_CUtexObject;
static PyObject *__pyx_n_s_CUtexObject_2;
static PyObject *__pyx_n_u_CUtexObject_2;
static PyObject *__pyx_n_s_CUtexObject___reduce_cython;
static PyObject *__pyx_n_s_CUtexObject___setstate_cython;
static PyObject *__pyx_n_s_CUtexObject_getPtr;
static PyObject *__pyx_kp_u_CUtexObject_v1;
static PyObject *__pyx_n_s_CUtexObject_v1_2;
static PyObject *__pyx_n_s_CUtexObject_v1___reduce_cython;
static PyObject *__pyx_n_s_CUtexObject_v1___setstate_cython;
static PyObject *__pyx_n_s_CUtexObject_v1_getPtr;
static PyObject *__pyx_kp_u_CUtexref;
static PyObject *__pyx_n_s_CUtexref_2;
static PyObject *__pyx_n_u_CUtexref_2;
static PyObject *__pyx_n_s_CUtexref___reduce_cython;
static PyObject *__pyx_n_s_CUtexref___setstate_cython;
static PyObject *__pyx_n_s_CUtexref_getPtr;
static PyObject *__pyx_kp_u_CUuserObject;
static PyObject *__pyx_n_s_CUuserObjectRetain_flags;
static PyObject *__pyx_n_s_CUuserObject_2;
static PyObject *__pyx_n_u_CUuserObject_2;
static PyObject *__pyx_n_s_CUuserObject___reduce_cython;
static PyObject *__pyx_n_s_CUuserObject___setstate_cython;
static PyObject *__pyx_n_s_CUuserObject_flags;
static PyObject *__pyx_n_s_CUuserObject_getPtr;
static PyObject *__pyx_n_s_CUuuid;
static PyObject *__pyx_n_u_CUuuid;
static PyObject *__pyx_n_s_CUuuid_st;
static PyObject *__pyx_n_s_CUuuid_st___reduce_cython;
static PyObject *__pyx_n_s_CUuuid_st___setstate_cython;
static PyObject *__pyx_n_s_CUuuid_st_getPtr;
static PyObject *__pyx_kp_s_Caching_modes_for_dlcm;
static PyObject *__pyx_kp_s_Compute_Modes;
static PyObject *__pyx_kp_s_Context_creation_flags;
static PyObject *__pyx_kp_s_Cubin_matching_fallback_strateg;
static PyObject *__pyx_kp_s_Defines_the_allocation_types_av;
static PyObject *__pyx_kp_u_Depth;
static PyObject *__pyx_n_s_Depth_2;
static PyObject *__pyx_kp_s_Device_code_formats;
static PyObject *__pyx_kp_s_Device_properties;
static PyObject *__pyx_n_s_ElementSizeBytes;
static PyObject *__pyx_n_s_Enum;
static PyObject *__pyx_kp_s_Error_codes;
static PyObject *__pyx_kp_s_Event_creation_flags;
static PyObject *__pyx_kp_s_Event_record_flags;
static PyObject *__pyx_kp_s_Event_wait_flags;
static PyObject *__pyx_kp_s_Execution_Affinity_Types;
static PyObject *__pyx_kp_s_External_memory_handle_types;
static PyObject *__pyx_kp_s_External_semaphore_handle_types;
static PyObject *__pyx_kp_u_Failed_to_allocate_length_x_size;
static PyObject *__pyx_kp_u_Failed_to_allocate_length_x_size_2;
static PyObject *__pyx_kp_s_Flag_for_requesting_different_o;
static PyObject *__pyx_kp_u_Flags;
static PyObject *__pyx_n_s_Flags_2;
static PyObject *__pyx_kp_s_Flags_for_cuStreamUpdateCapture;
static PyObject *__pyx_kp_s_Flags_for_cuStreamWaitValue32_a;
static PyObject *__pyx_kp_s_Flags_for_cuStreamWriteValue32;
static PyObject *__pyx_kp_s_Flags_for_instantiating_a_graph;
static PyObject *__pyx_kp_s_Flags_for_mapping_and_unmapping;
static PyObject *__pyx_kp_s_Flags_for_retaining_user_object;
static PyObject *__pyx_kp_s_Flags_for_specifying_particular;
static PyObject *__pyx_kp_s_Flags_for_user_objects_for_grap;
static PyObject *__pyx_kp_s_Flags_to_register_a_graphics_re;
static PyObject *__pyx_kp_s_Flags_to_specify_search_options;
static PyObject *__pyx_kp_u_Format;
static PyObject *__pyx_n_s_Format_2;
static PyObject *__pyx_kp_s_Function_cache_configurations;
static PyObject *__pyx_kp_s_Function_properties;
static PyObject *__pyx_kp_s_Graph_kernel_node_Attributes;
static PyObject *__pyx_kp_s_Graph_node_types;
static PyObject *__pyx_kp_u_Height;
static PyObject *__pyx_n_s_Height_2;
static PyObject *__pyx_n_s_IndexError;
static PyObject *__pyx_kp_s_Limits;
static PyObject *__pyx_n_s_List;
static PyObject *__pyx_kp_u_List_is_too_small;
static PyObject *__pyx_n_s_MemoryError;
static PyObject *__pyx_kp_s_Memory_advise_values;
static PyObject *__pyx_kp_s_Memory_handle_types;
static PyObject *__pyx_kp_s_Memory_operation_types;
static PyObject *__pyx_kp_s_Memory_types;
static PyObject *__pyx_n_s_N;
static PyObject *__pyx_kp_u_NumChannels;
static PyObject *__pyx_n_s_NumChannels_2;
static PyObject *__pyx_n_s_NumPackedComponents;
static PyObject *__pyx_kp_s_Occupancy_calculator_flag;
static PyObject *__pyx_kp_s_Online_compilation_targets;
static PyObject *__pyx_kp_s_Online_compiler_and_linker_opti;
static PyObject *__pyx_kp_s_Operations_for_cuStreamBatchMem;
static PyObject *__pyx_n_s_OverflowError;
static PyObject *__pyx_kp_s_P2P_Attributes;
static PyObject *__pyx_n_s_Pitch;
static PyObject *__pyx_kp_s_Platform_native_ordering_for_GP;
static PyObject *__pyx_kp_s_Pointer_information;
static PyObject *__pyx_kp_s_Possible_modes_for_stream_captu;
static PyObject *__pyx_kp_s_Possible_stream_capture_statuse;
static PyObject *__pyx_kp_s_Resource_types;
static PyObject *__pyx_kp_s_Resource_view_format;
static PyObject *__pyx_n_s_RuntimeError;
static PyObject *__pyx_kp_u_SIMDWidth;
static PyObject *__pyx_n_s_SIMDWidth_2;
static PyObject *__pyx_kp_s_Shared_memory_carveout_configur;
static PyObject *__pyx_kp_s_Shared_memory_configurations;
static PyObject *__pyx_kp_s_Sparse_subresource_types;
static PyObject *__pyx_kp_s_Specifies_compression_attribute;
static PyObject *__pyx_kp_s_Specifies_performance_hint_with;
static PyObject *__pyx_kp_s_Specifies_the_memory_protection;
static PyObject *__pyx_kp_s_Specifies_the_type_of_location;
static PyObject *__pyx_kp_s_Stream_Attributes;
static PyObject *__pyx_kp_s_Stream_creation_flags;
static PyObject *__pyx_kp_s_Texture_reference_addressing_mo;
static PyObject *__pyx_kp_s_Texture_reference_filtering_mod;
static PyObject *__pyx_kp_s_The_additional_write_options_fo;
static PyObject *__pyx_kp_s_The_scopes_for_cuFlushGPUDirect;
static PyObject *__pyx_kp_s_The_targets_for_cuFlushGPUDirec;
static PyObject *__pyx_n_s_Tuple;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_kp_u_Unknown_type;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_kp_u_Width;
static PyObject *__pyx_kp_u_WidthInBytes;
static PyObject *__pyx_n_s_WidthInBytes_2;
static PyObject *__pyx_n_s_Width_2;
static PyObject *__pyx_kp_u__108;
static PyObject *__pyx_kp_u__109;
static PyObject *__pyx_kp_u__140;
static PyObject *__pyx_n_u__141;
static PyObject *__pyx_kp_u__564;
static PyObject *__pyx_kp_s__879;
static PyObject *__pyx_kp_u_accessDescCount;
static PyObject *__pyx_n_s_accessDescCount_2;
static PyObject *__pyx_kp_u_accessDescs;
static PyObject *__pyx_n_s_accessDescs_2;
static PyObject *__pyx_kp_u_accessPolicyWindow;
static PyObject *__pyx_n_s_accessPolicyWindow_2;
static PyObject *__pyx_n_s_active;
static PyObject *__pyx_n_s_addr;
static PyObject *__pyx_kp_u_address;
static PyObject *__pyx_kp_u_addressMode;
static PyObject *__pyx_n_s_addressMode_2;
static PyObject *__pyx_n_s_address_2;
static PyObject *__pyx_n_s_advice;
static PyObject *__pyx_kp_u_alias;
static PyObject *__pyx_n_s_alias_2;
static PyObject *__pyx_n_s_alignment;
static PyObject *__pyx_kp_u_allocFlags;
static PyObject *__pyx_n_s_allocFlags_2;
static PyObject *__pyx_kp_u_allocType;
static PyObject *__pyx_n_s_allocType_2;
static PyObject *__pyx_n_s_am;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_kp_u_array;
static PyObject *__pyx_kp_u_arrayDesc;
static PyObject *__pyx_n_s_arrayDesc_2;
static PyObject *__pyx_n_s_arrayIndex;
static PyObject *__pyx_n_s_array_2;
static PyObject *__pyx_kp_u_array_3;
static PyObject *__pyx_n_s_attr;
static PyObject *__pyx_n_s_attrib;
static PyObject *__pyx_n_s_attribute;
static PyObject *__pyx_n_s_attributes;
static PyObject *__pyx_kp_u_base_ptr;
static PyObject *__pyx_n_s_base_ptr_2;
static PyObject *__pyx_n_s_bias;
static PyObject *__pyx_kp_u_blockDimX;
static PyObject *__pyx_n_s_blockDimX_2;
static PyObject *__pyx_kp_u_blockDimY;
static PyObject *__pyx_n_s_blockDimY_2;
static PyObject *__pyx_kp_u_blockDimZ;
static PyObject *__pyx_n_s_blockDimZ_2;
static PyObject *__pyx_n_s_blockSize;
static PyObject *__pyx_n_s_blockSizeLimit;
static PyObject *__pyx_n_s_blockSizeToDynamicSMemSize;
static PyObject *__pyx_kp_u_borderColor;
static PyObject *__pyx_n_s_borderColor_2;
static PyObject *__pyx_n_s_bufferDesc;
static PyObject *__pyx_n_s_bufferSize;
static PyObject *__pyx_kp_u_bytes;
static PyObject *__pyx_n_s_bytes_2;
static PyObject *__pyx_kp_u_bytesize;
static PyObject *__pyx_n_s_bytesize_2;
static PyObject *__pyx_n_s_caddr;
static PyObject *__pyx_n_s_caddr_ptr;
static PyObject *__pyx_n_s_cadvice;
static PyObject *__pyx_n_s_callback;
static PyObject *__pyx_n_s_cam;
static PyObject *__pyx_n_s_canAccessPeer;
static PyObject *__pyx_n_s_captureStatus;
static PyObject *__pyx_n_s_captureStatus_out;
static PyObject *__pyx_n_s_cattr;
static PyObject *__pyx_n_s_cattrib;
static PyObject *__pyx_n_s_cattribute;
static PyObject *__pyx_n_s_cattributes;
static PyObject *__pyx_n_s_cbufferDesc_ptr;
static PyObject *__pyx_n_s_cconfig;
static PyObject *__pyx_n_s_ccopyParams_ptr;
static PyObject *__pyx_n_s_cdata;
static PyObject *__pyx_n_s_cdataSizes;
static PyObject *__pyx_n_s_cdata_ptr;
static PyObject *__pyx_n_s_cdependencies;
static PyObject *__pyx_n_s_cdependencies_out;
static PyObject *__pyx_n_s_cdependentNodes;
static PyObject *__pyx_n_s_cdesc;
static PyObject *__pyx_n_s_cdesc_ptr;
static PyObject *__pyx_n_s_cdstHost;
static PyObject *__pyx_n_s_cdstHost_ptr;
static PyObject *__pyx_n_s_cerror;
static PyObject *__pyx_n_s_cextSemArray;
static PyObject *__pyx_n_s_cfatCubin;
static PyObject *__pyx_n_s_cfatCubin_ptr;
static PyObject *__pyx_n_s_cfm;
static PyObject *__pyx_n_s_cfmt;
static PyObject *__pyx_n_s_cfrom;
static PyObject *__pyx_n_s_chandle;
static PyObject *__pyx_n_s_chandleType;
static PyObject *__pyx_n_s_chandle_out_ptr;
static PyObject *__pyx_n_s_chandle_ptr;
static PyObject *__pyx_n_s_childGraph;
static PyObject *__pyx_n_s_cimage;
static PyObject *__pyx_n_s_cimage_ptr;
static PyObject *__pyx_n_s_ckernelParams;
static PyObject *__pyx_n_s_claunchParamsList;
static PyObject *__pyx_n_s_climit;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_n_s_clocation_ptr;
static PyObject *__pyx_kp_u_clockRate;
static PyObject *__pyx_n_s_clockRate_2;
static PyObject *__pyx_n_s_close;
static PyObject *__pyx_n_s_cmap;
static PyObject *__pyx_n_s_cmapInfoList;
static PyObject *__pyx_n_s_cmemHandleDesc_ptr;
static PyObject *__pyx_n_s_cmemsetParams_ptr;
static PyObject *__pyx_n_s_cmipmapDesc_ptr;
static PyObject *__pyx_n_s_cmode;
static PyObject *__pyx_n_s_cnodeParams_ptr;
static PyObject *__pyx_n_s_cnodes;
static PyObject *__pyx_n_s_cnvSciSyncAttrList_ptr;
static PyObject *__pyx_kp_u_compressionType;
static PyObject *__pyx_n_s_compressionType_2;
static PyObject *__pyx_n_s_config;
static PyObject *__pyx_kp_u_cooperative;
static PyObject *__pyx_n_s_cooperative_2;
static PyObject *__pyx_n_s_coption;
static PyObject *__pyx_n_s_coptions;
static PyObject *__pyx_n_s_copyParams;
static PyObject *__pyx_n_s_cosHandle;
static PyObject *__pyx_n_s_cosHandle_ptr;
static PyObject *__pyx_n_s_count;
static PyObject *__pyx_n_s_cp;
static PyObject *__pyx_n_s_cpAllocateArray_ptr;
static PyObject *__pyx_n_s_cpCopy_ptr;
static PyObject *__pyx_n_s_cpExportTableId_ptr;
static PyObject *__pyx_n_s_cpMipmappedArrayDesc_ptr;
static PyObject *__pyx_n_s_cpResDesc_ptr;
static PyObject *__pyx_n_s_cpResViewDesc_ptr;
static PyObject *__pyx_n_s_cpTexDesc_ptr;
static PyObject *__pyx_n_s_cp_ptr;
static PyObject *__pyx_n_s_cparamArray;
static PyObject *__pyx_n_s_cparamsArray;
static PyObject *__pyx_n_s_cpformat;
static PyObject *__pyx_n_s_cpoolProps_ptr;
static PyObject *__pyx_n_s_cprop_ptr;
static PyObject *__pyx_n_s_cptr;
static PyObject *__pyx_n_s_cptr_ptr;
static PyObject *__pyx_n_s_cresources_ptr;
static PyObject *__pyx_n_s_crootNodes;
static PyObject *__pyx_n_s_cscope;
static PyObject *__pyx_n_s_csemHandleDesc_ptr;
static PyObject *__pyx_n_s_cshHandleType;
static PyObject *__pyx_n_s_cshareData_ptr;
static PyObject *__pyx_n_s_cshareableHandle_ptr;
static PyObject *__pyx_n_s_csrcHost;
static PyObject *__pyx_n_s_csrcHost_ptr;
static PyObject *__pyx_n_s_ctarget;
static PyObject *__pyx_n_s_cto;
static PyObject *__pyx_n_s_ctx;
static PyObject *__pyx_n_s_ctypename;
static PyObject *__pyx_n_s_ctypes;
static PyObject *__pyx_n_s_cuArray3DCreate;
static PyObject *__pyx_n_s_cuArray3DGetDescriptor;
static PyObject *__pyx_n_s_cuArrayCreate;
static PyObject *__pyx_n_s_cuArrayDestroy;
static PyObject *__pyx_n_s_cuArrayGetDescriptor;
static PyObject *__pyx_n_s_cuArrayGetPlane;
static PyObject *__pyx_n_s_cuArrayGetSparseProperties;
static PyObject *__pyx_n_s_cuCtxAttach;
static PyObject *__pyx_n_s_cuCtxCreate;
static PyObject *__pyx_n_s_cuCtxCreate_v3;
static PyObject *__pyx_n_s_cuCtxCreate_v3_locals_genexpr;
static PyObject *__pyx_n_s_cuCtxDestroy;
static PyObject *__pyx_n_s_cuCtxDetach;
static PyObject *__pyx_n_s_cuCtxDisablePeerAccess;
static PyObject *__pyx_n_s_cuCtxEnablePeerAccess;
static PyObject *__pyx_n_s_cuCtxGetApiVersion;
static PyObject *__pyx_n_s_cuCtxGetCacheConfig;
static PyObject *__pyx_n_s_cuCtxGetCurrent;
static PyObject *__pyx_n_s_cuCtxGetDevice;
static PyObject *__pyx_n_s_cuCtxGetExecAffinity;
static PyObject *__pyx_n_s_cuCtxGetFlags;
static PyObject *__pyx_n_s_cuCtxGetLimit;
static PyObject *__pyx_n_s_cuCtxGetSharedMemConfig;
static PyObject *__pyx_n_s_cuCtxGetStreamPriorityRange;
static PyObject *__pyx_n_s_cuCtxPopCurrent;
static PyObject *__pyx_n_s_cuCtxPushCurrent;
static PyObject *__pyx_n_s_cuCtxResetPersistingL2Cache;
static PyObject *__pyx_n_s_cuCtxSetCacheConfig;
static PyObject *__pyx_n_s_cuCtxSetCurrent;
static PyObject *__pyx_n_s_cuCtxSetLimit;
static PyObject *__pyx_n_s_cuCtxSetSharedMemConfig;
static PyObject *__pyx_n_s_cuCtxSynchronize;
static PyObject *__pyx_n_s_cuDestroyExternalMemory;
static PyObject *__pyx_n_s_cuDestroyExternalSemaphore;
static PyObject *__pyx_n_s_cuDeviceCanAccessPeer;
static PyObject *__pyx_n_s_cuDeviceComputeCapability;
static PyObject *__pyx_n_s_cuDeviceGet;
static PyObject *__pyx_n_s_cuDeviceGetAttribute;
static PyObject *__pyx_n_s_cuDeviceGetByPCIBusId;
static PyObject *__pyx_n_s_cuDeviceGetCount;
static PyObject *__pyx_n_s_cuDeviceGetDefaultMemPool;
static PyObject *__pyx_n_s_cuDeviceGetExecAffinitySupport;
static PyObject *__pyx_n_s_cuDeviceGetGraphMemAttribute;
static PyObject *__pyx_n_s_cuDeviceGetLuid;
static PyObject *__pyx_n_s_cuDeviceGetMemPool;
static PyObject *__pyx_n_s_cuDeviceGetName;
static PyObject *__pyx_n_s_cuDeviceGetNvSciSyncAttributes;
static PyObject *__pyx_n_s_cuDeviceGetP2PAttribute;
static PyObject *__pyx_n_s_cuDeviceGetPCIBusId;
static PyObject *__pyx_n_s_cuDeviceGetProperties;
static PyObject *__pyx_n_s_cuDeviceGetTexture1DLinearMaxWid;
static PyObject *__pyx_n_s_cuDeviceGetUuid;
static PyObject *__pyx_n_s_cuDeviceGetUuid_v2;
static PyObject *__pyx_n_s_cuDeviceGraphMemTrim;
static PyObject *__pyx_n_s_cuDevicePrimaryCtxGetState;
static PyObject *__pyx_n_s_cuDevicePrimaryCtxRelease;
static PyObject *__pyx_n_s_cuDevicePrimaryCtxReset;
static PyObject *__pyx_n_s_cuDevicePrimaryCtxRetain;
static PyObject *__pyx_n_s_cuDevicePrimaryCtxSetFlags;
static PyObject *__pyx_n_s_cuDeviceSetGraphMemAttribute;
static PyObject *__pyx_n_s_cuDeviceSetMemPool;
static PyObject *__pyx_n_s_cuDeviceTotalMem;
static PyObject *__pyx_n_s_cuDriverGetVersion;
static PyObject *__pyx_n_s_cuEventCreate;
static PyObject *__pyx_n_s_cuEventDestroy;
static PyObject *__pyx_n_s_cuEventElapsedTime;
static PyObject *__pyx_n_s_cuEventQuery;
static PyObject *__pyx_n_s_cuEventRecord;
static PyObject *__pyx_n_s_cuEventRecordWithFlags;
static PyObject *__pyx_n_s_cuEventSynchronize;
static PyObject *__pyx_n_s_cuExternalMemoryGetMappedBuffer;
static PyObject *__pyx_n_s_cuExternalMemoryGetMappedMipmapp;
static PyObject *__pyx_n_s_cuFlushGPUDirectRDMAWrites;
static PyObject *__pyx_n_s_cuFuncGetAttribute;
static PyObject *__pyx_n_s_cuFuncGetModule;
static PyObject *__pyx_n_s_cuFuncSetAttribute;
static PyObject *__pyx_n_s_cuFuncSetBlockShape;
static PyObject *__pyx_n_s_cuFuncSetCacheConfig;
static PyObject *__pyx_n_s_cuFuncSetSharedMemConfig;
static PyObject *__pyx_n_s_cuFuncSetSharedSize;
static PyObject *__pyx_n_s_cuGetErrorName;
static PyObject *__pyx_n_s_cuGetErrorString;
static PyObject *__pyx_n_s_cuGetExportTable;
static PyObject *__pyx_n_s_cuGetProcAddress;
static PyObject *__pyx_n_s_cuGraphAddChildGraphNode;
static PyObject *__pyx_n_s_cuGraphAddChildGraphNode_locals;
static PyObject *__pyx_n_s_cuGraphAddDependencies;
static PyObject *__pyx_n_s_cuGraphAddDependencies_locals_ge;
static PyObject *__pyx_n_s_cuGraphAddEmptyNode;
static PyObject *__pyx_n_s_cuGraphAddEmptyNode_locals_genex;
static PyObject *__pyx_n_s_cuGraphAddEventRecordNode;
static PyObject *__pyx_n_s_cuGraphAddEventRecordNode_locals;
static PyObject *__pyx_n_s_cuGraphAddEventWaitNode;
static PyObject *__pyx_n_s_cuGraphAddEventWaitNode_locals_g;
static PyObject *__pyx_n_s_cuGraphAddExternalSemaphoresSign;
static PyObject *__pyx_n_s_cuGraphAddExternalSemaphoresSign_2;
static PyObject *__pyx_n_s_cuGraphAddExternalSemaphoresWait;
static PyObject *__pyx_n_s_cuGraphAddExternalSemaphoresWait_2;
static PyObject *__pyx_n_s_cuGraphAddHostNode;
static PyObject *__pyx_n_s_cuGraphAddHostNode_locals_genexp;
static PyObject *__pyx_n_s_cuGraphAddKernelNode;
static PyObject *__pyx_n_s_cuGraphAddKernelNode_locals_gene;
static PyObject *__pyx_n_s_cuGraphAddMemAllocNode;
static PyObject *__pyx_n_s_cuGraphAddMemAllocNode_locals_ge;
static PyObject *__pyx_n_s_cuGraphAddMemFreeNode;
static PyObject *__pyx_n_s_cuGraphAddMemFreeNode_locals_gen;
static PyObject *__pyx_n_s_cuGraphAddMemcpyNode;
static PyObject *__pyx_n_s_cuGraphAddMemcpyNode_locals_gene;
static PyObject *__pyx_n_s_cuGraphAddMemsetNode;
static PyObject *__pyx_n_s_cuGraphAddMemsetNode_locals_gene;
static PyObject *__pyx_n_s_cuGraphChildGraphNodeGetGraph;
static PyObject *__pyx_n_s_cuGraphClone;
static PyObject *__pyx_n_s_cuGraphCreate;
static PyObject *__pyx_n_s_cuGraphDebugDotPrint;
static PyObject *__pyx_n_s_cuGraphDestroy;
static PyObject *__pyx_n_s_cuGraphDestroyNode;
static PyObject *__pyx_n_s_cuGraphEventRecordNodeGetEvent;
static PyObject *__pyx_n_s_cuGraphEventRecordNodeSetEvent;
static PyObject *__pyx_n_s_cuGraphEventWaitNodeGetEvent;
static PyObject *__pyx_n_s_cuGraphEventWaitNodeSetEvent;
static PyObject *__pyx_n_s_cuGraphExecChildGraphNodeSetPara;
static PyObject *__pyx_n_s_cuGraphExecDestroy;
static PyObject *__pyx_n_s_cuGraphExecEventRecordNodeSetEve;
static PyObject *__pyx_n_s_cuGraphExecEventWaitNodeSetEvent;
static PyObject *__pyx_n_s_cuGraphExecExternalSemaphoresSig;
static PyObject *__pyx_n_s_cuGraphExecExternalSemaphoresWai;
static PyObject *__pyx_n_s_cuGraphExecHostNodeSetParams;
static PyObject *__pyx_n_s_cuGraphExecKernelNodeSetParams;
static PyObject *__pyx_n_s_cuGraphExecMemcpyNodeSetParams;
static PyObject *__pyx_n_s_cuGraphExecMemsetNodeSetParams;
static PyObject *__pyx_n_s_cuGraphExecUpdate;
static PyObject *__pyx_n_s_cuGraphExternalSemaphoresSignalN;
static PyObject *__pyx_n_s_cuGraphExternalSemaphoresSignalN_2;
static PyObject *__pyx_n_s_cuGraphExternalSemaphoresWaitNod;
static PyObject *__pyx_n_s_cuGraphExternalSemaphoresWaitNod_2;
static PyObject *__pyx_n_s_cuGraphGetEdges;
static PyObject *__pyx_n_s_cuGraphGetNodes;
static PyObject *__pyx_n_s_cuGraphGetRootNodes;
static PyObject *__pyx_n_s_cuGraphHostNodeGetParams;
static PyObject *__pyx_n_s_cuGraphHostNodeSetParams;
static PyObject *__pyx_n_s_cuGraphInstantiate;
static PyObject *__pyx_n_s_cuGraphInstantiateWithFlags;
static PyObject *__pyx_n_s_cuGraphKernelNodeCopyAttributes;
static PyObject *__pyx_n_s_cuGraphKernelNodeGetAttribute;
static PyObject *__pyx_n_s_cuGraphKernelNodeGetParams;
static PyObject *__pyx_n_s_cuGraphKernelNodeSetAttribute;
static PyObject *__pyx_n_s_cuGraphKernelNodeSetParams;
static PyObject *__pyx_n_s_cuGraphLaunch;
static PyObject *__pyx_n_s_cuGraphMemAllocNodeGetParams;
static PyObject *__pyx_n_s_cuGraphMemFreeNodeGetParams;
static PyObject *__pyx_n_s_cuGraphMemcpyNodeGetParams;
static PyObject *__pyx_n_s_cuGraphMemcpyNodeSetParams;
static PyObject *__pyx_n_s_cuGraphMemsetNodeGetParams;
static PyObject *__pyx_n_s_cuGraphMemsetNodeSetParams;
static PyObject *__pyx_n_s_cuGraphNodeFindInClone;
static PyObject *__pyx_n_s_cuGraphNodeGetDependencies;
static PyObject *__pyx_n_s_cuGraphNodeGetDependentNodes;
static PyObject *__pyx_n_s_cuGraphNodeGetType;
static PyObject *__pyx_n_s_cuGraphReleaseUserObject;
static PyObject *__pyx_n_s_cuGraphRemoveDependencies;
static PyObject *__pyx_n_s_cuGraphRemoveDependencies_locals;
static PyObject *__pyx_n_s_cuGraphRetainUserObject;
static PyObject *__pyx_n_s_cuGraphUpload;
static PyObject *__pyx_n_s_cuGraphicsMapResources;
static PyObject *__pyx_n_s_cuGraphicsResourceGetMappedMipma;
static PyObject *__pyx_n_s_cuGraphicsResourceGetMappedPoint;
static PyObject *__pyx_n_s_cuGraphicsResourceSetMapFlags;
static PyObject *__pyx_n_s_cuGraphicsSubResourceGetMappedAr;
static PyObject *__pyx_n_s_cuGraphicsUnmapResources;
static PyObject *__pyx_n_s_cuGraphicsUnregisterResource;
static PyObject *__pyx_n_s_cuImportExternalMemory;
static PyObject *__pyx_n_s_cuImportExternalSemaphore;
static PyObject *__pyx_n_s_cuInit;
static PyObject *__pyx_n_s_cuIpcCloseMemHandle;
static PyObject *__pyx_n_s_cuIpcGetEventHandle;
static PyObject *__pyx_n_s_cuIpcGetMemHandle;
static PyObject *__pyx_n_s_cuIpcOpenEventHandle;
static PyObject *__pyx_n_s_cuIpcOpenMemHandle;
static PyObject *__pyx_n_s_cuLaunch;
static PyObject *__pyx_n_s_cuLaunchCooperativeKernel;
static PyObject *__pyx_n_s_cuLaunchCooperativeKernelMultiDe;
static PyObject *__pyx_n_s_cuLaunchCooperativeKernelMultiDe_2;
static PyObject *__pyx_n_s_cuLaunchGrid;
static PyObject *__pyx_n_s_cuLaunchGridAsync;
static PyObject *__pyx_n_s_cuLaunchHostFunc;
static PyObject *__pyx_n_s_cuLaunchKernel;
static PyObject *__pyx_n_s_cuLinkAddData;
static PyObject *__pyx_n_s_cuLinkAddData_locals_genexpr;
static PyObject *__pyx_n_s_cuLinkAddFile;
static PyObject *__pyx_n_s_cuLinkAddFile_locals_genexpr;
static PyObject *__pyx_n_s_cuLinkComplete;
static PyObject *__pyx_n_s_cuLinkCreate;
static PyObject *__pyx_n_s_cuLinkCreate_locals_genexpr;
static PyObject *__pyx_n_s_cuLinkDestroy;
static PyObject *__pyx_n_s_cuMemAddressFree;
static PyObject *__pyx_n_s_cuMemAddressReserve;
static PyObject *__pyx_n_s_cuMemAdvise;
static PyObject *__pyx_n_s_cuMemAlloc;
static PyObject *__pyx_n_s_cuMemAllocAsync;
static PyObject *__pyx_n_s_cuMemAllocFromPoolAsync;
static PyObject *__pyx_n_s_cuMemAllocHost;
static PyObject *__pyx_n_s_cuMemAllocManaged;
static PyObject *__pyx_n_s_cuMemAllocPitch;
static PyObject *__pyx_n_s_cuMemCreate;
static PyObject *__pyx_n_s_cuMemExportToShareableHandle;
static PyObject *__pyx_n_s_cuMemFree;
static PyObject *__pyx_n_s_cuMemFreeAsync;
static PyObject *__pyx_n_s_cuMemFreeHost;
static PyObject *__pyx_n_s_cuMemGetAccess;
static PyObject *__pyx_n_s_cuMemGetAddressRange;
static PyObject *__pyx_n_s_cuMemGetAllocationGranularity;
static PyObject *__pyx_n_s_cuMemGetAllocationPropertiesFrom;
static PyObject *__pyx_n_s_cuMemGetInfo;
static PyObject *__pyx_n_s_cuMemHostAlloc;
static PyObject *__pyx_n_s_cuMemHostGetDevicePointer;
static PyObject *__pyx_n_s_cuMemHostGetFlags;
static PyObject *__pyx_n_s_cuMemHostRegister;
static PyObject *__pyx_n_s_cuMemHostUnregister;
static PyObject *__pyx_n_s_cuMemImportFromShareableHandle;
static PyObject *__pyx_n_s_cuMemMap;
static PyObject *__pyx_n_s_cuMemMapArrayAsync;
static PyObject *__pyx_n_s_cuMemMapArrayAsync_locals_genexp;
static PyObject *__pyx_n_s_cuMemPoolCreate;
static PyObject *__pyx_n_s_cuMemPoolDestroy;
static PyObject *__pyx_n_s_cuMemPoolExportPointer;
static PyObject *__pyx_n_s_cuMemPoolExportToShareableHandle;
static PyObject *__pyx_n_s_cuMemPoolGetAccess;
static PyObject *__pyx_n_s_cuMemPoolGetAttribute;
static PyObject *__pyx_n_s_cuMemPoolImportFromShareableHand;
static PyObject *__pyx_n_s_cuMemPoolImportPointer;
static PyObject *__pyx_n_s_cuMemPoolSetAccess;
static PyObject *__pyx_n_s_cuMemPoolSetAccess_locals_genexp;
static PyObject *__pyx_n_s_cuMemPoolSetAttribute;
static PyObject *__pyx_n_s_cuMemPoolTrimTo;
static PyObject *__pyx_n_s_cuMemPrefetchAsync;
static PyObject *__pyx_n_s_cuMemRangeGetAttribute;
static PyObject *__pyx_n_s_cuMemRangeGetAttributes;
static PyObject *__pyx_n_s_cuMemRangeGetAttributes_locals_g;
static PyObject *__pyx_n_s_cuMemRelease;
static PyObject *__pyx_n_s_cuMemRetainAllocationHandle;
static PyObject *__pyx_n_s_cuMemSetAccess;
static PyObject *__pyx_n_s_cuMemSetAccess_locals_genexpr;
static PyObject *__pyx_n_s_cuMemUnmap;
static PyObject *__pyx_n_s_cuMemcpy;
static PyObject *__pyx_n_s_cuMemcpy2D;
static PyObject *__pyx_n_s_cuMemcpy2DAsync;
static PyObject *__pyx_n_s_cuMemcpy2DUnaligned;
static PyObject *__pyx_n_s_cuMemcpy3D;
static PyObject *__pyx_n_s_cuMemcpy3DAsync;
static PyObject *__pyx_n_s_cuMemcpy3DPeer;
static PyObject *__pyx_n_s_cuMemcpy3DPeerAsync;
static PyObject *__pyx_n_s_cuMemcpyAsync;
static PyObject *__pyx_n_s_cuMemcpyAtoA;
static PyObject *__pyx_n_s_cuMemcpyAtoD;
static PyObject *__pyx_n_s_cuMemcpyAtoH;
static PyObject *__pyx_n_s_cuMemcpyAtoHAsync;
static PyObject *__pyx_n_s_cuMemcpyDtoA;
static PyObject *__pyx_n_s_cuMemcpyDtoD;
static PyObject *__pyx_n_s_cuMemcpyDtoDAsync;
static PyObject *__pyx_n_s_cuMemcpyDtoH;
static PyObject *__pyx_n_s_cuMemcpyDtoHAsync;
static PyObject *__pyx_n_s_cuMemcpyHtoA;
static PyObject *__pyx_n_s_cuMemcpyHtoAAsync;
static PyObject *__pyx_n_s_cuMemcpyHtoD;
static PyObject *__pyx_n_s_cuMemcpyHtoDAsync;
static PyObject *__pyx_n_s_cuMemcpyPeer;
static PyObject *__pyx_n_s_cuMemcpyPeerAsync;
static PyObject *__pyx_n_s_cuMemsetD16;
static PyObject *__pyx_n_s_cuMemsetD16Async;
static PyObject *__pyx_n_s_cuMemsetD2D16;
static PyObject *__pyx_n_s_cuMemsetD2D16Async;
static PyObject *__pyx_n_s_cuMemsetD2D32;
static PyObject *__pyx_n_s_cuMemsetD2D32Async;
static PyObject *__pyx_n_s_cuMemsetD2D8;
static PyObject *__pyx_n_s_cuMemsetD2D8Async;
static PyObject *__pyx_n_s_cuMemsetD32;
static PyObject *__pyx_n_s_cuMemsetD32Async;
static PyObject *__pyx_n_s_cuMemsetD8;
static PyObject *__pyx_n_s_cuMemsetD8Async;
static PyObject *__pyx_n_s_cuMipmappedArrayCreate;
static PyObject *__pyx_n_s_cuMipmappedArrayDestroy;
static PyObject *__pyx_n_s_cuMipmappedArrayGetLevel;
static PyObject *__pyx_n_s_cuMipmappedArrayGetSparsePropert;
static PyObject *__pyx_n_s_cuModuleGetFunction;
static PyObject *__pyx_n_s_cuModuleGetGlobal;
static PyObject *__pyx_n_s_cuModuleGetSurfRef;
static PyObject *__pyx_n_s_cuModuleGetTexRef;
static PyObject *__pyx_n_s_cuModuleLoad;
static PyObject *__pyx_n_s_cuModuleLoadData;
static PyObject *__pyx_n_s_cuModuleLoadDataEx;
static PyObject *__pyx_n_s_cuModuleLoadDataEx_locals_genexp;
static PyObject *__pyx_n_s_cuModuleLoadFatBinary;
static PyObject *__pyx_n_s_cuModuleUnload;
static PyObject *__pyx_n_s_cuOccupancyAvailableDynamicSMemP;
static PyObject *__pyx_n_s_cuOccupancyMaxActiveBlocksPerMul;
static PyObject *__pyx_n_s_cuOccupancyMaxActiveBlocksPerMul_2;
static PyObject *__pyx_n_s_cuOccupancyMaxPotentialBlockSize;
static PyObject *__pyx_n_s_cuOccupancyMaxPotentialBlockSize_2;
static PyObject *__pyx_n_s_cuParamSetSize;
static PyObject *__pyx_n_s_cuParamSetTexRef;
static PyObject *__pyx_n_s_cuParamSetf;
static PyObject *__pyx_n_s_cuParamSeti;
static PyObject *__pyx_n_s_cuParamSetv;
static PyObject *__pyx_n_s_cuPointerGetAttribute;
static PyObject *__pyx_n_s_cuPointerGetAttributes;
static PyObject *__pyx_n_s_cuPointerGetAttributes_locals_ge;
static PyObject *__pyx_n_s_cuPointerSetAttribute;
static PyObject *__pyx_n_s_cuSignalExternalSemaphoresAsync;
static PyObject *__pyx_n_s_cuSignalExternalSemaphoresAsync_2;
static PyObject *__pyx_n_s_cuStreamAddCallback;
static PyObject *__pyx_n_s_cuStreamAttachMemAsync;
static PyObject *__pyx_n_s_cuStreamBatchMemOp;
static PyObject *__pyx_n_s_cuStreamBatchMemOp_locals_genexp;
static PyObject *__pyx_n_s_cuStreamBeginCapture;
static PyObject *__pyx_n_s_cuStreamCopyAttributes;
static PyObject *__pyx_n_s_cuStreamCreate;
static PyObject *__pyx_n_s_cuStreamCreateWithPriority;
static PyObject *__pyx_n_s_cuStreamDestroy;
static PyObject *__pyx_n_s_cuStreamEndCapture;
static PyObject *__pyx_n_s_cuStreamGetAttribute;
static PyObject *__pyx_n_s_cuStreamGetCaptureInfo;
static PyObject *__pyx_n_s_cuStreamGetCaptureInfo_v2;
static PyObject *__pyx_n_s_cuStreamGetCtx;
static PyObject *__pyx_n_s_cuStreamGetFlags;
static PyObject *__pyx_n_s_cuStreamGetPriority;
static PyObject *__pyx_n_s_cuStreamIsCapturing;
static PyObject *__pyx_n_s_cuStreamQuery;
static PyObject *__pyx_n_s_cuStreamSetAttribute;
static PyObject *__pyx_n_s_cuStreamSynchronize;
static PyObject *__pyx_n_s_cuStreamUpdateCaptureDependencie;
static PyObject *__pyx_n_s_cuStreamUpdateCaptureDependencie_2;
static PyObject *__pyx_n_s_cuStreamWaitEvent;
static PyObject *__pyx_n_s_cuStreamWaitValue32;
static PyObject *__pyx_n_s_cuStreamWaitValue64;
static PyObject *__pyx_n_s_cuStreamWriteValue32;
static PyObject *__pyx_n_s_cuStreamWriteValue64;
static PyObject *__pyx_n_s_cuSurfObjectCreate;
static PyObject *__pyx_n_s_cuSurfObjectDestroy;
static PyObject *__pyx_n_s_cuSurfObjectGetResourceDesc;
static PyObject *__pyx_n_s_cuSurfRefGetArray;
static PyObject *__pyx_n_s_cuSurfRefSetArray;
static PyObject *__pyx_n_s_cuTexObjectCreate;
static PyObject *__pyx_n_s_cuTexObjectDestroy;
static PyObject *__pyx_n_s_cuTexObjectGetResourceDesc;
static PyObject *__pyx_n_s_cuTexObjectGetResourceViewDesc;
static PyObject *__pyx_n_s_cuTexObjectGetTextureDesc;
static PyObject *__pyx_n_s_cuTexRefCreate;
static PyObject *__pyx_n_s_cuTexRefDestroy;
static PyObject *__pyx_n_s_cuTexRefGetAddress;
static PyObject *__pyx_n_s_cuTexRefGetAddressMode;
static PyObject *__pyx_n_s_cuTexRefGetArray;
static PyObject *__pyx_n_s_cuTexRefGetBorderColor;
static PyObject *__pyx_n_s_cuTexRefGetFilterMode;
static PyObject *__pyx_n_s_cuTexRefGetFlags;
static PyObject *__pyx_n_s_cuTexRefGetFormat;
static PyObject *__pyx_n_s_cuTexRefGetMaxAnisotropy;
static PyObject *__pyx_n_s_cuTexRefGetMipmapFilterMode;
static PyObject *__pyx_n_s_cuTexRefGetMipmapLevelBias;
static PyObject *__pyx_n_s_cuTexRefGetMipmapLevelClamp;
static PyObject *__pyx_n_s_cuTexRefGetMipmappedArray;
static PyObject *__pyx_n_s_cuTexRefSetAddress;
static PyObject *__pyx_n_s_cuTexRefSetAddress2D;
static PyObject *__pyx_n_s_cuTexRefSetAddressMode;
static PyObject *__pyx_n_s_cuTexRefSetArray;
static PyObject *__pyx_n_s_cuTexRefSetBorderColor;
static PyObject *__pyx_n_s_cuTexRefSetFilterMode;
static PyObject *__pyx_n_s_cuTexRefSetFlags;
static PyObject *__pyx_n_s_cuTexRefSetFormat;
static PyObject *__pyx_n_s_cuTexRefSetMaxAnisotropy;
static PyObject *__pyx_n_s_cuTexRefSetMipmapFilterMode;
static PyObject *__pyx_n_s_cuTexRefSetMipmapLevelBias;
static PyObject *__pyx_n_s_cuTexRefSetMipmapLevelClamp;
static PyObject *__pyx_n_s_cuTexRefSetMipmappedArray;
static PyObject *__pyx_n_s_cuThreadExchangeStreamCaptureMod;
static PyObject *__pyx_n_s_cuUserObjectCreate;
static PyObject *__pyx_n_s_cuUserObjectRelease;
static PyObject *__pyx_n_s_cuUserObjectRetain;
static PyObject *__pyx_n_s_cuWaitExternalSemaphoresAsync;
static PyObject *__pyx_n_s_cuWaitExternalSemaphoresAsync_lo;
static PyObject *__pyx_n_s_cubinOut;
static PyObject *__pyx_n_s_cudaVersion;
static PyObject *__pyx_n_s_cuda_cuda;
static PyObject *__pyx_kp_s_cuda_cuda_pyx;
static PyObject *__pyx_n_s_cuserData;
static PyObject *__pyx_n_s_cuserData_ptr;
static PyObject *__pyx_kp_u_cuuint32_t;
static PyObject *__pyx_n_s_cuuint32_t_2;
static PyObject *__pyx_n_u_cuuint32_t_2;
static PyObject *__pyx_n_s_cuuint32_t___reduce_cython;
static PyObject *__pyx_n_s_cuuint32_t___setstate_cython;
static PyObject *__pyx_n_s_cuuint32_t_getPtr;
static PyObject *__pyx_kp_u_cuuint64_t;
static PyObject *__pyx_n_s_cuuint64_t_2;
static PyObject *__pyx_n_u_cuuint64_t_2;
static PyObject *__pyx_n_s_cuuint64_t___reduce_cython;
static PyObject *__pyx_n_s_cuuint64_t___setstate_cython;
static PyObject *__pyx_n_s_cuuint64_t_getPtr;
static PyObject *__pyx_n_s_cvalue;
static PyObject *__pyx_n_s_cvalue_ptr;
static PyObject *__pyx_n_s_cvoidStarHelper_ptr;
static PyObject *__pyx_n_s_data;
static PyObject *__pyx_n_s_dataSize;
static PyObject *__pyx_n_s_dataSizes;
static PyObject *__pyx_n_s_dependencies;
static PyObject *__pyx_kp_u_depth;
static PyObject *__pyx_n_s_depth_2;
static PyObject *__pyx_n_s_desc;
static PyObject *__pyx_n_s_destroy;
static PyObject *__pyx_n_s_dev;
static PyObject *__pyx_kp_u_devPtr;
static PyObject *__pyx_n_s_devPtr_2;
static PyObject *__pyx_n_s_device;
static PyObject *__pyx_kp_u_deviceBitMask;
static PyObject *__pyx_n_s_deviceBitMask_2;
static PyObject *__pyx_n_s_deviceNodeMask;
static PyObject *__pyx_n_s_dim;
static PyObject *__pyx_n_s_doc;
static PyObject *__pyx_kp_u_dptr;
static PyObject *__pyx_n_s_dptr_2;
static PyObject *__pyx_n_s_dptr_out;
static PyObject *__pyx_n_s_driverVersion;
static PyObject *__pyx_kp_u_dst;
static PyObject *__pyx_kp_u_dstArray;
static PyObject *__pyx_n_s_dstArray_2;
static PyObject *__pyx_kp_u_dstContext;
static PyObject *__pyx_n_s_dstContext_2;
static PyObject *__pyx_kp_u_dstDevice;
static PyObject *__pyx_n_s_dstDevice_2;
static PyObject *__pyx_kp_u_dstHeight;
static PyObject *__pyx_n_s_dstHeight_2;
static PyObject *__pyx_kp_u_dstHost;
static PyObject *__pyx_n_s_dstHost_2;
static PyObject *__pyx_kp_u_dstLOD;
static PyObject *__pyx_n_s_dstLOD_2;
static PyObject *__pyx_kp_u_dstMemoryType;
static PyObject *__pyx_n_s_dstMemoryType_2;
static PyObject *__pyx_n_s_dstOffset;
static PyObject *__pyx_kp_u_dstPitch;
static PyObject *__pyx_n_s_dstPitch_2;
static PyObject *__pyx_kp_u_dstXInBytes;
static PyObject *__pyx_n_s_dstXInBytes_2;
static PyObject *__pyx_kp_u_dstY;
static PyObject *__pyx_n_s_dstY_2;
static PyObject *__pyx_kp_u_dstZ;
static PyObject *__pyx_n_s_dstZ_2;
static PyObject *__pyx_n_s_dst_2;
static PyObject *__pyx_n_s_dynamicSMemSize;
static PyObject *__pyx_n_s_dynamicSmemSize;
static PyObject *__pyx_kp_u_elementSize;
static PyObject *__pyx_n_s_elementSize_2;
static PyObject *__pyx_n_s_enum;
static PyObject *__pyx_n_s_enumerate;
static PyObject *__pyx_n_s_err;
static PyObject *__pyx_n_s_error;
static PyObject *__pyx_n_s_event;
static PyObject *__pyx_n_s_event_out;
static PyObject *__pyx_n_s_extMem;
static PyObject *__pyx_n_s_extMem_out;
static PyObject *__pyx_n_s_extSem;
static PyObject *__pyx_kp_u_extSemArray;
static PyObject *__pyx_n_s_extSemArray_2;
static PyObject *__pyx_n_s_extSem_out;
static PyObject *__pyx_kp_u_extentDepth;
static PyObject *__pyx_n_s_extentDepth_2;
static PyObject *__pyx_kp_u_extentHeight;
static PyObject *__pyx_n_s_extentHeight_2;
static PyObject *__pyx_kp_u_extentWidth;
static PyObject *__pyx_n_s_extentWidth_2;
static PyObject *__pyx_kp_u_extra;
static PyObject *__pyx_n_s_extra_2;
static PyObject *__pyx_n_s_f;
static PyObject *__pyx_n_s_fatCubin;
static PyObject *__pyx_kp_u_fd;
static PyObject *__pyx_n_s_fd_2;
static PyObject *__pyx_kp_u_fence;
static PyObject *__pyx_n_s_fence_2;
static PyObject *__pyx_kp_u_fence_3;
static PyObject *__pyx_kp_u_filterMode;
static PyObject *__pyx_n_s_filterMode_2;
static PyObject *__pyx_kp_u_firstLayer;
static PyObject *__pyx_n_s_firstLayer_2;
static PyObject *__pyx_kp_u_firstMipmapLevel;
static PyObject *__pyx_n_s_firstMipmapLevel_2;
static PyObject *__pyx_kp_u_flags;
static PyObject *__pyx_n_s_flags_2;
static PyObject *__pyx_kp_u_flushRemoteWrites;
static PyObject *__pyx_n_s_flushRemoteWrites_2;
static PyObject *__pyx_n_s_fm;
static PyObject *__pyx_n_s_fmt;
static PyObject *__pyx_kp_u_fn;
static PyObject *__pyx_n_s_fn_2;
static PyObject *__pyx_n_s_fname;
static PyObject *__pyx_kp_u_format;
static PyObject *__pyx_n_s_format_2;
static PyObject *__pyx_n_s_free;
static PyObject *__pyx_n_s_from;
static PyObject *__pyx_kp_u_func;
static PyObject *__pyx_n_s_func_2;
static PyObject *__pyx_kp_u_function;
static PyObject *__pyx_n_s_function_2;
static PyObject *__pyx_n_s_genexpr;
static PyObject *__pyx_n_s_getPtr;
static PyObject *__pyx_n_u_getPtr;
static PyObject *__pyx_n_s_getstate;
static PyObject *__pyx_kp_u_gpuDirectRDMACapable;
static PyObject *__pyx_n_s_gpuDirectRDMACapable_2;
static PyObject *__pyx_n_s_granularity;
static PyObject *__pyx_n_s_graph;
static PyObject *__pyx_n_s_graph_length;
static PyObject *__pyx_n_s_graph_out;
static PyObject *__pyx_n_s_greatestPriority;
static PyObject *__pyx_kp_u_gridDimX;
static PyObject *__pyx_n_s_gridDimX_2;
static PyObject *__pyx_kp_u_gridDimY;
static PyObject *__pyx_n_s_gridDimY_2;
static PyObject *__pyx_kp_u_gridDimZ;
static PyObject *__pyx_n_s_gridDimZ_2;
static PyObject *__pyx_n_s_grid_height;
static PyObject *__pyx_n_s_grid_width;
static PyObject *__pyx_kp_u_hArray;
static PyObject *__pyx_n_s_hArray_2;
static PyObject *__pyx_n_s_hClonedGraph;
static PyObject *__pyx_n_s_hEnd;
static PyObject *__pyx_n_s_hErrorNode_out;
static PyObject *__pyx_n_s_hEvent;
static PyObject *__pyx_n_s_hGraph;
static PyObject *__pyx_n_s_hGraphExec;
static PyObject *__pyx_kp_u_hMipmappedArray;
static PyObject *__pyx_n_s_hMipmappedArray_2;
static PyObject *__pyx_n_s_hNode;
static PyObject *__pyx_n_s_hOriginalNode;
static PyObject *__pyx_n_s_hStart;
static PyObject *__pyx_kp_u_hStream;
static PyObject *__pyx_n_s_hStream_2;
static PyObject *__pyx_n_s_hSurfRef;
static PyObject *__pyx_n_s_hTexRef;
static PyObject *__pyx_kp_u_handle;
static PyObject *__pyx_n_s_handleType;
static PyObject *__pyx_kp_u_handleTypes;
static PyObject *__pyx_n_s_handleTypes_2;
static PyObject *__pyx_n_s_handle_2;
static PyObject *__pyx_kp_u_handle_3;
static PyObject *__pyx_n_s_handle_out;
static PyObject *__pyx_kp_u_height;
static PyObject *__pyx_n_s_height_2;
static PyObject *__pyx_n_s_hex;
static PyObject *__pyx_n_s_hfunc;
static PyObject *__pyx_kp_u_hitProp;
static PyObject *__pyx_n_s_hitProp_2;
static PyObject *__pyx_kp_u_hitRatio;
static PyObject *__pyx_n_s_hitRatio_2;
static PyObject *__pyx_n_s_hmod;
static PyObject *__pyx_kp_u_id;
static PyObject *__pyx_n_s_id_2;
static PyObject *__pyx_n_s_id_out;
static PyObject *__pyx_n_s_idx;
static PyObject *__pyx_n_s_image;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_init_value;
static PyObject *__pyx_n_s_initialRefcount;
static PyObject *__pyx_n_s_int;
static PyObject *__pyx_n_s_is_getter;
static PyObject *__pyx_kp_u_kernelParams;
static PyObject *__pyx_n_s_kernelParams_2;
static PyObject *__pyx_kp_u_key;
static PyObject *__pyx_n_s_key_2;
static PyObject *__pyx_kp_u_keyedMutex;
static PyObject *__pyx_n_s_keyedMutex_2;
static PyObject *__pyx_kp_u_lastLayer;
static PyObject *__pyx_n_s_lastLayer_2;
static PyObject *__pyx_kp_u_lastMipmapLevel;
static PyObject *__pyx_n_s_lastMipmapLevel_2;
static PyObject *__pyx_n_s_launchParamsList;
static PyObject *__pyx_kp_u_layer;
static PyObject *__pyx_n_s_layer_2;
static PyObject *__pyx_n_s_leastPriority;
static PyObject *__pyx_n_s_length;
static PyObject *__pyx_kp_u_level;
static PyObject *__pyx_n_s_level_2;
static PyObject *__pyx_n_s_limit;
static PyObject *__pyx_kp_u_linear;
static PyObject *__pyx_n_s_linear_2;
static PyObject *__pyx_kp_u_location;
static PyObject *__pyx_n_s_location_2;
static PyObject *__pyx_n_s_logBuffer;
static PyObject *__pyx_n_s_luid;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_major;
static PyObject *__pyx_n_s_map;
static PyObject *__pyx_n_s_mapInfoList;
static PyObject *__pyx_n_s_maxAniso;
static PyObject *__pyx_kp_u_maxAnisotropy;
static PyObject *__pyx_n_s_maxAnisotropy_2;
static PyObject *__pyx_kp_u_maxGridSize;
static PyObject *__pyx_n_s_maxGridSize_2;
static PyObject *__pyx_kp_u_maxMipmapLevelClamp;
static PyObject *__pyx_n_s_maxMipmapLevelClamp_2;
static PyObject *__pyx_kp_u_maxThreadsDim;
static PyObject *__pyx_n_s_maxThreadsDim_2;
static PyObject *__pyx_kp_u_maxThreadsPerBlock;
static PyObject *__pyx_n_s_maxThreadsPerBlock_2;
static PyObject *__pyx_n_s_maxWidthInElements;
static PyObject *__pyx_kp_u_memHandle;
static PyObject *__pyx_n_s_memHandleDesc;
static PyObject *__pyx_kp_u_memHandleType;
static PyObject *__pyx_n_s_memHandleType_2;
static PyObject *__pyx_n_s_memHandle_2;
static PyObject *__pyx_kp_u_memHandle_3;
static PyObject *__pyx_kp_u_memOperationType;
static PyObject *__pyx_n_s_memOperationType_2;
static PyObject *__pyx_kp_u_memPitch;
static PyObject *__pyx_n_s_memPitch_2;
static PyObject *__pyx_n_s_memPool;
static PyObject *__pyx_n_s_memsetParams;
static PyObject *__pyx_n_s_metaclass;
static PyObject *__pyx_n_s_minBytesToKeep;
static PyObject *__pyx_n_s_minGridSize;
static PyObject *__pyx_kp_u_minMipmapLevelClamp;
static PyObject *__pyx_n_s_minMipmapLevelClamp_2;
static PyObject *__pyx_n_s_minor;
static PyObject *__pyx_n_s_mipLevel;
static PyObject *__pyx_kp_u_mipmap;
static PyObject *__pyx_n_s_mipmapDesc;
static PyObject *__pyx_kp_u_mipmapFilterMode;
static PyObject *__pyx_n_s_mipmapFilterMode_2;
static PyObject *__pyx_kp_u_mipmapLevelBias;
static PyObject *__pyx_n_s_mipmapLevelBias_2;
static PyObject *__pyx_n_s_mipmap_2;
static PyObject *__pyx_kp_u_mipmap_3;
static PyObject *__pyx_kp_u_miptail;
static PyObject *__pyx_kp_u_miptailFirstLevel;
static PyObject *__pyx_n_s_miptailFirstLevel_2;
static PyObject *__pyx_kp_u_miptailSize;
static PyObject *__pyx_n_s_miptailSize_2;
static PyObject *__pyx_n_s_miptail_2;
static PyObject *__pyx_kp_u_missProp;
static PyObject *__pyx_n_s_missProp_2;
static PyObject *__pyx_n_s_mode;
static PyObject *__pyx_n_s_module;
static PyObject *__pyx_n_s_module_2;
static PyObject *__pyx_kp_u_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_name_3;
static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
static PyObject *__pyx_n_s_nodeParams;
static PyObject *__pyx_n_s_numAttributes;
static PyObject *__pyx_n_s_numBlocks;
static PyObject *__pyx_kp_u_numChannels;
static PyObject *__pyx_n_s_numChannels_2;
static PyObject *__pyx_n_s_numDependencies;
static PyObject *__pyx_n_s_numDependencies_out;
static PyObject *__pyx_n_s_numDependentNodes;
static PyObject *__pyx_n_s_numDevices;
static PyObject *__pyx_n_s_numEdges;
static PyObject *__pyx_kp_u_numExtSems;
static PyObject *__pyx_n_s_numExtSems_2;
static PyObject *__pyx_kp_u_numLevels;
static PyObject *__pyx_n_s_numLevels_2;
static PyObject *__pyx_n_s_numMipmapLevels;
static PyObject *__pyx_n_s_numNodes;
static PyObject *__pyx_n_s_numOptions;
static PyObject *__pyx_n_s_numParams;
static PyObject *__pyx_n_s_numRootNodes;
static PyObject *__pyx_kp_u_num_bytes;
static PyObject *__pyx_n_s_num_bytes_2;
static PyObject *__pyx_n_s_numbytes;
static PyObject *__pyx_kp_u_nvSciBufObject;
static PyObject *__pyx_n_s_nvSciBufObject_2;
static PyObject *__pyx_kp_u_nvSciSync;
static PyObject *__pyx_n_s_nvSciSyncAttrList;
static PyObject *__pyx_kp_u_nvSciSyncObj;
static PyObject *__pyx_n_s_nvSciSyncObj_2;
static PyObject *__pyx_n_s_nvSciSync_2;
static PyObject *__pyx_n_s_obj;
static PyObject *__pyx_n_s_objType;
static PyObject *__pyx_n_s_object;
static PyObject *__pyx_n_s_object_out;
static PyObject *__pyx_kp_u_offset;
static PyObject *__pyx_kp_u_offsetX;
static PyObject *__pyx_n_s_offsetX_2;
static PyObject *__pyx_kp_u_offsetY;
static PyObject *__pyx_n_s_offsetY_2;
static PyObject *__pyx_kp_u_offsetZ;
static PyObject *__pyx_n_s_offsetZ_2;
static PyObject *__pyx_n_s_offset_2;
static PyObject *__pyx_kp_u_operation;
static PyObject *__pyx_n_s_operation_2;
static PyObject *__pyx_n_s_option;
static PyObject *__pyx_n_s_optionValues;
static PyObject *__pyx_n_s_options;
static PyObject *__pyx_n_s_ordinal;
static PyObject *__pyx_n_s_originalGraph;
static PyObject *__pyx_n_s_osHandle;
static PyObject *__pyx_n_s_p;
static PyObject *__pyx_kp_u_p2pToken;
static PyObject *__pyx_n_s_p2pToken_2;
static PyObject *__pyx_n_s_pAllocateArray;
static PyObject *__pyx_n_s_pArray;
static PyObject *__pyx_n_s_pArrayDescriptor;
static PyObject *__pyx_n_s_pBorderColor;
static PyObject *__pyx_n_s_pConfig;
static PyObject *__pyx_n_s_pCopy;
static PyObject *__pyx_n_s_pDevPtr;
static PyObject *__pyx_n_s_pExecAffinity;
static PyObject *__pyx_n_s_pExportTableId;
static PyObject *__pyx_n_s_pFlags;
static PyObject *__pyx_n_s_pFormat;
static PyObject *__pyx_n_s_pHandle;
static PyObject *__pyx_n_s_pLevelArray;
static PyObject *__pyx_n_s_pMilliseconds;
static PyObject *__pyx_n_s_pMipmappedArray;
static PyObject *__pyx_n_s_pMipmappedArrayDesc;
static PyObject *__pyx_n_s_pNumChannels;
static PyObject *__pyx_n_s_pPitch;
static PyObject *__pyx_n_s_pPlaneArray;
static PyObject *__pyx_n_s_pResDesc;
static PyObject *__pyx_n_s_pResViewDesc;
static PyObject *__pyx_n_s_pSize;
static PyObject *__pyx_n_s_pStr;
static PyObject *__pyx_n_s_pSurfObject;
static PyObject *__pyx_n_s_pSurfRef;
static PyObject *__pyx_n_s_pTexDesc;
static PyObject *__pyx_n_s_pTexObject;
static PyObject *__pyx_n_s_pTexRef;
static PyObject *__pyx_kp_u_pad;
static PyObject *__pyx_n_s_pad_2;
static PyObject *__pyx_n_s_pam;
static PyObject *__pyx_kp_u_param;
static PyObject *__pyx_n_s_paramArray;
static PyObject *__pyx_n_s_param_2;
static PyObject *__pyx_kp_u_params;
static PyObject *__pyx_kp_u_paramsArray;
static PyObject *__pyx_n_s_paramsArray_2;
static PyObject *__pyx_n_s_params_2;
static PyObject *__pyx_n_s_params_out;
static PyObject *__pyx_n_s_path;
static PyObject *__pyx_n_s_pbase;
static PyObject *__pyx_n_s_pbias;
static PyObject *__pyx_n_s_pciBusId;
static PyObject *__pyx_n_s_pconfig;
static PyObject *__pyx_n_s_pctx;
static PyObject *__pyx_n_s_pdptr;
static PyObject *__pyx_n_s_peerContext;
static PyObject *__pyx_n_s_peerDev;
static PyObject *__pyx_n_s_pfm;
static PyObject *__pyx_n_s_pfn;
static PyObject *__pyx_n_s_pformat;
static PyObject *__pyx_n_s_phArray;
static PyObject *__pyx_n_s_phErrorNode;
static PyObject *__pyx_n_s_phEvent;
static PyObject *__pyx_n_s_phGraph;
static PyObject *__pyx_n_s_phGraphClone;
static PyObject *__pyx_n_s_phGraphExec;
static PyObject *__pyx_n_s_phGraphNode;
static PyObject *__pyx_n_s_phMipmappedArray;
static PyObject *__pyx_n_s_phNode;
static PyObject *__pyx_n_s_phStream;
static PyObject *__pyx_n_s_pi;
static PyObject *__pyx_kp_u_pitch;
static PyObject *__pyx_kp_u_pitch2D;
static PyObject *__pyx_n_s_pitch2D_2;
static PyObject *__pyx_kp_u_pitchInBytes;
static PyObject *__pyx_n_s_pitchInBytes_2;
static PyObject *__pyx_n_s_pitch_2;
static PyObject *__pyx_n_s_planeIdx;
static PyObject *__pyx_n_s_pmaxAniso;
static PyObject *__pyx_n_s_pmaxMipmapLevelClamp;
static PyObject *__pyx_n_s_pminMipmapLevelClamp;
static PyObject *__pyx_n_s_pool;
static PyObject *__pyx_kp_u_poolProps;
static PyObject *__pyx_n_s_poolProps_2;
static PyObject *__pyx_n_s_pool_out;
static PyObject *__pyx_n_s_pp;
static PyObject *__pyx_n_s_ppExportTable;
static PyObject *__pyx_n_s_prepare;
static PyObject *__pyx_n_s_priority;
static PyObject *__pyx_n_s_prop;
static PyObject *__pyx_n_s_psize;
static PyObject *__pyx_n_s_ptr;
static PyObject *__pyx_n_s_ptr_2;
static PyObject *__pyx_n_s_ptr_out;
static PyObject *__pyx_n_s_pvalue;
static PyObject *__pyx_n_s_pyObj;
static PyObject *__pyx_n_s_pyattributes;
static PyObject *__pyx_n_s_pydataSizes;
static PyObject *__pyx_n_s_pydependencies;
static PyObject *__pyx_n_s_pydependencies_out;
static PyObject *__pyx_n_s_pydependentNodes;
static PyObject *__pyx_n_s_pyfrom;
static PyObject *__pyx_n_s_pylist;
static PyObject *__pyx_n_s_pynodes;
static PyObject *__pyx_n_s_pyoptionValues;
static PyObject *__pyx_n_s_pyoptions;
static PyObject *__pyx_n_s_pyrootNodes;
static PyObject *__pyx_n_s_pyto;
static PyObject *__pyx_n_s_pyx_state;
static PyObject *__pyx_n_s_qualname;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_reduce;
static PyObject *__pyx_n_s_reduce_cython;
static PyObject *__pyx_n_s_reduce_ex;
static PyObject *__pyx_kp_u_regsPerBlock;
static PyObject *__pyx_n_s_regsPerBlock_2;
static PyObject *__pyx_kp_u_requestedHandleTypes;
static PyObject *__pyx_n_s_requestedHandleTypes_2;
static PyObject *__pyx_kp_u_res;
static PyObject *__pyx_kp_u_resType;
static PyObject *__pyx_n_s_resType_2;
static PyObject *__pyx_n_s_res_2;
static PyObject *__pyx_kp_u_reserved;
static PyObject *__pyx_kp_u_reserved0;
static PyObject *__pyx_n_s_reserved0_2;
static PyObject *__pyx_kp_u_reserved1;
static PyObject *__pyx_n_s_reserved1_2;
static PyObject *__pyx_n_s_reserved_2;
static PyObject *__pyx_kp_u_reserved_3;
static PyObject *__pyx_kp_u_reserved_length_must_be_4_is;
static PyObject *__pyx_kp_u_reserved_length_must_be_64_is;
static PyObject *__pyx_kp_u_resource;
static PyObject *__pyx_kp_u_resourceType;
static PyObject *__pyx_n_s_resourceType_2;
static PyObject *__pyx_n_s_resource_2;
static PyObject *__pyx_n_s_resources;
static PyObject *__pyx_n_s_scope;
static PyObject *__pyx_n_s_self;
static PyObject *__pyx_n_s_semHandleDesc;
static PyObject *__pyx_n_s_send;
static PyObject *__pyx_n_s_setstate;
static PyObject *__pyx_n_s_setstate_cython;
static PyObject *__pyx_n_s_shHandleType;
static PyObject *__pyx_n_s_shareData;
static PyObject *__pyx_n_s_shareData_out;
static PyObject *__pyx_n_s_shareableHandle;
static PyObject *__pyx_kp_u_sharedMemBytes;
static PyObject *__pyx_n_s_sharedMemBytes_2;
static PyObject *__pyx_kp_u_sharedMemPerBlock;
static PyObject *__pyx_n_s_sharedMemPerBlock_2;
static PyObject *__pyx_kp_u_size;
static PyObject *__pyx_kp_u_sizeInBytes;
static PyObject *__pyx_n_s_sizeInBytes_2;
static PyObject *__pyx_n_s_sizeOut;
static PyObject *__pyx_n_s_size_2;
static PyObject *__pyx_n_s_sizeof;
static PyObject *__pyx_kp_u_smCount;
static PyObject *__pyx_n_s_smCount_2;
static PyObject *__pyx_kp_u_sparseLevel;
static PyObject *__pyx_n_s_sparseLevel_2;
static PyObject *__pyx_n_s_sparseProperties;
static PyObject *__pyx_n_s_src;
static PyObject *__pyx_kp_u_srcArray;
static PyObject *__pyx_n_s_srcArray_2;
static PyObject *__pyx_kp_u_srcContext;
static PyObject *__pyx_n_s_srcContext_2;
static PyObject *__pyx_kp_u_srcDevice;
static PyObject *__pyx_n_s_srcDevice_2;
static PyObject *__pyx_kp_u_srcHeight;
static PyObject *__pyx_n_s_srcHeight_2;
static PyObject *__pyx_kp_u_srcHost;
static PyObject *__pyx_n_s_srcHost_2;
static PyObject *__pyx_kp_u_srcLOD;
static PyObject *__pyx_n_s_srcLOD_2;
static PyObject *__pyx_kp_u_srcMemoryType;
static PyObject *__pyx_n_s_srcMemoryType_2;
static PyObject *__pyx_n_s_srcOffset;
static PyObject *__pyx_kp_u_srcPitch;
static PyObject *__pyx_n_s_srcPitch_2;
static PyObject *__pyx_kp_u_srcXInBytes;
static PyObject *__pyx_n_s_srcXInBytes_2;
static PyObject *__pyx_kp_u_srcY;
static PyObject *__pyx_n_s_srcY_2;
static PyObject *__pyx_kp_u_srcZ;
static PyObject *__pyx_n_s_srcZ_2;
static PyObject *__pyx_n_s_startswith;
static PyObject *__pyx_n_s_state;
static PyObject *__pyx_n_s_stateOut;
static PyObject *__pyx_n_s_stream;
static PyObject *__pyx_kp_s_stringsource;
static PyObject *__pyx_kp_u_subresource;
static PyObject *__pyx_kp_u_subresourceType;
static PyObject *__pyx_n_s_subresourceType_2;
static PyObject *__pyx_n_s_subresource_2;
static PyObject *__pyx_n_s_surfObject;
static PyObject *__pyx_n_s_symbol;
static PyObject *__pyx_kp_u_syncPolicy;
static PyObject *__pyx_n_s_syncPolicy_2;
static PyObject *__pyx_n_s_target;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_texObject;
static PyObject *__pyx_kp_u_textureAlign;
static PyObject *__pyx_n_s_textureAlign_2;
static PyObject *__pyx_n_s_texunit;
static PyObject *__pyx_n_s_throw;
static PyObject *__pyx_kp_u_tileExtent;
static PyObject *__pyx_n_s_tileExtent_2;
static PyObject *__pyx_kp_u_timeoutMs;
static PyObject *__pyx_n_s_timeoutMs_2;
static PyObject *__pyx_n_s_to;
static PyObject *__pyx_n_s_total;
static PyObject *__pyx_kp_u_totalConstantMemory;
static PyObject *__pyx_n_s_totalConstantMemory_2;
static PyObject *__pyx_kp_u_type;
static PyObject *__pyx_n_s_type_2;
static PyObject *__pyx_n_s_typename;
static PyObject *__pyx_n_s_typing;
static PyObject *__pyx_n_s_uc;
static PyObject *__pyx_n_s_ui;
static PyObject *__pyx_n_s_updateResult_out;
static PyObject *__pyx_n_s_us;
static PyObject *__pyx_kp_u_usage;
static PyObject *__pyx_n_s_usage_2;
static PyObject *__pyx_kp_u_userData;
static PyObject *__pyx_n_s_userData_2;
static PyObject *__pyx_n_s_uuid;
static PyObject *__pyx_kp_u_vaSpaceToken;
static PyObject *__pyx_n_s_vaSpaceToken_2;
static PyObject *__pyx_kp_u_val;
static PyObject *__pyx_n_s_val_2;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_kp_u_value64;
static PyObject *__pyx_n_s_value64_2;
static PyObject *__pyx_kp_u_value_2;
static PyObject *__pyx_n_s_value_out;
static PyObject *__pyx_n_s_version;
static PyObject *__pyx_n_s_voidStarHelper;
static PyObject *__pyx_kp_u_waitValue;
static PyObject *__pyx_n_s_waitValue_2;
static PyObject *__pyx_kp_u_width;
static PyObject *__pyx_n_s_width_2;
static PyObject *__pyx_kp_u_win32;
static PyObject *__pyx_kp_u_win32HandleMetaData;
static PyObject *__pyx_n_s_win32HandleMetaData_2;
static PyObject *__pyx_kp_u_win32SecurityAttributes;
static PyObject *__pyx_n_s_win32SecurityAttributes_2;
static PyObject *__pyx_n_s_win32_2;
static PyObject *__pyx_kp_u_writeValue;
static PyObject *__pyx_n_s_writeValue_2;
static PyObject *__pyx_n_s_x;
static PyObject *__pyx_n_u_x;
static PyObject *__pyx_n_s_y;
static PyObject *__pyx_n_s_z;
static PyObject *__pyx_n_s_zip;
static int __pyx_pf_4cuda_4cuda_9CUcontext___cinit__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_9CUcontext_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_9CUcontext_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_6__repr__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_8__index__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_10__int__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_12getPtr(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUmodule___cinit__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUmodule_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_8CUmodule_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_6__repr__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_8__index__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_10__int__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_12getPtr(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_10CUfunction___cinit__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_10CUfunction_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_10CUfunction_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_6__repr__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_8__index__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_10__int__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_12getPtr(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_7CUarray___cinit__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_7CUarray_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_7CUarray_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_6__repr__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_8__index__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_10__int__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_12getPtr(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUmipmappedArray___cinit__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUmipmappedArray_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_16CUmipmappedArray_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_6__repr__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_8__index__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_10__int__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_12getPtr(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUtexref___cinit__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUtexref_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_8CUtexref_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_6__repr__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_8__index__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_10__int__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_12getPtr(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_9CUsurfref___cinit__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_9CUsurfref_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_9CUsurfref_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_6__repr__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_8__index__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_10__int__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_12getPtr(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_7CUevent___cinit__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_7CUevent_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_7CUevent_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_6__repr__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_8__index__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_10__int__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_12getPtr(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUstream___cinit__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUstream_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_8CUstream_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_6__repr__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_8__index__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_10__int__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_12getPtr(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUgraphicsResource___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUgraphicsResource_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_18CUgraphicsResource_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUexternalMemory___cinit__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUexternalMemory_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_16CUexternalMemory_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_6__repr__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_8__index__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_10__int__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_12getPtr(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_19CUexternalSemaphore___cinit__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_6__repr__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_8__index__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_10__int__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_12getPtr(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_7CUgraph___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_7CUgraph_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_7CUgraph_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUgraphNode___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUgraphNode_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_11CUgraphNode_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUgraphExec___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUgraphExec_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_11CUgraphExec_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUmemoryPool___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUmemoryPool_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_12CUmemoryPool_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_6__repr__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_8__index__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_10__int__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_12getPtr(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUuserObject___cinit__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUuserObject_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_12CUuserObject_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_6__repr__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_8__index__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_10__int__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_12getPtr(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUlinkState___cinit__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUlinkState_2__init__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_11CUlinkState_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_6__repr__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_8__index__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_10__int__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_12getPtr(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUhostFn___cinit__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUhostFn_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_8CUhostFn_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_6__repr__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_8__index__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_10__int__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_12getPtr(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUstreamCallback___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUstreamCallback_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_16CUstreamCallback_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_6__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_8__index__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_10__int__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_12getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize___cinit__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static void __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_6__repr__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_8__index__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_10__int__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_12getPtr(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_9CUuuid_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_9CUuuid_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_9CUuuid_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_5bytes___get__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, PyObject *__pyx_v_operation); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_address); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value64); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_alias); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, PyObject *__pyx_v_operation); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_address); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value64); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_alias); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, PyObject *__pyx_v_operation); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, PyObject *__pyx_v_operation); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_waitValue); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_writeValue); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_flushRemoteWrites); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, PyObject *__pyx_v_pad); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_12CUdevprop_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_maxThreadsPerBlock); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, PyObject *__pyx_v_maxThreadsDim); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_11maxGridSize___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_11maxGridSize_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, PyObject *__pyx_v_maxGridSize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_sharedMemPerBlock); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_totalConstantMemory); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_9SIMDWidth___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_SIMDWidth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_8memPitch___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_8memPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_memPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_12regsPerBlock___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_regsPerBlock); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_9clockRate___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_9clockRate_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_clockRate); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_12textureAlign___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_12textureAlign_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_textureAlign); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, PyObject *__pyx_v_base_ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, size_t __pyx_v_num_bytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, float __pyx_v_hitRatio); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, PyObject *__pyx_v_hitProp); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, PyObject *__pyx_v_missProp); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimX); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimX); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_sharedMemBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_kernelParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_extra); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_pitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_elementSize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_width); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn___get__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_fn); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData___get__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_userData); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union___cinit__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_2__init__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_6getPtr(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_8__repr__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow___get__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_2__set__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *__pyx_v_accessPolicyWindow); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative___get__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_2__set__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, int __pyx_v_cooperative); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow___get__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *__pyx_v_accessPolicyWindow); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy___get__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, PyObject *__pyx_v_syncPolicy); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_3val___get__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_2__set__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, unsigned int __pyx_v_val); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount___get__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_2__set__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *__pyx_v_smCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, PyObject *__pyx_v_type); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_5param___get__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_5param_2__set__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_param); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_srcXInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_srcY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_srcMemoryType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_srcHost); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_srcPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_dstXInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_dstY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_dstMemoryType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_dstHost); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_dstPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_WidthInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcXInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcLOD); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_srcMemoryType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_srcHost); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_reserved0); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcHeight); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstXInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstLOD); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_dstMemoryType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_dstHost); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_reserved1); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstHeight); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_WidthInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_Depth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcXInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcLOD); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_srcMemoryType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_srcHost); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcHeight); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstXInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstLOD); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_dstMemoryType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_dstHost); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstPitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstHeight); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_WidthInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_Depth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Width); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, PyObject *__pyx_v_Format); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, unsigned int __pyx_v_NumChannels); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Width); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Depth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, PyObject *__pyx_v_Format); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, unsigned int __pyx_v_NumChannels); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width___get__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, unsigned int __pyx_v_width); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height___get__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, unsigned int __pyx_v_height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth___get__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, unsigned int __pyx_v_depth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_tileExtent); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, unsigned int __pyx_v_miptailFirstLevel); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_miptailSize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, PyObject *__pyx_v_format); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, unsigned int __pyx_v_numChannels); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, size_t __pyx_v_sizeInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, PyObject *__pyx_v_format); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, unsigned int __pyx_v_numChannels); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, size_t __pyx_v_width); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, size_t __pyx_v_height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, size_t __pyx_v_pitchInBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_array); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_mipmap); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_linear); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_pitch2D); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, PyObject *__pyx_v_resType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_res); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_addressMode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_filterMode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, unsigned int __pyx_v_maxAnisotropy); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_mipmapFilterMode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, float __pyx_v_mipmapLevelBias); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, float __pyx_v_minMipmapLevelClamp); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, float __pyx_v_maxMipmapLevelClamp); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_borderColor); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, PyObject *__pyx_v_format); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, size_t __pyx_v_width); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, size_t __pyx_v_height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, size_t __pyx_v_depth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_firstMipmapLevel); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_lastMipmapLevel); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_firstLayer); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_lastLayer); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken___get__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_p2pToken); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken___get__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, unsigned int __pyx_v_vaSpaceToken); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_function); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimX); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimX); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_sharedMemBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_kernelParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, int __pyx_v_fd); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_win32); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, PyObject *__pyx_v_nvSciBufObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_type); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_size); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_size); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_arrayDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, unsigned int __pyx_v_numLevels); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, int __pyx_v_fd); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_win32); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, PyObject *__pyx_v_nvSciSyncObj); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_type); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, PyObject *__pyx_v_fence); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_key); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_fence); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_nvSciSync); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_keyedMutex); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_params); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, PyObject *__pyx_v_fence); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_key); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, unsigned int __pyx_v_timeoutMs); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_fence); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_nvSciSync); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_keyedMutex); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_params); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_numExtSems); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_numExtSems); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_mipmap); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_array); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_level); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_layer); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_offsetX); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_offsetY); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_offsetZ); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_extentWidth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_extentHeight); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_extentDepth); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, unsigned int __pyx_v_layer); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_size); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_sparseLevel); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_miptail); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_memHandle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_resourceType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8resource___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8resource_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_resource); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_subresourceType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_11subresource___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_subresource); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_memOperationType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_memHandleType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_memHandle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6offset___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6offset_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, unsigned int __pyx_v_deviceBitMask); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, PyObject *__pyx_v_type); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_2id___get__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2id_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, int __pyx_v_id); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, unsigned char __pyx_v_compressionType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, unsigned char __pyx_v_gpuDirectRDMACapable); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, unsigned short __pyx_v_usage); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, PyObject *__pyx_v_type); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, PyObject *__pyx_v_requestedHandleTypes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8location___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8location_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, PyObject *__pyx_v_win32HandleMetaData); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_allocFlags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8location___get__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8location_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_9allocType___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_9allocType_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_allocType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_handleTypes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8location___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8location_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_win32SecurityAttributes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, PyObject *__pyx_v_reserved); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *__pyx_v_poolProps); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_accessDescCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_bytesize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_10cuuint32_t___cinit__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self, uint32_t __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_10cuuint32_t_2__dealloc__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_4__repr__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_6__int__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_8getPtr(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_10cuuint64_t___cinit__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self, uint64_t __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_10cuuint64_t_2__dealloc__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_4__repr__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_6__int__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_8getPtr(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2___cinit__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_6__int__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUdeviceptr___cinit__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_11CUdeviceptr_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_6__int__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUdevice_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self, int __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_11CUdevice_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_8CUdevice___cinit__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self, int __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_8CUdevice_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_6__int__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_14CUtexObject_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_14CUtexObject_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_11CUtexObject___cinit__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_11CUtexObject_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_4__repr__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_6__int__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_8getPtr(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_15CUsurfObject_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_12CUsurfObject___cinit__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_12CUsurfObject_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_4__repr__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_6__int__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_8getPtr(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr); /* proto */
static void __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_4__repr__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_6__int__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_8getPtr(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_cuGetErrorString(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_error); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_2cuGetErrorName(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_error); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_4cuInit(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_6cuDriverGetVersion(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_8cuDeviceGet(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_ordinal); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_10cuDeviceGetCount(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12cuDeviceGetName(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_length, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14cuDeviceGetUuid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_16cuDeviceGetUuid_v2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18cuDeviceGetLuid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20cuDeviceTotalMem(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22cuDeviceGetTexture1DLinearMaxWidth(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pformat, unsigned int __pyx_v_numChannels, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24cuDeviceGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attrib, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_26cuDeviceGetNvSciSyncAttributes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_28cuDeviceSetMemPool(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_30cuDeviceGetMemPool(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_32cuDeviceGetDefaultMemPool(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_34cuFlushGPUDirectRDMAWrites(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target, PyObject *__pyx_v_scope); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36cuDeviceGetProperties(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38cuDeviceComputeCapability(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_40cuDevicePrimaryCtxRetain(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_42cuDevicePrimaryCtxRelease(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_44cuDevicePrimaryCtxSetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_46cuDevicePrimaryCtxGetState(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_48cuDevicePrimaryCtxReset(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_50cuDeviceGetExecAffinitySupport(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_typename, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_52cuCtxCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14cuCtxCreate_v3_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_54cuCtxCreate_v3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_paramsArray, int __pyx_v_numParams, unsigned int __pyx_v_flags, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_56cuCtxDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_58cuCtxPushCurrent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_60cuCtxPopCurrent(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_62cuCtxSetCurrent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_64cuCtxGetCurrent(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_66cuCtxGetDevice(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_68cuCtxGetFlags(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_70cuCtxSynchronize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_72cuCtxSetLimit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_limit, size_t __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_74cuCtxGetLimit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_limit); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_76cuCtxGetCacheConfig(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_78cuCtxSetCacheConfig(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_config); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_80cuCtxGetSharedMemConfig(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_82cuCtxSetSharedMemConfig(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_config); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_84cuCtxGetApiVersion(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_86cuCtxGetStreamPriorityRange(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_88cuCtxResetPersistingL2Cache(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_90cuCtxGetExecAffinity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_typename); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_92cuCtxAttach(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_94cuCtxDetach(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_96cuModuleLoad(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_fname); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_98cuModuleLoadData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_image); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18cuModuleLoadDataEx_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_100cuModuleLoadDataEx(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_image, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_102cuModuleLoadFatBinary(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fatCubin); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_104cuModuleUnload(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_106cuModuleGetFunction(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_108cuModuleGetGlobal(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_110cuModuleGetTexRef(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_112cuModuleGetSurfRef(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_12cuLinkCreate_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_114cuLinkCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_13cuLinkAddData_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_116cuLinkAddData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state, PyObject *__pyx_v_typename, PyObject *__pyx_v_data, size_t __pyx_v_size, char *__pyx_v_name, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_13cuLinkAddFile_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_118cuLinkAddFile(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state, PyObject *__pyx_v_typename, char *__pyx_v_path, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_120cuLinkComplete(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_122cuLinkDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_124cuMemGetInfo(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_126cuMemAlloc(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_128cuMemAllocPitch(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_WidthInBytes, size_t __pyx_v_Height, unsigned int __pyx_v_ElementSizeBytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_130cuMemFree(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_132cuMemGetAddressRange(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_134cuMemAllocHost(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_136cuMemFreeHost(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_138cuMemHostAlloc(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_140cuMemHostGetDevicePointer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_142cuMemHostGetFlags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_144cuMemAllocManaged(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_146cuDeviceGetByPCIBusId(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_pciBusId); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_148cuDeviceGetPCIBusId(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_length, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_150cuIpcGetEventHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_152cuIpcOpenEventHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUipcEventHandle *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_154cuIpcGetMemHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_156cuIpcOpenMemHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUipcMemHandle *__pyx_v_handle, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_158cuIpcCloseMemHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_160cuMemHostRegister(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p, size_t __pyx_v_bytesize, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_162cuMemHostUnregister(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_164cuMemcpy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_src, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_166cuMemcpyPeer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_168cuMemcpyHtoD(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_170cuMemcpyDtoH(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_172cuMemcpyDtoD(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_174cuMemcpyDtoA(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_176cuMemcpyAtoD(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_178cuMemcpyHtoA(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_180cuMemcpyAtoH(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_182cuMemcpyAtoA(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_184cuMemcpy2D(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_186cuMemcpy2DUnaligned(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_188cuMemcpy3D(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_pCopy); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_190cuMemcpy3DPeer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *__pyx_v_pCopy); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_192cuMemcpyAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_src, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_194cuMemcpyPeerAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_196cuMemcpyHtoDAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_198cuMemcpyDtoHAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_200cuMemcpyDtoDAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_202cuMemcpyHtoAAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_204cuMemcpyAtoHAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_206cuMemcpy2DAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_208cuMemcpy3DAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_pCopy, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_210cuMemcpy3DPeerAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *__pyx_v_pCopy, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_212cuMemsetD8(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned char __pyx_v_uc, size_t __pyx_v_N); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_214cuMemsetD16(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned short __pyx_v_us, size_t __pyx_v_N); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_216cuMemsetD32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned int __pyx_v_ui, size_t __pyx_v_N); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_218cuMemsetD2D8(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned char __pyx_v_uc, size_t __pyx_v_Width, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_220cuMemsetD2D16(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned short __pyx_v_us, size_t __pyx_v_Width, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_222cuMemsetD2D32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned int __pyx_v_ui, size_t __pyx_v_Width, size_t __pyx_v_Height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_224cuMemsetD8Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned char __pyx_v_uc, size_t __pyx_v_N, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_226cuMemsetD16Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned short __pyx_v_us, size_t __pyx_v_N, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_228cuMemsetD32Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned int __pyx_v_ui, size_t __pyx_v_N, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_230cuMemsetD2D8Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned char __pyx_v_uc, size_t __pyx_v_Width, size_t __pyx_v_Height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_232cuMemsetD2D16Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned short __pyx_v_us, size_t __pyx_v_Width, size_t __pyx_v_Height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_234cuMemsetD2D32Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned int __pyx_v_ui, size_t __pyx_v_Width, size_t __pyx_v_Height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_236cuArrayCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_pAllocateArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_238cuArrayGetDescriptor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_240cuArrayGetSparseProperties(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_array); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_242cuMipmappedArrayGetSparseProperties(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_mipmap); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_244cuArrayGetPlane(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray, unsigned int __pyx_v_planeIdx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_246cuArrayDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_248cuArray3DCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_pAllocateArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_250cuArray3DGetDescriptor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_252cuMipmappedArrayCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_pMipmappedArrayDesc, unsigned int __pyx_v_numMipmapLevels); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_254cuMipmappedArrayGetLevel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray, unsigned int __pyx_v_level); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_256cuMipmappedArrayDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_258cuMemAddressReserve(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_size, size_t __pyx_v_alignment, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_260cuMemAddressFree(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_262cuMemCreate(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_size, struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_264cuMemRelease(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_266cuMemMap(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size, size_t __pyx_v_offset, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18cuMemMapArrayAsync_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_268cuMemMapArrayAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mapInfoList, unsigned int __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_270cuMemUnmap(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_14cuMemSetAccess_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_272cuMemSetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size, PyObject *__pyx_v_desc, size_t __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_274cuMemGetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_276cuMemExportToShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle, PyObject *__pyx_v_handleType, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_278cuMemImportFromShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_osHandle, PyObject *__pyx_v_shHandleType); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_280cuMemGetAllocationGranularity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop, PyObject *__pyx_v_option); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_282cuMemGetAllocationPropertiesFromHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_284cuMemRetainAllocationHandle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_addr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_286cuMemFreeAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_288cuMemAllocAsync(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_290cuMemPoolTrimTo(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, size_t __pyx_v_minBytesToKeep); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_292cuMemPoolSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_attr, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_294cuMemPoolGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_attr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18cuMemPoolSetAccess_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_296cuMemPoolSetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_map, size_t __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_298cuMemPoolGetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_memPool, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_300cuMemPoolCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *__pyx_v_poolProps); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_302cuMemPoolDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_304cuMemAllocFromPoolAsync(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_306cuMemPoolExportToShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_handleType, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_308cuMemPoolImportFromShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_handle, PyObject *__pyx_v_handleType, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_310cuMemPoolExportPointer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_312cuMemPoolImportPointer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData *__pyx_v_shareData); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_314cuPointerGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attribute, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_316cuMemPrefetchAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_318cuMemAdvise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count, PyObject *__pyx_v_advice, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_320cuMemRangeGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_dataSize, PyObject *__pyx_v_attribute, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23cuMemRangeGetAttributes_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23cuMemRangeGetAttributes_3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_322cuMemRangeGetAttributes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dataSizes, PyObject *__pyx_v_attributes, size_t __pyx_v_numAttributes, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_324cuPointerSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, PyObject *__pyx_v_attribute, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22cuPointerGetAttributes_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_326cuPointerGetAttributes(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_numAttributes, PyObject *__pyx_v_attributes, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_328cuStreamCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_330cuStreamCreateWithPriority(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags, int __pyx_v_priority); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_332cuStreamGetPriority(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_334cuStreamGetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_336cuStreamGetCtx(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_338cuStreamWaitEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_340cuStreamAddCallback(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_callback, PyObject *__pyx_v_userData, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_342cuStreamBeginCapture(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_mode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_344cuThreadExchangeStreamCaptureMode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_346cuStreamEndCapture(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_348cuStreamIsCapturing(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_350cuStreamGetCaptureInfo(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_352cuStreamGetCaptureInfo_v2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_354cuStreamUpdateCaptureDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_356cuStreamAttachMemAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, size_t __pyx_v_length, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_358cuStreamQuery(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_360cuStreamSynchronize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_362cuStreamDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_364cuStreamCopyAttributes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_src); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_366cuStreamGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_attr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_368cuStreamSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_attr, struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_370cuEventCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_372cuEventRecord(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_374cuEventRecordWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_376cuEventQuery(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_378cuEventSynchronize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_380cuEventDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_382cuEventElapsedTime(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hStart, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEnd); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_384cuImportExternalMemory(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC *__pyx_v_memHandleDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_386cuExternalMemoryGetMappedBuffer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC *__pyx_v_bufferDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_388cuExternalMemoryGetMappedMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC *__pyx_v_mipmapDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_390cuDestroyExternalMemory(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_392cuImportExternalSemaphore(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC *__pyx_v_semHandleDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_394cuSignalExternalSemaphoresAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_extSemArray, PyObject *__pyx_v_paramsArray, unsigned int __pyx_v_numExtSems, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_396cuWaitExternalSemaphoresAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_extSemArray, PyObject *__pyx_v_paramsArray, unsigned int __pyx_v_numExtSems, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_398cuDestroyExternalSemaphore(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_extSem); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_400cuStreamWaitValue32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_value, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_402cuStreamWaitValue64(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_404cuStreamWriteValue32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_value, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_406cuStreamWriteValue64(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18cuStreamBatchMemOp_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_408cuStreamBatchMemOp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, unsigned int __pyx_v_count, PyObject *__pyx_v_paramArray, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_410cuFuncGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attrib, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_412cuFuncSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, PyObject *__pyx_v_attrib, int __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_414cuFuncSetCacheConfig(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, PyObject *__pyx_v_config); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_416cuFuncSetSharedMemConfig(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, PyObject *__pyx_v_config); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_418cuFuncGetModule(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_420cuLaunchKernel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, unsigned int __pyx_v_gridDimX, unsigned int __pyx_v_gridDimY, unsigned int __pyx_v_gridDimZ, unsigned int __pyx_v_blockDimX, unsigned int __pyx_v_blockDimY, unsigned int __pyx_v_blockDimZ, unsigned int __pyx_v_sharedMemBytes, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_kernelParams, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_extra); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_422cuLaunchCooperativeKernel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, unsigned int __pyx_v_gridDimX, unsigned int __pyx_v_gridDimY, unsigned int __pyx_v_gridDimZ, unsigned int __pyx_v_blockDimX, unsigned int __pyx_v_blockDimY, unsigned int __pyx_v_blockDimZ, unsigned int __pyx_v_sharedMemBytes, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_kernelParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_424cuLaunchCooperativeKernelMultiDevice(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_launchParamsList, unsigned int __pyx_v_numDevices, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_426cuLaunchHostFunc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_fn, PyObject *__pyx_v_userData); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_428cuFuncSetBlockShape(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_x, int __pyx_v_y, int __pyx_v_z); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_430cuFuncSetSharedSize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, unsigned int __pyx_v_numbytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_432cuParamSetSize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, unsigned int __pyx_v_numbytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_434cuParamSeti(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_offset, unsigned int __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_436cuParamSetf(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_offset, float __pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_438cuParamSetv(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_offset, PyObject *__pyx_v_ptr, unsigned int __pyx_v_numbytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_440cuLaunch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_442cuLaunchGrid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, int __pyx_v_grid_width, int __pyx_v_grid_height); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_444cuLaunchGridAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, int __pyx_v_grid_width, int __pyx_v_grid_height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_446cuParamSetTexRef(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_texunit, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_448cuGraphCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20cuGraphAddKernelNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_450cuGraphAddKernelNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_452cuGraphKernelNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_454cuGraphKernelNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20cuGraphAddMemcpyNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_456cuGraphAddMemcpyNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_copyParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_458cuGraphMemcpyNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_460cuGraphMemcpyNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_20cuGraphAddMemsetNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_462cuGraphAddMemsetNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_memsetParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_464cuGraphMemsetNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_466cuGraphMemsetNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_18cuGraphAddHostNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_468cuGraphAddHostNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_470cuGraphHostNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_472cuGraphHostNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_24cuGraphAddChildGraphNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_474cuGraphAddChildGraphNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_childGraph); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_476cuGraphChildGraphNodeGetGraph(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_19cuGraphAddEmptyNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_478cuGraphAddEmptyNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25cuGraphAddEventRecordNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_480cuGraphAddEventRecordNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_482cuGraphEventRecordNodeGetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_484cuGraphEventRecordNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_23cuGraphAddEventWaitNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_486cuGraphAddEventWaitNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_488cuGraphEventWaitNodeGetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_490cuGraphEventWaitNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_492cuGraphAddExternalSemaphoresSignalNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_494cuGraphExternalSemaphoresSignalNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_496cuGraphExternalSemaphoresSignalNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_498cuGraphAddExternalSemaphoresWaitNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_500cuGraphExternalSemaphoresWaitNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_502cuGraphExternalSemaphoresWaitNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22cuGraphAddMemAllocNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_504cuGraphAddMemAllocNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_506cuGraphMemAllocNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_21cuGraphAddMemFreeNode_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_508cuGraphAddMemFreeNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_510cuGraphMemFreeNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_512cuDeviceGraphMemTrim(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_514cuDeviceGetGraphMemAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device, PyObject *__pyx_v_attr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_516cuDeviceSetGraphMemAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device, PyObject *__pyx_v_attr, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_518cuGraphClone(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_originalGraph); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_520cuGraphNodeFindInClone(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hOriginalNode, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hClonedGraph); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_522cuGraphNodeGetType(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_524cuGraphGetNodes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, size_t __pyx_v_numNodes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_526cuGraphGetRootNodes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, size_t __pyx_v_numRootNodes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_528cuGraphGetEdges(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, size_t __pyx_v_numEdges); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_530cuGraphNodeGetDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, size_t __pyx_v_numDependencies); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_532cuGraphNodeGetDependentNodes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, size_t __pyx_v_numDependentNodes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22cuGraphAddDependencies_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_22cuGraphAddDependencies_3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_534cuGraphAddDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_from_, PyObject *__pyx_v_to, size_t __pyx_v_numDependencies); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25cuGraphRemoveDependencies_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_25cuGraphRemoveDependencies_3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_536cuGraphRemoveDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_from_, PyObject *__pyx_v_to, size_t __pyx_v_numDependencies); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_538cuGraphDestroyNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_540cuGraphInstantiate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, char *__pyx_v_logBuffer, size_t __pyx_v_bufferSize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_542cuGraphInstantiateWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, unsigned PY_LONG_LONG __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_544cuGraphExecKernelNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_546cuGraphExecMemcpyNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_copyParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_548cuGraphExecMemsetNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_memsetParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_550cuGraphExecHostNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_552cuGraphExecChildGraphNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_childGraph); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_554cuGraphExecEventRecordNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_556cuGraphExecEventWaitNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_558cuGraphExecExternalSemaphoresSignalNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_560cuGraphExecExternalSemaphoresWaitNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_562cuGraphUpload(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_564cuGraphLaunch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_566cuGraphExecDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_568cuGraphDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_570cuGraphExecUpdate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_572cuGraphKernelNodeCopyAttributes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_src); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_574cuGraphKernelNodeGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, PyObject *__pyx_v_attr); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_576cuGraphKernelNodeSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, PyObject *__pyx_v_attr, struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_578cuGraphDebugDotPrint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, char *__pyx_v_path, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_580cuUserObjectCreate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ptr, struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_destroy, unsigned int __pyx_v_initialRefcount, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_582cuUserObjectRetain(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_584cuUserObjectRelease(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_586cuGraphRetainUserObject(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_588cuGraphReleaseUserObject(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_590cuOccupancyMaxActiveBlocksPerMultiprocessor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, int __pyx_v_blockSize, size_t __pyx_v_dynamicSMemSize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_592cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, int __pyx_v_blockSize, size_t __pyx_v_dynamicSMemSize, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_594cuOccupancyMaxPotentialBlockSize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_blockSizeToDynamicSMemSize, size_t __pyx_v_dynamicSMemSize, int __pyx_v_blockSizeLimit); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_596cuOccupancyMaxPotentialBlockSizeWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_blockSizeToDynamicSMemSize, size_t __pyx_v_dynamicSMemSize, int __pyx_v_blockSizeLimit, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_598cuOccupancyAvailableDynamicSMemPerBlock(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, int __pyx_v_numBlocks, int __pyx_v_blockSize); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_600cuTexRefSetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_602cuTexRefSetMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_604cuTexRefSetAddress(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, size_t __pyx_v_numbytes); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_606cuTexRefSetAddress2D(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_desc, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, size_t __pyx_v_Pitch); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_608cuTexRefSetFormat(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, PyObject *__pyx_v_fmt, int __pyx_v_NumPackedComponents); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_610cuTexRefSetAddressMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, int __pyx_v_dim, PyObject *__pyx_v_am); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_612cuTexRefSetFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, PyObject *__pyx_v_fm); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_614cuTexRefSetMipmapFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, PyObject *__pyx_v_fm); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_616cuTexRefSetMipmapLevelBias(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, float __pyx_v_bias); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_618cuTexRefSetMipmapLevelClamp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, float __pyx_v_minMipmapLevelClamp, float __pyx_v_maxMipmapLevelClamp); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_620cuTexRefSetMaxAnisotropy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, unsigned int __pyx_v_maxAniso); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_622cuTexRefSetBorderColor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, float __pyx_v_pBorderColor); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_624cuTexRefSetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_626cuTexRefGetAddress(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_628cuTexRefGetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_630cuTexRefGetMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_632cuTexRefGetAddressMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, int __pyx_v_dim); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_634cuTexRefGetFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_636cuTexRefGetFormat(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_638cuTexRefGetMipmapFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_640cuTexRefGetMipmapLevelBias(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_642cuTexRefGetMipmapLevelClamp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_644cuTexRefGetMaxAnisotropy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_646cuTexRefGetBorderColor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_648cuTexRefGetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_650cuTexRefCreate(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_652cuTexRefDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_654cuSurfRefSetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_hSurfRef, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_656cuSurfRefGetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_hSurfRef); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_658cuTexObjectCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc, struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC *__pyx_v_pTexDesc, struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC *__pyx_v_pResViewDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_660cuTexObjectDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_662cuTexObjectGetResourceDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_664cuTexObjectGetTextureDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_666cuTexObjectGetResourceViewDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_668cuSurfObjectCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_670cuSurfObjectDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_surfObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_672cuSurfObjectGetResourceDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_surfObject); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_674cuDeviceCanAccessPeer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_peerDev); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_676cuCtxEnablePeerAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_peerContext, unsigned int __pyx_v_Flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_678cuCtxDisablePeerAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_peerContext); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_680cuDeviceGetP2PAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attrib, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_srcDevice, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dstDevice); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_682cuGraphicsUnregisterResource(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_684cuGraphicsSubResourceGetMappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource, unsigned int __pyx_v_arrayIndex, unsigned int __pyx_v_mipLevel); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_686cuGraphicsResourceGetMappedMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_688cuGraphicsResourceGetMappedPointer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_690cuGraphicsResourceSetMapFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource, unsigned int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_692cuGraphicsMapResources(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resources, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_694cuGraphicsUnmapResources(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resources, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_696cuGetProcAddress(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_symbol, int __pyx_v_cudaVersion, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_698cuGetExportTable(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUuuid *__pyx_v_pExportTableId); /* proto */
static PyObject *__pyx_pf_4cuda_4cuda_700sizeof(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_objType); /* proto */
static PyObject *__pyx_tp_new_4cuda_4cuda_CUcontext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmodule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUfunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUarray(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmipmappedArray(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUtexref(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUsurfref(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUevent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraphicsResource(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexternalMemory(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexternalSemaphore(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraph(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraphNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraphExec(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemoryPool(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUuserObject(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUlinkState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUhostFn(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamCallback(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUoccupancyB2DSize(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUuuid_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcEventHandle_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcMemHandle_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamMemOpWaitValueParams_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamMemOpWriteValueParams_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_union(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevprop_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_union(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_union(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemLocation_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolProps_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUuuid(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcEventHandle_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcEventHandle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcMemHandle_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcMemHandle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevprop_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevprop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamAttrValue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinityParam(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_v2(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_v2(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUarrayMapInfo(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemLocation_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemLocation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAllocationProp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAccessDesc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolProps_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolProps(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_cuuint32_t(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_cuuint64_t(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdeviceptr_v2(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdeviceptr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevice_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUtexObject_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUtexObject(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUsurfObject_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUsurfObject(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemGenericAllocationHandle_v1(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemGenericAllocationHandle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_5_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_7_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_9_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_11_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_13_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_15_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_17_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_18_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_20_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_22_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_24_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_25_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_27_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_28_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_30_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_32_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_34_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_36_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_38_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_40_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_42_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_44_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_46_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_48_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_50_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_52_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_54_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_56_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_58_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_59_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_61_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_62_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_127;
static PyObject *__pyx_int_256;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__6;
static PyObject *__pyx_tuple__9;
static PyObject *__pyx_tuple__11;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__16;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__26;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__36;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__46;
static PyObject *__pyx_tuple__49;
static PyObject *__pyx_tuple__51;
static PyObject *__pyx_tuple__54;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__61;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__71;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__76;
static PyObject *__pyx_tuple__79;
static PyObject *__pyx_tuple__81;
static PyObject *__pyx_tuple__84;
static PyObject *__pyx_tuple__86;
static PyObject *__pyx_tuple__89;
static PyObject *__pyx_tuple__91;
static PyObject *__pyx_tuple__94;
static PyObject *__pyx_tuple__96;
static PyObject *__pyx_tuple__99;
static PyObject *__pyx_codeobj__2;
static PyObject *__pyx_codeobj__3;
static PyObject *__pyx_codeobj__5;
static PyObject *__pyx_codeobj__7;
static PyObject *__pyx_codeobj__8;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__104;
static PyObject *__pyx_tuple__106;
static PyObject *__pyx_tuple__111;
static PyObject *__pyx_tuple__113;
static PyObject *__pyx_tuple__116;
static PyObject *__pyx_tuple__118;
static PyObject *__pyx_tuple__121;
static PyObject *__pyx_tuple__123;
static PyObject *__pyx_tuple__126;
static PyObject *__pyx_tuple__128;
static PyObject *__pyx_tuple__131;
static PyObject *__pyx_tuple__133;
static PyObject *__pyx_tuple__136;
static PyObject *__pyx_tuple__138;
static PyObject *__pyx_tuple__143;
static PyObject *__pyx_tuple__145;
static PyObject *__pyx_tuple__148;
static PyObject *__pyx_tuple__150;
static PyObject *__pyx_tuple__153;
static PyObject *__pyx_tuple__155;
static PyObject *__pyx_tuple__158;
static PyObject *__pyx_tuple__160;
static PyObject *__pyx_tuple__163;
static PyObject *__pyx_tuple__165;
static PyObject *__pyx_tuple__168;
static PyObject *__pyx_tuple__170;
static PyObject *__pyx_tuple__173;
static PyObject *__pyx_tuple__175;
static PyObject *__pyx_tuple__178;
static PyObject *__pyx_tuple__180;
static PyObject *__pyx_tuple__183;
static PyObject *__pyx_tuple__185;
static PyObject *__pyx_tuple__188;
static PyObject *__pyx_tuple__190;
static PyObject *__pyx_tuple__193;
static PyObject *__pyx_tuple__195;
static PyObject *__pyx_tuple__198;
static PyObject *__pyx_tuple__200;
static PyObject *__pyx_tuple__203;
static PyObject *__pyx_tuple__205;
static PyObject *__pyx_tuple__208;
static PyObject *__pyx_tuple__210;
static PyObject *__pyx_tuple__213;
static PyObject *__pyx_tuple__215;
static PyObject *__pyx_tuple__218;
static PyObject *__pyx_tuple__220;
static PyObject *__pyx_tuple__223;
static PyObject *__pyx_tuple__225;
static PyObject *__pyx_tuple__228;
static PyObject *__pyx_tuple__230;
static PyObject *__pyx_tuple__233;
static PyObject *__pyx_tuple__235;
static PyObject *__pyx_tuple__238;
static PyObject *__pyx_tuple__240;
static PyObject *__pyx_tuple__243;
static PyObject *__pyx_tuple__245;
static PyObject *__pyx_tuple__248;
static PyObject *__pyx_tuple__250;
static PyObject *__pyx_tuple__253;
static PyObject *__pyx_tuple__255;
static PyObject *__pyx_tuple__258;
static PyObject *__pyx_tuple__260;
static PyObject *__pyx_tuple__263;
static PyObject *__pyx_tuple__265;
static PyObject *__pyx_tuple__268;
static PyObject *__pyx_tuple__270;
static PyObject *__pyx_tuple__273;
static PyObject *__pyx_tuple__275;
static PyObject *__pyx_tuple__278;
static PyObject *__pyx_tuple__280;
static PyObject *__pyx_tuple__283;
static PyObject *__pyx_tuple__285;
static PyObject *__pyx_tuple__288;
static PyObject *__pyx_tuple__290;
static PyObject *__pyx_tuple__293;
static PyObject *__pyx_tuple__295;
static PyObject *__pyx_tuple__298;
static PyObject *__pyx_tuple__300;
static PyObject *__pyx_tuple__303;
static PyObject *__pyx_tuple__305;
static PyObject *__pyx_tuple__308;
static PyObject *__pyx_tuple__310;
static PyObject *__pyx_tuple__313;
static PyObject *__pyx_tuple__315;
static PyObject *__pyx_tuple__318;
static PyObject *__pyx_tuple__320;
static PyObject *__pyx_tuple__323;
static PyObject *__pyx_tuple__325;
static PyObject *__pyx_tuple__328;
static PyObject *__pyx_tuple__330;
static PyObject *__pyx_tuple__333;
static PyObject *__pyx_tuple__335;
static PyObject *__pyx_tuple__338;
static PyObject *__pyx_tuple__340;
static PyObject *__pyx_tuple__343;
static PyObject *__pyx_tuple__345;
static PyObject *__pyx_tuple__348;
static PyObject *__pyx_tuple__350;
static PyObject *__pyx_tuple__353;
static PyObject *__pyx_tuple__355;
static PyObject *__pyx_tuple__358;
static PyObject *__pyx_tuple__360;
static PyObject *__pyx_tuple__363;
static PyObject *__pyx_tuple__365;
static PyObject *__pyx_tuple__368;
static PyObject *__pyx_tuple__370;
static PyObject *__pyx_tuple__373;
static PyObject *__pyx_tuple__375;
static PyObject *__pyx_tuple__378;
static PyObject *__pyx_tuple__380;
static PyObject *__pyx_tuple__383;
static PyObject *__pyx_tuple__385;
static PyObject *__pyx_tuple__388;
static PyObject *__pyx_tuple__390;
static PyObject *__pyx_tuple__393;
static PyObject *__pyx_tuple__395;
static PyObject *__pyx_tuple__398;
static PyObject *__pyx_tuple__400;
static PyObject *__pyx_tuple__403;
static PyObject *__pyx_tuple__405;
static PyObject *__pyx_tuple__408;
static PyObject *__pyx_tuple__410;
static PyObject *__pyx_tuple__413;
static PyObject *__pyx_tuple__415;
static PyObject *__pyx_tuple__418;
static PyObject *__pyx_tuple__420;
static PyObject *__pyx_tuple__423;
static PyObject *__pyx_tuple__425;
static PyObject *__pyx_tuple__428;
static PyObject *__pyx_tuple__430;
static PyObject *__pyx_tuple__433;
static PyObject *__pyx_tuple__435;
static PyObject *__pyx_tuple__438;
static PyObject *__pyx_tuple__440;
static PyObject *__pyx_tuple__443;
static PyObject *__pyx_tuple__445;
static PyObject *__pyx_tuple__448;
static PyObject *__pyx_tuple__450;
static PyObject *__pyx_tuple__453;
static PyObject *__pyx_tuple__455;
static PyObject *__pyx_tuple__458;
static PyObject *__pyx_tuple__460;
static PyObject *__pyx_tuple__463;
static PyObject *__pyx_tuple__465;
static PyObject *__pyx_tuple__468;
static PyObject *__pyx_tuple__470;
static PyObject *__pyx_tuple__473;
static PyObject *__pyx_tuple__475;
static PyObject *__pyx_tuple__478;
static PyObject *__pyx_tuple__480;
static PyObject *__pyx_tuple__483;
static PyObject *__pyx_tuple__485;
static PyObject *__pyx_tuple__488;
static PyObject *__pyx_tuple__490;
static PyObject *__pyx_tuple__493;
static PyObject *__pyx_tuple__495;
static PyObject *__pyx_tuple__498;
static PyObject *__pyx_tuple__500;
static PyObject *__pyx_tuple__503;
static PyObject *__pyx_tuple__505;
static PyObject *__pyx_tuple__508;
static PyObject *__pyx_tuple__510;
static PyObject *__pyx_tuple__539;
static PyObject *__pyx_tuple__563;
static PyObject *__pyx_tuple__649;
static PyObject *__pyx_tuple__652;
static PyObject *__pyx_tuple__665;
static PyObject *__pyx_tuple__679;
static PyObject *__pyx_tuple__680;
static PyObject *__pyx_tuple__683;
static PyObject *__pyx_tuple__698;
static PyObject *__pyx_tuple__719;
static PyObject *__pyx_tuple__720;
static PyObject *__pyx_tuple__722;
static PyObject *__pyx_tuple__729;
static PyObject *__pyx_tuple__738;
static PyObject *__pyx_tuple__794;
static PyObject *__pyx_tuple__795;
static PyObject *__pyx_tuple__880;
static PyObject *__pyx_tuple__881;
static PyObject *__pyx_tuple__882;
static PyObject *__pyx_tuple__883;
static PyObject *__pyx_tuple__884;
static PyObject *__pyx_tuple__885;
static PyObject *__pyx_tuple__886;
static PyObject *__pyx_tuple__887;
static PyObject *__pyx_tuple__888;
static PyObject *__pyx_tuple__889;
static PyObject *__pyx_tuple__890;
static PyObject *__pyx_tuple__891;
static PyObject *__pyx_tuple__892;
static PyObject *__pyx_tuple__893;
static PyObject *__pyx_tuple__894;
static PyObject *__pyx_tuple__895;
static PyObject *__pyx_tuple__896;
static PyObject *__pyx_tuple__897;
static PyObject *__pyx_tuple__898;
static PyObject *__pyx_tuple__899;
static PyObject *__pyx_tuple__900;
static PyObject *__pyx_tuple__901;
static PyObject *__pyx_tuple__902;
static PyObject *__pyx_tuple__903;
static PyObject *__pyx_tuple__904;
static PyObject *__pyx_tuple__905;
static PyObject *__pyx_tuple__906;
static PyObject *__pyx_tuple__907;
static PyObject *__pyx_tuple__908;
static PyObject *__pyx_tuple__909;
static PyObject *__pyx_tuple__910;
static PyObject *__pyx_tuple__911;
static PyObject *__pyx_tuple__912;
static PyObject *__pyx_tuple__913;
static PyObject *__pyx_tuple__914;
static PyObject *__pyx_tuple__915;
static PyObject *__pyx_tuple__916;
static PyObject *__pyx_tuple__917;
static PyObject *__pyx_tuple__918;
static PyObject *__pyx_tuple__919;
static PyObject *__pyx_tuple__920;
static PyObject *__pyx_tuple__921;
static PyObject *__pyx_tuple__922;
static PyObject *__pyx_tuple__923;
static PyObject *__pyx_tuple__924;
static PyObject *__pyx_tuple__925;
static PyObject *__pyx_tuple__926;
static PyObject *__pyx_tuple__927;
static PyObject *__pyx_tuple__928;
static PyObject *__pyx_tuple__929;
static PyObject *__pyx_tuple__930;
static PyObject *__pyx_tuple__931;
static PyObject *__pyx_tuple__932;
static PyObject *__pyx_tuple__933;
static PyObject *__pyx_tuple__934;
static PyObject *__pyx_tuple__935;
static PyObject *__pyx_tuple__936;
static PyObject *__pyx_tuple__937;
static PyObject *__pyx_tuple__938;
static PyObject *__pyx_tuple__939;
static PyObject *__pyx_tuple__940;
static PyObject *__pyx_tuple__941;
static PyObject *__pyx_tuple__942;
static PyObject *__pyx_tuple__943;
static PyObject *__pyx_tuple__944;
static PyObject *__pyx_tuple__945;
static PyObject *__pyx_tuple__946;
static PyObject *__pyx_tuple__947;
static PyObject *__pyx_tuple__948;
static PyObject *__pyx_tuple__949;
static PyObject *__pyx_tuple__950;
static PyObject *__pyx_tuple__951;
static PyObject *__pyx_tuple__952;
static PyObject *__pyx_tuple__953;
static PyObject *__pyx_tuple__954;
static PyObject *__pyx_tuple__955;
static PyObject *__pyx_tuple__956;
static PyObject *__pyx_tuple__957;
static PyObject *__pyx_tuple__958;
static PyObject *__pyx_tuple__959;
static PyObject *__pyx_tuple__960;
static PyObject *__pyx_tuple__961;
static PyObject *__pyx_tuple__962;
static PyObject *__pyx_tuple__963;
static PyObject *__pyx_tuple__964;
static PyObject *__pyx_tuple__965;
static PyObject *__pyx_tuple__966;
static PyObject *__pyx_tuple__967;
static PyObject *__pyx_tuple__968;
static PyObject *__pyx_tuple__969;
static PyObject *__pyx_tuple__970;
static PyObject *__pyx_tuple__971;
static PyObject *__pyx_tuple__972;
static PyObject *__pyx_tuple__973;
static PyObject *__pyx_tuple__974;
static PyObject *__pyx_tuple__975;
static PyObject *__pyx_tuple__976;
static PyObject *__pyx_tuple__977;
static PyObject *__pyx_tuple__978;
static PyObject *__pyx_tuple__979;
static PyObject *__pyx_tuple__980;
static PyObject *__pyx_tuple__981;
static PyObject *__pyx_tuple__982;
static PyObject *__pyx_tuple__983;
static PyObject *__pyx_tuple__984;
static PyObject *__pyx_tuple__985;
static PyObject *__pyx_tuple__986;
static PyObject *__pyx_tuple__987;
static PyObject *__pyx_tuple__988;
static PyObject *__pyx_tuple__989;
static PyObject *__pyx_tuple__990;
static PyObject *__pyx_tuple__991;
static PyObject *__pyx_tuple__992;
static PyObject *__pyx_tuple__993;
static PyObject *__pyx_tuple__994;
static PyObject *__pyx_tuple__995;
static PyObject *__pyx_tuple__996;
static PyObject *__pyx_tuple__997;
static PyObject *__pyx_tuple__998;
static PyObject *__pyx_tuple__999;
static PyObject *__pyx_codeobj__10;
static PyObject *__pyx_codeobj__12;
static PyObject *__pyx_codeobj__13;
static PyObject *__pyx_codeobj__15;
static PyObject *__pyx_codeobj__17;
static PyObject *__pyx_codeobj__18;
static PyObject *__pyx_codeobj__20;
static PyObject *__pyx_codeobj__22;
static PyObject *__pyx_codeobj__23;
static PyObject *__pyx_codeobj__25;
static PyObject *__pyx_codeobj__27;
static PyObject *__pyx_codeobj__28;
static PyObject *__pyx_codeobj__30;
static PyObject *__pyx_codeobj__32;
static PyObject *__pyx_codeobj__33;
static PyObject *__pyx_codeobj__35;
static PyObject *__pyx_codeobj__37;
static PyObject *__pyx_codeobj__38;
static PyObject *__pyx_codeobj__40;
static PyObject *__pyx_codeobj__42;
static PyObject *__pyx_codeobj__43;
static PyObject *__pyx_codeobj__45;
static PyObject *__pyx_codeobj__47;
static PyObject *__pyx_codeobj__48;
static PyObject *__pyx_codeobj__50;
static PyObject *__pyx_codeobj__52;
static PyObject *__pyx_codeobj__53;
static PyObject *__pyx_codeobj__55;
static PyObject *__pyx_codeobj__57;
static PyObject *__pyx_codeobj__58;
static PyObject *__pyx_codeobj__60;
static PyObject *__pyx_codeobj__62;
static PyObject *__pyx_codeobj__63;
static PyObject *__pyx_codeobj__65;
static PyObject *__pyx_codeobj__67;
static PyObject *__pyx_codeobj__68;
static PyObject *__pyx_codeobj__70;
static PyObject *__pyx_codeobj__72;
static PyObject *__pyx_codeobj__73;
static PyObject *__pyx_codeobj__75;
static PyObject *__pyx_codeobj__77;
static PyObject *__pyx_codeobj__78;
static PyObject *__pyx_codeobj__80;
static PyObject *__pyx_codeobj__82;
static PyObject *__pyx_codeobj__83;
static PyObject *__pyx_codeobj__85;
static PyObject *__pyx_codeobj__87;
static PyObject *__pyx_codeobj__88;
static PyObject *__pyx_codeobj__90;
static PyObject *__pyx_codeobj__92;
static PyObject *__pyx_codeobj__93;
static PyObject *__pyx_codeobj__95;
static PyObject *__pyx_codeobj__97;
static PyObject *__pyx_codeobj__98;
static PyObject *__pyx_tuple__1000;
static PyObject *__pyx_tuple__1001;
static PyObject *__pyx_tuple__1002;
static PyObject *__pyx_tuple__1003;
static PyObject *__pyx_tuple__1004;
static PyObject *__pyx_tuple__1005;
static PyObject *__pyx_tuple__1006;
static PyObject *__pyx_tuple__1007;
static PyObject *__pyx_tuple__1008;
static PyObject *__pyx_tuple__1009;
static PyObject *__pyx_tuple__1010;
static PyObject *__pyx_tuple__1011;
static PyObject *__pyx_tuple__1012;
static PyObject *__pyx_tuple__1013;
static PyObject *__pyx_tuple__1014;
static PyObject *__pyx_tuple__1015;
static PyObject *__pyx_tuple__1016;
static PyObject *__pyx_tuple__1017;
static PyObject *__pyx_tuple__1018;
static PyObject *__pyx_tuple__1019;
static PyObject *__pyx_tuple__1020;
static PyObject *__pyx_tuple__1021;
static PyObject *__pyx_tuple__1022;
static PyObject *__pyx_tuple__1023;
static PyObject *__pyx_tuple__1024;
static PyObject *__pyx_tuple__1025;
static PyObject *__pyx_tuple__1026;
static PyObject *__pyx_tuple__1027;
static PyObject *__pyx_tuple__1028;
static PyObject *__pyx_tuple__1029;
static PyObject *__pyx_tuple__1030;
static PyObject *__pyx_tuple__1031;
static PyObject *__pyx_tuple__1032;
static PyObject *__pyx_tuple__1033;
static PyObject *__pyx_tuple__1034;
static PyObject *__pyx_tuple__1035;
static PyObject *__pyx_tuple__1036;
static PyObject *__pyx_tuple__1037;
static PyObject *__pyx_tuple__1038;
static PyObject *__pyx_tuple__1039;
static PyObject *__pyx_tuple__1040;
static PyObject *__pyx_tuple__1041;
static PyObject *__pyx_tuple__1042;
static PyObject *__pyx_tuple__1043;
static PyObject *__pyx_tuple__1044;
static PyObject *__pyx_tuple__1045;
static PyObject *__pyx_tuple__1046;
static PyObject *__pyx_tuple__1047;
static PyObject *__pyx_tuple__1048;
static PyObject *__pyx_tuple__1049;
static PyObject *__pyx_tuple__1050;
static PyObject *__pyx_tuple__1051;
static PyObject *__pyx_tuple__1052;
static PyObject *__pyx_tuple__1053;
static PyObject *__pyx_tuple__1054;
static PyObject *__pyx_tuple__1055;
static PyObject *__pyx_tuple__1056;
static PyObject *__pyx_tuple__1057;
static PyObject *__pyx_tuple__1058;
static PyObject *__pyx_tuple__1059;
static PyObject *__pyx_tuple__1060;
static PyObject *__pyx_tuple__1061;
static PyObject *__pyx_tuple__1062;
static PyObject *__pyx_tuple__1063;
static PyObject *__pyx_tuple__1064;
static PyObject *__pyx_tuple__1065;
static PyObject *__pyx_tuple__1066;
static PyObject *__pyx_tuple__1067;
static PyObject *__pyx_tuple__1068;
static PyObject *__pyx_tuple__1069;
static PyObject *__pyx_tuple__1070;
static PyObject *__pyx_tuple__1071;
static PyObject *__pyx_tuple__1072;
static PyObject *__pyx_tuple__1073;
static PyObject *__pyx_tuple__1074;
static PyObject *__pyx_tuple__1075;
static PyObject *__pyx_tuple__1076;
static PyObject *__pyx_tuple__1077;
static PyObject *__pyx_tuple__1078;
static PyObject *__pyx_tuple__1079;
static PyObject *__pyx_tuple__1080;
static PyObject *__pyx_tuple__1081;
static PyObject *__pyx_tuple__1082;
static PyObject *__pyx_tuple__1083;
static PyObject *__pyx_tuple__1084;
static PyObject *__pyx_tuple__1085;
static PyObject *__pyx_tuple__1086;
static PyObject *__pyx_tuple__1087;
static PyObject *__pyx_tuple__1088;
static PyObject *__pyx_tuple__1089;
static PyObject *__pyx_tuple__1090;
static PyObject *__pyx_tuple__1091;
static PyObject *__pyx_tuple__1092;
static PyObject *__pyx_tuple__1093;
static PyObject *__pyx_tuple__1094;
static PyObject *__pyx_tuple__1095;
static PyObject *__pyx_tuple__1096;
static PyObject *__pyx_tuple__1097;
static PyObject *__pyx_tuple__1098;
static PyObject *__pyx_tuple__1099;
static PyObject *__pyx_tuple__1100;
static PyObject *__pyx_tuple__1101;
static PyObject *__pyx_tuple__1102;
static PyObject *__pyx_tuple__1103;
static PyObject *__pyx_tuple__1104;
static PyObject *__pyx_tuple__1105;
static PyObject *__pyx_tuple__1106;
static PyObject *__pyx_tuple__1107;
static PyObject *__pyx_tuple__1108;
static PyObject *__pyx_tuple__1109;
static PyObject *__pyx_tuple__1110;
static PyObject *__pyx_tuple__1111;
static PyObject *__pyx_tuple__1112;
static PyObject *__pyx_tuple__1113;
static PyObject *__pyx_tuple__1114;
static PyObject *__pyx_tuple__1115;
static PyObject *__pyx_tuple__1116;
static PyObject *__pyx_tuple__1117;
static PyObject *__pyx_tuple__1118;
static PyObject *__pyx_tuple__1119;
static PyObject *__pyx_tuple__1120;
static PyObject *__pyx_tuple__1121;
static PyObject *__pyx_tuple__1122;
static PyObject *__pyx_tuple__1123;
static PyObject *__pyx_tuple__1124;
static PyObject *__pyx_tuple__1125;
static PyObject *__pyx_tuple__1126;
static PyObject *__pyx_tuple__1127;
static PyObject *__pyx_tuple__1128;
static PyObject *__pyx_tuple__1129;
static PyObject *__pyx_tuple__1130;
static PyObject *__pyx_tuple__1131;
static PyObject *__pyx_tuple__1132;
static PyObject *__pyx_tuple__1133;
static PyObject *__pyx_tuple__1134;
static PyObject *__pyx_tuple__1135;
static PyObject *__pyx_tuple__1136;
static PyObject *__pyx_tuple__1137;
static PyObject *__pyx_tuple__1138;
static PyObject *__pyx_tuple__1139;
static PyObject *__pyx_tuple__1140;
static PyObject *__pyx_tuple__1141;
static PyObject *__pyx_tuple__1142;
static PyObject *__pyx_tuple__1143;
static PyObject *__pyx_tuple__1144;
static PyObject *__pyx_tuple__1145;
static PyObject *__pyx_tuple__1146;
static PyObject *__pyx_tuple__1147;
static PyObject *__pyx_tuple__1148;
static PyObject *__pyx_tuple__1149;
static PyObject *__pyx_tuple__1150;
static PyObject *__pyx_tuple__1151;
static PyObject *__pyx_tuple__1152;
static PyObject *__pyx_tuple__1153;
static PyObject *__pyx_tuple__1154;
static PyObject *__pyx_tuple__1155;
static PyObject *__pyx_tuple__1156;
static PyObject *__pyx_tuple__1157;
static PyObject *__pyx_tuple__1158;
static PyObject *__pyx_tuple__1159;
static PyObject *__pyx_tuple__1160;
static PyObject *__pyx_tuple__1161;
static PyObject *__pyx_tuple__1162;
static PyObject *__pyx_tuple__1163;
static PyObject *__pyx_tuple__1164;
static PyObject *__pyx_tuple__1165;
static PyObject *__pyx_tuple__1166;
static PyObject *__pyx_tuple__1167;
static PyObject *__pyx_tuple__1168;
static PyObject *__pyx_tuple__1169;
static PyObject *__pyx_tuple__1170;
static PyObject *__pyx_tuple__1171;
static PyObject *__pyx_tuple__1172;
static PyObject *__pyx_tuple__1173;
static PyObject *__pyx_tuple__1174;
static PyObject *__pyx_tuple__1175;
static PyObject *__pyx_tuple__1176;
static PyObject *__pyx_tuple__1177;
static PyObject *__pyx_tuple__1178;
static PyObject *__pyx_tuple__1179;
static PyObject *__pyx_tuple__1180;
static PyObject *__pyx_tuple__1181;
static PyObject *__pyx_tuple__1182;
static PyObject *__pyx_tuple__1183;
static PyObject *__pyx_tuple__1184;
static PyObject *__pyx_tuple__1185;
static PyObject *__pyx_tuple__1186;
static PyObject *__pyx_tuple__1187;
static PyObject *__pyx_tuple__1188;
static PyObject *__pyx_tuple__1189;
static PyObject *__pyx_tuple__1190;
static PyObject *__pyx_tuple__1191;
static PyObject *__pyx_tuple__1192;
static PyObject *__pyx_tuple__1193;
static PyObject *__pyx_tuple__1194;
static PyObject *__pyx_tuple__1195;
static PyObject *__pyx_tuple__1196;
static PyObject *__pyx_tuple__1197;
static PyObject *__pyx_tuple__1198;
static PyObject *__pyx_tuple__1199;
static PyObject *__pyx_tuple__1200;
static PyObject *__pyx_tuple__1201;
static PyObject *__pyx_tuple__1202;
static PyObject *__pyx_tuple__1203;
static PyObject *__pyx_tuple__1204;
static PyObject *__pyx_tuple__1205;
static PyObject *__pyx_tuple__1206;
static PyObject *__pyx_tuple__1207;
static PyObject *__pyx_tuple__1208;
static PyObject *__pyx_tuple__1209;
static PyObject *__pyx_tuple__1210;
static PyObject *__pyx_tuple__1211;
static PyObject *__pyx_tuple__1212;
static PyObject *__pyx_tuple__1213;
static PyObject *__pyx_tuple__1214;
static PyObject *__pyx_tuple__1215;
static PyObject *__pyx_tuple__1216;
static PyObject *__pyx_tuple__1217;
static PyObject *__pyx_tuple__1218;
static PyObject *__pyx_tuple__1219;
static PyObject *__pyx_tuple__1220;
static PyObject *__pyx_tuple__1221;
static PyObject *__pyx_tuple__1222;
static PyObject *__pyx_tuple__1223;
static PyObject *__pyx_tuple__1224;
static PyObject *__pyx_tuple__1225;
static PyObject *__pyx_tuple__1226;
static PyObject *__pyx_tuple__1227;
static PyObject *__pyx_tuple__1228;
static PyObject *__pyx_tuple__1229;
static PyObject *__pyx_tuple__1230;
static PyObject *__pyx_tuple__1231;
static PyObject *__pyx_tuple__1232;
static PyObject *__pyx_tuple__1233;
static PyObject *__pyx_tuple__1234;
static PyObject *__pyx_tuple__1235;
static PyObject *__pyx_tuple__1236;
static PyObject *__pyx_tuple__1237;
static PyObject *__pyx_tuple__1238;
static PyObject *__pyx_tuple__1239;
static PyObject *__pyx_tuple__1240;
static PyObject *__pyx_tuple__1241;
static PyObject *__pyx_tuple__1242;
static PyObject *__pyx_tuple__1243;
static PyObject *__pyx_tuple__1244;
static PyObject *__pyx_tuple__1245;
static PyObject *__pyx_tuple__1246;
static PyObject *__pyx_tuple__1247;
static PyObject *__pyx_tuple__1248;
static PyObject *__pyx_tuple__1249;
static PyObject *__pyx_tuple__1250;
static PyObject *__pyx_tuple__1251;
static PyObject *__pyx_tuple__1252;
static PyObject *__pyx_tuple__1253;
static PyObject *__pyx_tuple__1254;
static PyObject *__pyx_tuple__1255;
static PyObject *__pyx_tuple__1256;
static PyObject *__pyx_tuple__1257;
static PyObject *__pyx_tuple__1258;
static PyObject *__pyx_tuple__1259;
static PyObject *__pyx_tuple__1260;
static PyObject *__pyx_tuple__1261;
static PyObject *__pyx_tuple__1262;
static PyObject *__pyx_tuple__1263;
static PyObject *__pyx_tuple__1264;
static PyObject *__pyx_tuple__1265;
static PyObject *__pyx_tuple__1266;
static PyObject *__pyx_tuple__1267;
static PyObject *__pyx_tuple__1268;
static PyObject *__pyx_tuple__1269;
static PyObject *__pyx_tuple__1270;
static PyObject *__pyx_tuple__1271;
static PyObject *__pyx_tuple__1272;
static PyObject *__pyx_tuple__1273;
static PyObject *__pyx_tuple__1274;
static PyObject *__pyx_tuple__1275;
static PyObject *__pyx_tuple__1276;
static PyObject *__pyx_tuple__1277;
static PyObject *__pyx_tuple__1278;
static PyObject *__pyx_tuple__1279;
static PyObject *__pyx_tuple__1280;
static PyObject *__pyx_tuple__1281;
static PyObject *__pyx_tuple__1282;
static PyObject *__pyx_tuple__1283;
static PyObject *__pyx_tuple__1284;
static PyObject *__pyx_tuple__1285;
static PyObject *__pyx_tuple__1286;
static PyObject *__pyx_tuple__1287;
static PyObject *__pyx_tuple__1288;
static PyObject *__pyx_tuple__1289;
static PyObject *__pyx_tuple__1290;
static PyObject *__pyx_tuple__1291;
static PyObject *__pyx_tuple__1292;
static PyObject *__pyx_tuple__1293;
static PyObject *__pyx_tuple__1294;
static PyObject *__pyx_tuple__1295;
static PyObject *__pyx_tuple__1296;
static PyObject *__pyx_tuple__1297;
static PyObject *__pyx_tuple__1298;
static PyObject *__pyx_tuple__1299;
static PyObject *__pyx_tuple__1300;
static PyObject *__pyx_tuple__1301;
static PyObject *__pyx_tuple__1302;
static PyObject *__pyx_tuple__1303;
static PyObject *__pyx_tuple__1304;
static PyObject *__pyx_tuple__1305;
static PyObject *__pyx_tuple__1306;
static PyObject *__pyx_tuple__1307;
static PyObject *__pyx_tuple__1308;
static PyObject *__pyx_tuple__1309;
static PyObject *__pyx_tuple__1310;
static PyObject *__pyx_tuple__1311;
static PyObject *__pyx_tuple__1312;
static PyObject *__pyx_tuple__1313;
static PyObject *__pyx_tuple__1314;
static PyObject *__pyx_tuple__1315;
static PyObject *__pyx_tuple__1316;
static PyObject *__pyx_tuple__1317;
static PyObject *__pyx_tuple__1318;
static PyObject *__pyx_tuple__1319;
static PyObject *__pyx_tuple__1320;
static PyObject *__pyx_tuple__1321;
static PyObject *__pyx_tuple__1322;
static PyObject *__pyx_tuple__1323;
static PyObject *__pyx_tuple__1324;
static PyObject *__pyx_tuple__1325;
static PyObject *__pyx_tuple__1326;
static PyObject *__pyx_tuple__1327;
static PyObject *__pyx_tuple__1328;
static PyObject *__pyx_tuple__1329;
static PyObject *__pyx_tuple__1330;
static PyObject *__pyx_tuple__1331;
static PyObject *__pyx_tuple__1332;
static PyObject *__pyx_tuple__1333;
static PyObject *__pyx_tuple__1334;
static PyObject *__pyx_tuple__1335;
static PyObject *__pyx_tuple__1336;
static PyObject *__pyx_tuple__1337;
static PyObject *__pyx_tuple__1338;
static PyObject *__pyx_tuple__1339;
static PyObject *__pyx_tuple__1340;
static PyObject *__pyx_tuple__1341;
static PyObject *__pyx_tuple__1342;
static PyObject *__pyx_tuple__1343;
static PyObject *__pyx_tuple__1344;
static PyObject *__pyx_tuple__1345;
static PyObject *__pyx_tuple__1346;
static PyObject *__pyx_tuple__1347;
static PyObject *__pyx_tuple__1348;
static PyObject *__pyx_tuple__1349;
static PyObject *__pyx_tuple__1350;
static PyObject *__pyx_tuple__1351;
static PyObject *__pyx_tuple__1352;
static PyObject *__pyx_tuple__1353;
static PyObject *__pyx_tuple__1354;
static PyObject *__pyx_tuple__1355;
static PyObject *__pyx_tuple__1356;
static PyObject *__pyx_tuple__1357;
static PyObject *__pyx_tuple__1358;
static PyObject *__pyx_tuple__1359;
static PyObject *__pyx_tuple__1360;
static PyObject *__pyx_tuple__1361;
static PyObject *__pyx_tuple__1362;
static PyObject *__pyx_tuple__1363;
static PyObject *__pyx_tuple__1364;
static PyObject *__pyx_tuple__1365;
static PyObject *__pyx_tuple__1366;
static PyObject *__pyx_tuple__1367;
static PyObject *__pyx_tuple__1368;
static PyObject *__pyx_tuple__1369;
static PyObject *__pyx_tuple__1370;
static PyObject *__pyx_tuple__1371;
static PyObject *__pyx_tuple__1372;
static PyObject *__pyx_tuple__1373;
static PyObject *__pyx_tuple__1374;
static PyObject *__pyx_tuple__1375;
static PyObject *__pyx_tuple__1376;
static PyObject *__pyx_tuple__1377;
static PyObject *__pyx_tuple__1378;
static PyObject *__pyx_tuple__1379;
static PyObject *__pyx_tuple__1380;
static PyObject *__pyx_tuple__1381;
static PyObject *__pyx_tuple__1382;
static PyObject *__pyx_tuple__1383;
static PyObject *__pyx_tuple__1384;
static PyObject *__pyx_tuple__1385;
static PyObject *__pyx_tuple__1386;
static PyObject *__pyx_tuple__1387;
static PyObject *__pyx_tuple__1388;
static PyObject *__pyx_tuple__1389;
static PyObject *__pyx_tuple__1390;
static PyObject *__pyx_tuple__1391;
static PyObject *__pyx_tuple__1392;
static PyObject *__pyx_tuple__1393;
static PyObject *__pyx_tuple__1394;
static PyObject *__pyx_tuple__1395;
static PyObject *__pyx_tuple__1396;
static PyObject *__pyx_tuple__1397;
static PyObject *__pyx_tuple__1398;
static PyObject *__pyx_tuple__1399;
static PyObject *__pyx_tuple__1400;
static PyObject *__pyx_tuple__1401;
static PyObject *__pyx_tuple__1402;
static PyObject *__pyx_tuple__1403;
static PyObject *__pyx_tuple__1404;
static PyObject *__pyx_tuple__1405;
static PyObject *__pyx_tuple__1406;
static PyObject *__pyx_tuple__1407;
static PyObject *__pyx_tuple__1408;
static PyObject *__pyx_tuple__1409;
static PyObject *__pyx_tuple__1410;
static PyObject *__pyx_tuple__1411;
static PyObject *__pyx_tuple__1412;
static PyObject *__pyx_tuple__1413;
static PyObject *__pyx_tuple__1414;
static PyObject *__pyx_tuple__1415;
static PyObject *__pyx_tuple__1416;
static PyObject *__pyx_tuple__1417;
static PyObject *__pyx_tuple__1418;
static PyObject *__pyx_tuple__1419;
static PyObject *__pyx_tuple__1420;
static PyObject *__pyx_tuple__1421;
static PyObject *__pyx_tuple__1422;
static PyObject *__pyx_tuple__1423;
static PyObject *__pyx_tuple__1424;
static PyObject *__pyx_tuple__1425;
static PyObject *__pyx_tuple__1426;
static PyObject *__pyx_tuple__1427;
static PyObject *__pyx_tuple__1428;
static PyObject *__pyx_tuple__1429;
static PyObject *__pyx_tuple__1430;
static PyObject *__pyx_tuple__1431;
static PyObject *__pyx_tuple__1432;
static PyObject *__pyx_tuple__1433;
static PyObject *__pyx_tuple__1434;
static PyObject *__pyx_tuple__1435;
static PyObject *__pyx_tuple__1436;
static PyObject *__pyx_tuple__1437;
static PyObject *__pyx_tuple__1438;
static PyObject *__pyx_tuple__1439;
static PyObject *__pyx_tuple__1440;
static PyObject *__pyx_tuple__1441;
static PyObject *__pyx_tuple__1442;
static PyObject *__pyx_tuple__1443;
static PyObject *__pyx_tuple__1444;
static PyObject *__pyx_tuple__1445;
static PyObject *__pyx_tuple__1446;
static PyObject *__pyx_tuple__1447;
static PyObject *__pyx_tuple__1448;
static PyObject *__pyx_tuple__1449;
static PyObject *__pyx_tuple__1450;
static PyObject *__pyx_tuple__1451;
static PyObject *__pyx_tuple__1452;
static PyObject *__pyx_tuple__1453;
static PyObject *__pyx_tuple__1454;
static PyObject *__pyx_tuple__1455;
static PyObject *__pyx_tuple__1456;
static PyObject *__pyx_tuple__1457;
static PyObject *__pyx_tuple__1458;
static PyObject *__pyx_tuple__1459;
static PyObject *__pyx_tuple__1460;
static PyObject *__pyx_tuple__1461;
static PyObject *__pyx_tuple__1462;
static PyObject *__pyx_tuple__1463;
static PyObject *__pyx_tuple__1464;
static PyObject *__pyx_tuple__1465;
static PyObject *__pyx_tuple__1466;
static PyObject *__pyx_tuple__1467;
static PyObject *__pyx_tuple__1468;
static PyObject *__pyx_tuple__1469;
static PyObject *__pyx_tuple__1470;
static PyObject *__pyx_tuple__1471;
static PyObject *__pyx_tuple__1472;
static PyObject *__pyx_tuple__1473;
static PyObject *__pyx_tuple__1474;
static PyObject *__pyx_tuple__1475;
static PyObject *__pyx_tuple__1476;
static PyObject *__pyx_tuple__1477;
static PyObject *__pyx_tuple__1478;
static PyObject *__pyx_tuple__1479;
static PyObject *__pyx_tuple__1480;
static PyObject *__pyx_tuple__1481;
static PyObject *__pyx_tuple__1482;
static PyObject *__pyx_tuple__1483;
static PyObject *__pyx_tuple__1484;
static PyObject *__pyx_tuple__1485;
static PyObject *__pyx_tuple__1486;
static PyObject *__pyx_tuple__1487;
static PyObject *__pyx_tuple__1488;
static PyObject *__pyx_tuple__1489;
static PyObject *__pyx_tuple__1490;
static PyObject *__pyx_tuple__1491;
static PyObject *__pyx_tuple__1492;
static PyObject *__pyx_tuple__1493;
static PyObject *__pyx_tuple__1494;
static PyObject *__pyx_tuple__1495;
static PyObject *__pyx_tuple__1496;
static PyObject *__pyx_tuple__1497;
static PyObject *__pyx_tuple__1498;
static PyObject *__pyx_tuple__1499;
static PyObject *__pyx_tuple__1500;
static PyObject *__pyx_tuple__1501;
static PyObject *__pyx_tuple__1502;
static PyObject *__pyx_tuple__1503;
static PyObject *__pyx_tuple__1504;
static PyObject *__pyx_tuple__1505;
static PyObject *__pyx_tuple__1506;
static PyObject *__pyx_tuple__1507;
static PyObject *__pyx_tuple__1508;
static PyObject *__pyx_tuple__1509;
static PyObject *__pyx_tuple__1510;
static PyObject *__pyx_tuple__1511;
static PyObject *__pyx_tuple__1512;
static PyObject *__pyx_tuple__1513;
static PyObject *__pyx_tuple__1514;
static PyObject *__pyx_tuple__1515;
static PyObject *__pyx_tuple__1516;
static PyObject *__pyx_tuple__1517;
static PyObject *__pyx_tuple__1518;
static PyObject *__pyx_tuple__1519;
static PyObject *__pyx_tuple__1520;
static PyObject *__pyx_tuple__1521;
static PyObject *__pyx_tuple__1522;
static PyObject *__pyx_tuple__1523;
static PyObject *__pyx_tuple__1524;
static PyObject *__pyx_tuple__1525;
static PyObject *__pyx_tuple__1526;
static PyObject *__pyx_tuple__1527;
static PyObject *__pyx_tuple__1528;
static PyObject *__pyx_tuple__1529;
static PyObject *__pyx_tuple__1530;
static PyObject *__pyx_tuple__1531;
static PyObject *__pyx_tuple__1532;
static PyObject *__pyx_tuple__1533;
static PyObject *__pyx_codeobj__100;
static PyObject *__pyx_codeobj__102;
static PyObject *__pyx_codeobj__103;
static PyObject *__pyx_codeobj__105;
static PyObject *__pyx_codeobj__107;
static PyObject *__pyx_codeobj__110;
static PyObject *__pyx_codeobj__112;
static PyObject *__pyx_codeobj__114;
static PyObject *__pyx_codeobj__115;
static PyObject *__pyx_codeobj__117;
static PyObject *__pyx_codeobj__119;
static PyObject *__pyx_codeobj__120;
static PyObject *__pyx_codeobj__122;
static PyObject *__pyx_codeobj__124;
static PyObject *__pyx_codeobj__125;
static PyObject *__pyx_codeobj__127;
static PyObject *__pyx_codeobj__129;
static PyObject *__pyx_codeobj__130;
static PyObject *__pyx_codeobj__132;
static PyObject *__pyx_codeobj__134;
static PyObject *__pyx_codeobj__135;
static PyObject *__pyx_codeobj__137;
static PyObject *__pyx_codeobj__139;
static PyObject *__pyx_codeobj__142;
static PyObject *__pyx_codeobj__144;
static PyObject *__pyx_codeobj__146;
static PyObject *__pyx_codeobj__147;
static PyObject *__pyx_codeobj__149;
static PyObject *__pyx_codeobj__151;
static PyObject *__pyx_codeobj__152;
static PyObject *__pyx_codeobj__154;
static PyObject *__pyx_codeobj__156;
static PyObject *__pyx_codeobj__157;
static PyObject *__pyx_codeobj__159;
static PyObject *__pyx_codeobj__161;
static PyObject *__pyx_codeobj__162;
static PyObject *__pyx_codeobj__164;
static PyObject *__pyx_codeobj__166;
static PyObject *__pyx_codeobj__167;
static PyObject *__pyx_codeobj__169;
static PyObject *__pyx_codeobj__171;
static PyObject *__pyx_codeobj__172;
static PyObject *__pyx_codeobj__174;
static PyObject *__pyx_codeobj__176;
static PyObject *__pyx_codeobj__177;
static PyObject *__pyx_codeobj__179;
static PyObject *__pyx_codeobj__181;
static PyObject *__pyx_codeobj__182;
static PyObject *__pyx_codeobj__184;
static PyObject *__pyx_codeobj__186;
static PyObject *__pyx_codeobj__187;
static PyObject *__pyx_codeobj__189;
static PyObject *__pyx_codeobj__191;
static PyObject *__pyx_codeobj__192;
static PyObject *__pyx_codeobj__194;
static PyObject *__pyx_codeobj__196;
static PyObject *__pyx_codeobj__197;
static PyObject *__pyx_codeobj__199;
static PyObject *__pyx_codeobj__201;
static PyObject *__pyx_codeobj__202;
static PyObject *__pyx_codeobj__204;
static PyObject *__pyx_codeobj__206;
static PyObject *__pyx_codeobj__207;
static PyObject *__pyx_codeobj__209;
static PyObject *__pyx_codeobj__211;
static PyObject *__pyx_codeobj__212;
static PyObject *__pyx_codeobj__214;
static PyObject *__pyx_codeobj__216;
static PyObject *__pyx_codeobj__217;
static PyObject *__pyx_codeobj__219;
static PyObject *__pyx_codeobj__221;
static PyObject *__pyx_codeobj__222;
static PyObject *__pyx_codeobj__224;
static PyObject *__pyx_codeobj__226;
static PyObject *__pyx_codeobj__227;
static PyObject *__pyx_codeobj__229;
static PyObject *__pyx_codeobj__231;
static PyObject *__pyx_codeobj__232;
static PyObject *__pyx_codeobj__234;
static PyObject *__pyx_codeobj__236;
static PyObject *__pyx_codeobj__237;
static PyObject *__pyx_codeobj__239;
static PyObject *__pyx_codeobj__241;
static PyObject *__pyx_codeobj__242;
static PyObject *__pyx_codeobj__244;
static PyObject *__pyx_codeobj__246;
static PyObject *__pyx_codeobj__247;
static PyObject *__pyx_codeobj__249;
static PyObject *__pyx_codeobj__251;
static PyObject *__pyx_codeobj__252;
static PyObject *__pyx_codeobj__254;
static PyObject *__pyx_codeobj__256;
static PyObject *__pyx_codeobj__257;
static PyObject *__pyx_codeobj__259;
static PyObject *__pyx_codeobj__261;
static PyObject *__pyx_codeobj__262;
static PyObject *__pyx_codeobj__264;
static PyObject *__pyx_codeobj__266;
static PyObject *__pyx_codeobj__267;
static PyObject *__pyx_codeobj__269;
static PyObject *__pyx_codeobj__271;
static PyObject *__pyx_codeobj__272;
static PyObject *__pyx_codeobj__274;
static PyObject *__pyx_codeobj__276;
static PyObject *__pyx_codeobj__277;
static PyObject *__pyx_codeobj__279;
static PyObject *__pyx_codeobj__281;
static PyObject *__pyx_codeobj__282;
static PyObject *__pyx_codeobj__284;
static PyObject *__pyx_codeobj__286;
static PyObject *__pyx_codeobj__287;
static PyObject *__pyx_codeobj__289;
static PyObject *__pyx_codeobj__291;
static PyObject *__pyx_codeobj__292;
static PyObject *__pyx_codeobj__294;
static PyObject *__pyx_codeobj__296;
static PyObject *__pyx_codeobj__297;
static PyObject *__pyx_codeobj__299;
static PyObject *__pyx_codeobj__301;
static PyObject *__pyx_codeobj__302;
static PyObject *__pyx_codeobj__304;
static PyObject *__pyx_codeobj__306;
static PyObject *__pyx_codeobj__307;
static PyObject *__pyx_codeobj__309;
static PyObject *__pyx_codeobj__311;
static PyObject *__pyx_codeobj__312;
static PyObject *__pyx_codeobj__314;
static PyObject *__pyx_codeobj__316;
static PyObject *__pyx_codeobj__317;
static PyObject *__pyx_codeobj__319;
static PyObject *__pyx_codeobj__321;
static PyObject *__pyx_codeobj__322;
static PyObject *__pyx_codeobj__324;
static PyObject *__pyx_codeobj__326;
static PyObject *__pyx_codeobj__327;
static PyObject *__pyx_codeobj__329;
static PyObject *__pyx_codeobj__331;
static PyObject *__pyx_codeobj__332;
static PyObject *__pyx_codeobj__334;
static PyObject *__pyx_codeobj__336;
static PyObject *__pyx_codeobj__337;
static PyObject *__pyx_codeobj__339;
static PyObject *__pyx_codeobj__341;
static PyObject *__pyx_codeobj__342;
static PyObject *__pyx_codeobj__344;
static PyObject *__pyx_codeobj__346;
static PyObject *__pyx_codeobj__347;
static PyObject *__pyx_codeobj__349;
static PyObject *__pyx_codeobj__351;
static PyObject *__pyx_codeobj__352;
static PyObject *__pyx_codeobj__354;
static PyObject *__pyx_codeobj__356;
static PyObject *__pyx_codeobj__357;
static PyObject *__pyx_codeobj__359;
static PyObject *__pyx_codeobj__361;
static PyObject *__pyx_codeobj__362;
static PyObject *__pyx_codeobj__364;
static PyObject *__pyx_codeobj__366;
static PyObject *__pyx_codeobj__367;
static PyObject *__pyx_codeobj__369;
static PyObject *__pyx_codeobj__371;
static PyObject *__pyx_codeobj__372;
static PyObject *__pyx_codeobj__374;
static PyObject *__pyx_codeobj__376;
static PyObject *__pyx_codeobj__377;
static PyObject *__pyx_codeobj__379;
static PyObject *__pyx_codeobj__381;
static PyObject *__pyx_codeobj__382;
static PyObject *__pyx_codeobj__384;
static PyObject *__pyx_codeobj__386;
static PyObject *__pyx_codeobj__387;
static PyObject *__pyx_codeobj__389;
static PyObject *__pyx_codeobj__391;
static PyObject *__pyx_codeobj__392;
static PyObject *__pyx_codeobj__394;
static PyObject *__pyx_codeobj__396;
static PyObject *__pyx_codeobj__397;
static PyObject *__pyx_codeobj__399;
static PyObject *__pyx_codeobj__401;
static PyObject *__pyx_codeobj__402;
static PyObject *__pyx_codeobj__404;
static PyObject *__pyx_codeobj__406;
static PyObject *__pyx_codeobj__407;
static PyObject *__pyx_codeobj__409;
static PyObject *__pyx_codeobj__411;
static PyObject *__pyx_codeobj__412;
static PyObject *__pyx_codeobj__414;
static PyObject *__pyx_codeobj__416;
static PyObject *__pyx_codeobj__417;
static PyObject *__pyx_codeobj__419;
static PyObject *__pyx_codeobj__421;
static PyObject *__pyx_codeobj__422;
static PyObject *__pyx_codeobj__424;
static PyObject *__pyx_codeobj__426;
static PyObject *__pyx_codeobj__427;
static PyObject *__pyx_codeobj__429;
static PyObject *__pyx_codeobj__431;
static PyObject *__pyx_codeobj__432;
static PyObject *__pyx_codeobj__434;
static PyObject *__pyx_codeobj__436;
static PyObject *__pyx_codeobj__437;
static PyObject *__pyx_codeobj__439;
static PyObject *__pyx_codeobj__441;
static PyObject *__pyx_codeobj__442;
static PyObject *__pyx_codeobj__444;
static PyObject *__pyx_codeobj__446;
static PyObject *__pyx_codeobj__447;
static PyObject *__pyx_codeobj__449;
static PyObject *__pyx_codeobj__451;
static PyObject *__pyx_codeobj__452;
static PyObject *__pyx_codeobj__454;
static PyObject *__pyx_codeobj__456;
static PyObject *__pyx_codeobj__457;
static PyObject *__pyx_codeobj__459;
static PyObject *__pyx_codeobj__461;
static PyObject *__pyx_codeobj__462;
static PyObject *__pyx_codeobj__464;
static PyObject *__pyx_codeobj__466;
static PyObject *__pyx_codeobj__467;
static PyObject *__pyx_codeobj__469;
static PyObject *__pyx_codeobj__471;
static PyObject *__pyx_codeobj__472;
static PyObject *__pyx_codeobj__474;
static PyObject *__pyx_codeobj__476;
static PyObject *__pyx_codeobj__477;
static PyObject *__pyx_codeobj__479;
static PyObject *__pyx_codeobj__481;
static PyObject *__pyx_codeobj__482;
static PyObject *__pyx_codeobj__484;
static PyObject *__pyx_codeobj__486;
static PyObject *__pyx_codeobj__487;
static PyObject *__pyx_codeobj__489;
static PyObject *__pyx_codeobj__491;
static PyObject *__pyx_codeobj__492;
static PyObject *__pyx_codeobj__494;
static PyObject *__pyx_codeobj__496;
static PyObject *__pyx_codeobj__497;
static PyObject *__pyx_codeobj__499;
static PyObject *__pyx_codeobj__501;
static PyObject *__pyx_codeobj__502;
static PyObject *__pyx_codeobj__504;
static PyObject *__pyx_codeobj__506;
static PyObject *__pyx_codeobj__507;
static PyObject *__pyx_codeobj__509;
static PyObject *__pyx_codeobj__511;
static PyObject *__pyx_codeobj__512;
static PyObject *__pyx_codeobj__513;
static PyObject *__pyx_codeobj__514;
static PyObject *__pyx_codeobj__515;
static PyObject *__pyx_codeobj__516;
static PyObject *__pyx_codeobj__517;
static PyObject *__pyx_codeobj__518;
static PyObject *__pyx_codeobj__519;
static PyObject *__pyx_codeobj__520;
static PyObject *__pyx_codeobj__521;
static PyObject *__pyx_codeobj__522;
static PyObject *__pyx_codeobj__523;
static PyObject *__pyx_codeobj__524;
static PyObject *__pyx_codeobj__525;
static PyObject *__pyx_codeobj__526;
static PyObject *__pyx_codeobj__527;
static PyObject *__pyx_codeobj__528;
static PyObject *__pyx_codeobj__529;
static PyObject *__pyx_codeobj__530;
static PyObject *__pyx_codeobj__531;
static PyObject *__pyx_codeobj__532;
static PyObject *__pyx_codeobj__533;
static PyObject *__pyx_codeobj__534;
static PyObject *__pyx_codeobj__535;
static PyObject *__pyx_codeobj__536;
static PyObject *__pyx_codeobj__537;
static PyObject *__pyx_codeobj__538;
static PyObject *__pyx_codeobj__540;
static PyObject *__pyx_codeobj__541;
static PyObject *__pyx_codeobj__542;
static PyObject *__pyx_codeobj__543;
static PyObject *__pyx_codeobj__544;
static PyObject *__pyx_codeobj__545;
static PyObject *__pyx_codeobj__546;
static PyObject *__pyx_codeobj__547;
static PyObject *__pyx_codeobj__548;
static PyObject *__pyx_codeobj__549;
static PyObject *__pyx_codeobj__550;
static PyObject *__pyx_codeobj__551;
static PyObject *__pyx_codeobj__552;
static PyObject *__pyx_codeobj__553;
static PyObject *__pyx_codeobj__554;
static PyObject *__pyx_codeobj__555;
static PyObject *__pyx_codeobj__556;
static PyObject *__pyx_codeobj__557;
static PyObject *__pyx_codeobj__558;
static PyObject *__pyx_codeobj__559;
static PyObject *__pyx_codeobj__560;
static PyObject *__pyx_codeobj__561;
static PyObject *__pyx_codeobj__562;
static PyObject *__pyx_codeobj__565;
static PyObject *__pyx_codeobj__566;
static PyObject *__pyx_codeobj__567;
static PyObject *__pyx_codeobj__568;
static PyObject *__pyx_codeobj__569;
static PyObject *__pyx_codeobj__570;
static PyObject *__pyx_codeobj__571;
static PyObject *__pyx_codeobj__572;
static PyObject *__pyx_codeobj__573;
static PyObject *__pyx_codeobj__574;
static PyObject *__pyx_codeobj__575;
static PyObject *__pyx_codeobj__576;
static PyObject *__pyx_codeobj__577;
static PyObject *__pyx_codeobj__578;
static PyObject *__pyx_codeobj__579;
static PyObject *__pyx_codeobj__580;
static PyObject *__pyx_codeobj__581;
static PyObject *__pyx_codeobj__582;
static PyObject *__pyx_codeobj__583;
static PyObject *__pyx_codeobj__584;
static PyObject *__pyx_codeobj__585;
static PyObject *__pyx_codeobj__586;
static PyObject *__pyx_codeobj__587;
static PyObject *__pyx_codeobj__588;
static PyObject *__pyx_codeobj__589;
static PyObject *__pyx_codeobj__590;
static PyObject *__pyx_codeobj__591;
static PyObject *__pyx_codeobj__592;
static PyObject *__pyx_codeobj__593;
static PyObject *__pyx_codeobj__594;
static PyObject *__pyx_codeobj__595;
static PyObject *__pyx_codeobj__596;
static PyObject *__pyx_codeobj__597;
static PyObject *__pyx_codeobj__598;
static PyObject *__pyx_codeobj__599;
static PyObject *__pyx_codeobj__600;
static PyObject *__pyx_codeobj__601;
static PyObject *__pyx_codeobj__602;
static PyObject *__pyx_codeobj__603;
static PyObject *__pyx_codeobj__604;
static PyObject *__pyx_codeobj__605;
static PyObject *__pyx_codeobj__606;
static PyObject *__pyx_codeobj__607;
static PyObject *__pyx_codeobj__608;
static PyObject *__pyx_codeobj__609;
static PyObject *__pyx_codeobj__610;
static PyObject *__pyx_codeobj__611;
static PyObject *__pyx_codeobj__612;
static PyObject *__pyx_codeobj__613;
static PyObject *__pyx_codeobj__614;
static PyObject *__pyx_codeobj__615;
static PyObject *__pyx_codeobj__616;
static PyObject *__pyx_codeobj__617;
static PyObject *__pyx_codeobj__618;
static PyObject *__pyx_codeobj__619;
static PyObject *__pyx_codeobj__620;
static PyObject *__pyx_codeobj__621;
static PyObject *__pyx_codeobj__622;
static PyObject *__pyx_codeobj__623;
static PyObject *__pyx_codeobj__624;
static PyObject *__pyx_codeobj__625;
static PyObject *__pyx_codeobj__626;
static PyObject *__pyx_codeobj__627;
static PyObject *__pyx_codeobj__628;
static PyObject *__pyx_codeobj__629;
static PyObject *__pyx_codeobj__630;
static PyObject *__pyx_codeobj__631;
static PyObject *__pyx_codeobj__632;
static PyObject *__pyx_codeobj__633;
static PyObject *__pyx_codeobj__634;
static PyObject *__pyx_codeobj__635;
static PyObject *__pyx_codeobj__636;
static PyObject *__pyx_codeobj__637;
static PyObject *__pyx_codeobj__638;
static PyObject *__pyx_codeobj__639;
static PyObject *__pyx_codeobj__640;
static PyObject *__pyx_codeobj__641;
static PyObject *__pyx_codeobj__642;
static PyObject *__pyx_codeobj__643;
static PyObject *__pyx_codeobj__644;
static PyObject *__pyx_codeobj__645;
static PyObject *__pyx_codeobj__646;
static PyObject *__pyx_codeobj__647;
static PyObject *__pyx_codeobj__648;
static PyObject *__pyx_codeobj__650;
static PyObject *__pyx_codeobj__651;
static PyObject *__pyx_codeobj__653;
static PyObject *__pyx_codeobj__654;
static PyObject *__pyx_codeobj__655;
static PyObject *__pyx_codeobj__656;
static PyObject *__pyx_codeobj__657;
static PyObject *__pyx_codeobj__658;
static PyObject *__pyx_codeobj__659;
static PyObject *__pyx_codeobj__660;
static PyObject *__pyx_codeobj__661;
static PyObject *__pyx_codeobj__662;
static PyObject *__pyx_codeobj__663;
static PyObject *__pyx_codeobj__664;
static PyObject *__pyx_codeobj__666;
static PyObject *__pyx_codeobj__667;
static PyObject *__pyx_codeobj__668;
static PyObject *__pyx_codeobj__669;
static PyObject *__pyx_codeobj__670;
static PyObject *__pyx_codeobj__671;
static PyObject *__pyx_codeobj__672;
static PyObject *__pyx_codeobj__673;
static PyObject *__pyx_codeobj__674;
static PyObject *__pyx_codeobj__675;
static PyObject *__pyx_codeobj__676;
static PyObject *__pyx_codeobj__677;
static PyObject *__pyx_codeobj__678;
static PyObject *__pyx_codeobj__681;
static PyObject *__pyx_codeobj__682;
static PyObject *__pyx_codeobj__684;
static PyObject *__pyx_codeobj__685;
static PyObject *__pyx_codeobj__686;
static PyObject *__pyx_codeobj__687;
static PyObject *__pyx_codeobj__688;
static PyObject *__pyx_codeobj__689;
static PyObject *__pyx_codeobj__690;
static PyObject *__pyx_codeobj__691;
static PyObject *__pyx_codeobj__692;
static PyObject *__pyx_codeobj__693;
static PyObject *__pyx_codeobj__694;
static PyObject *__pyx_codeobj__695;
static PyObject *__pyx_codeobj__696;
static PyObject *__pyx_codeobj__697;
static PyObject *__pyx_codeobj__699;
static PyObject *__pyx_codeobj__700;
static PyObject *__pyx_codeobj__701;
static PyObject *__pyx_codeobj__702;
static PyObject *__pyx_codeobj__703;
static PyObject *__pyx_codeobj__704;
static PyObject *__pyx_codeobj__705;
static PyObject *__pyx_codeobj__706;
static PyObject *__pyx_codeobj__707;
static PyObject *__pyx_codeobj__708;
static PyObject *__pyx_codeobj__709;
static PyObject *__pyx_codeobj__710;
static PyObject *__pyx_codeobj__711;
static PyObject *__pyx_codeobj__712;
static PyObject *__pyx_codeobj__713;
static PyObject *__pyx_codeobj__714;
static PyObject *__pyx_codeobj__715;
static PyObject *__pyx_codeobj__716;
static PyObject *__pyx_codeobj__717;
static PyObject *__pyx_codeobj__718;
static PyObject *__pyx_codeobj__721;
static PyObject *__pyx_codeobj__723;
static PyObject *__pyx_codeobj__724;
static PyObject *__pyx_codeobj__725;
static PyObject *__pyx_codeobj__726;
static PyObject *__pyx_codeobj__727;
static PyObject *__pyx_codeobj__728;
static PyObject *__pyx_codeobj__730;
static PyObject *__pyx_codeobj__731;
static PyObject *__pyx_codeobj__732;
static PyObject *__pyx_codeobj__733;
static PyObject *__pyx_codeobj__734;
static PyObject *__pyx_codeobj__735;
static PyObject *__pyx_codeobj__736;
static PyObject *__pyx_codeobj__737;
static PyObject *__pyx_codeobj__739;
static PyObject *__pyx_codeobj__740;
static PyObject *__pyx_codeobj__741;
static PyObject *__pyx_codeobj__742;
static PyObject *__pyx_codeobj__743;
static PyObject *__pyx_codeobj__744;
static PyObject *__pyx_codeobj__745;
static PyObject *__pyx_codeobj__746;
static PyObject *__pyx_codeobj__747;
static PyObject *__pyx_codeobj__748;
static PyObject *__pyx_codeobj__749;
static PyObject *__pyx_codeobj__750;
static PyObject *__pyx_codeobj__751;
static PyObject *__pyx_codeobj__752;
static PyObject *__pyx_codeobj__753;
static PyObject *__pyx_codeobj__754;
static PyObject *__pyx_codeobj__755;
static PyObject *__pyx_codeobj__756;
static PyObject *__pyx_codeobj__757;
static PyObject *__pyx_codeobj__758;
static PyObject *__pyx_codeobj__759;
static PyObject *__pyx_codeobj__760;
static PyObject *__pyx_codeobj__761;
static PyObject *__pyx_codeobj__762;
static PyObject *__pyx_codeobj__763;
static PyObject *__pyx_codeobj__764;
static PyObject *__pyx_codeobj__765;
static PyObject *__pyx_codeobj__766;
static PyObject *__pyx_codeobj__767;
static PyObject *__pyx_codeobj__768;
static PyObject *__pyx_codeobj__769;
static PyObject *__pyx_codeobj__770;
static PyObject *__pyx_codeobj__771;
static PyObject *__pyx_codeobj__772;
static PyObject *__pyx_codeobj__773;
static PyObject *__pyx_codeobj__774;
static PyObject *__pyx_codeobj__775;
static PyObject *__pyx_codeobj__776;
static PyObject *__pyx_codeobj__777;
static PyObject *__pyx_codeobj__778;
static PyObject *__pyx_codeobj__779;
static PyObject *__pyx_codeobj__780;
static PyObject *__pyx_codeobj__781;
static PyObject *__pyx_codeobj__782;
static PyObject *__pyx_codeobj__783;
static PyObject *__pyx_codeobj__784;
static PyObject *__pyx_codeobj__785;
static PyObject *__pyx_codeobj__786;
static PyObject *__pyx_codeobj__787;
static PyObject *__pyx_codeobj__788;
static PyObject *__pyx_codeobj__789;
static PyObject *__pyx_codeobj__790;
static PyObject *__pyx_codeobj__791;
static PyObject *__pyx_codeobj__792;
static PyObject *__pyx_codeobj__793;
static PyObject *__pyx_codeobj__796;
static PyObject *__pyx_codeobj__797;
static PyObject *__pyx_codeobj__798;
static PyObject *__pyx_codeobj__799;
static PyObject *__pyx_codeobj__800;
static PyObject *__pyx_codeobj__801;
static PyObject *__pyx_codeobj__802;
static PyObject *__pyx_codeobj__803;
static PyObject *__pyx_codeobj__804;
static PyObject *__pyx_codeobj__805;
static PyObject *__pyx_codeobj__806;
static PyObject *__pyx_codeobj__807;
static PyObject *__pyx_codeobj__808;
static PyObject *__pyx_codeobj__809;
static PyObject *__pyx_codeobj__810;
static PyObject *__pyx_codeobj__811;
static PyObject *__pyx_codeobj__812;
static PyObject *__pyx_codeobj__813;
static PyObject *__pyx_codeobj__814;
static PyObject *__pyx_codeobj__815;
static PyObject *__pyx_codeobj__816;
static PyObject *__pyx_codeobj__817;
static PyObject *__pyx_codeobj__818;
static PyObject *__pyx_codeobj__819;
static PyObject *__pyx_codeobj__820;
static PyObject *__pyx_codeobj__821;
static PyObject *__pyx_codeobj__822;
static PyObject *__pyx_codeobj__823;
static PyObject *__pyx_codeobj__824;
static PyObject *__pyx_codeobj__825;
static PyObject *__pyx_codeobj__826;
static PyObject *__pyx_codeobj__827;
static PyObject *__pyx_codeobj__828;
static PyObject *__pyx_codeobj__829;
static PyObject *__pyx_codeobj__830;
static PyObject *__pyx_codeobj__831;
static PyObject *__pyx_codeobj__832;
static PyObject *__pyx_codeobj__833;
static PyObject *__pyx_codeobj__834;
static PyObject *__pyx_codeobj__835;
static PyObject *__pyx_codeobj__836;
static PyObject *__pyx_codeobj__837;
static PyObject *__pyx_codeobj__838;
static PyObject *__pyx_codeobj__839;
static PyObject *__pyx_codeobj__840;
static PyObject *__pyx_codeobj__841;
static PyObject *__pyx_codeobj__842;
static PyObject *__pyx_codeobj__843;
static PyObject *__pyx_codeobj__844;
static PyObject *__pyx_codeobj__845;
static PyObject *__pyx_codeobj__846;
static PyObject *__pyx_codeobj__847;
static PyObject *__pyx_codeobj__848;
static PyObject *__pyx_codeobj__849;
static PyObject *__pyx_codeobj__850;
static PyObject *__pyx_codeobj__851;
static PyObject *__pyx_codeobj__852;
static PyObject *__pyx_codeobj__853;
static PyObject *__pyx_codeobj__854;
static PyObject *__pyx_codeobj__855;
static PyObject *__pyx_codeobj__856;
static PyObject *__pyx_codeobj__857;
static PyObject *__pyx_codeobj__858;
static PyObject *__pyx_codeobj__859;
static PyObject *__pyx_codeobj__860;
static PyObject *__pyx_codeobj__861;
static PyObject *__pyx_codeobj__862;
static PyObject *__pyx_codeobj__863;
static PyObject *__pyx_codeobj__864;
static PyObject *__pyx_codeobj__865;
static PyObject *__pyx_codeobj__866;
static PyObject *__pyx_codeobj__867;
static PyObject *__pyx_codeobj__868;
static PyObject *__pyx_codeobj__869;
static PyObject *__pyx_codeobj__870;
static PyObject *__pyx_codeobj__871;
static PyObject *__pyx_codeobj__872;
static PyObject *__pyx_codeobj__873;
static PyObject *__pyx_codeobj__874;
static PyObject *__pyx_codeobj__875;
static PyObject *__pyx_codeobj__876;
static PyObject *__pyx_codeobj__877;
static PyObject *__pyx_codeobj__878;
/* Late includes */

/* "cuda/cuda.pyx":1043
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_9CUcontext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_9CUcontext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1043, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1043, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1043, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1043, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext___cinit__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_9CUcontext___cinit__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1043, 0, __PYX_ERR(0, 1043, __pyx_L1_error));

  /* "cuda/cuda.pyx":1044
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1045
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1046
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUcontext)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUcontext *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUcontext))));

    /* "cuda/cuda.pyx":1047
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUcontext)))
 *             self._ptr[0] = <ccuda.CUcontext>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1048
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUcontext)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUcontext>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUcontext))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1048, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1048, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1048, __pyx_L1_error)

      /* "cuda/cuda.pyx":1047
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUcontext)))
 *             self._ptr[0] = <ccuda.CUcontext>init_value
 */
    }

    /* "cuda/cuda.pyx":1049
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUcontext)))
 *             self._ptr[0] = <ccuda.CUcontext>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUcontext)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1044
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUcontext *>calloc(1, sizeof(ccuda.CUcontext))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1051
 *             self._ptr[0] = <ccuda.CUcontext>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUcontext *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1052
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUcontext *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUcontext *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1043
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1053
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUcontext *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_9CUcontext_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_9CUcontext_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_2__init__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_9CUcontext_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1053, 0, __PYX_ERR(0, 1053, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1055
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_9CUcontext_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_9CUcontext_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_9CUcontext_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_9CUcontext_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1055, 0, __PYX_ERR(0, 1055, __pyx_L1_error));

  /* "cuda/cuda.pyx":1056
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1057
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1056
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1055
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUcontext.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1058
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_6__repr__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1058, 0, __PYX_ERR(0, 1058, __pyx_L1_error));

  /* "cuda/cuda.pyx":1059
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUcontext, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1058
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1060
 *     def __repr__(self):
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_8__index__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_8__index__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1060, 0, __PYX_ERR(0, 1060, __pyx_L1_error));

  /* "cuda/cuda.pyx":1061
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1060
 *     def __repr__(self):
 *         return '<CUcontext ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1062
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_10__int__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_10__int__(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1062, 0, __PYX_ERR(0, 1062, __pyx_L1_error));

  /* "cuda/cuda.pyx":1063
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1062
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1064
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUcontext_12getPtr[] = "CUcontext.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUcontext_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUcontext_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUcontext_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_12getPtr(struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__2)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1064, 0, __PYX_ERR(0, 1064, __pyx_L1_error));

  /* "cuda/cuda.pyx":1065
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmodule:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1064
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUcontext_14__reduce_cython__[] = "CUcontext.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUcontext_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUcontext_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUcontext_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__3)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUcontext_16__setstate_cython__[] = "CUcontext.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUcontext_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUcontext_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_9CUcontext_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_9CUcontext_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUcontext_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUcontext_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__5)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUcontext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1077
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUmodule_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUmodule_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1077, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1077, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1077, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1077, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUmodule___cinit__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1077, 0, __PYX_ERR(0, 1077, __pyx_L1_error));

  /* "cuda/cuda.pyx":1078
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1079
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1080
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmodule)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmodule *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUmodule))));

    /* "cuda/cuda.pyx":1081
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmodule)))
 *             self._ptr[0] = <ccuda.CUmodule>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1082
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmodule)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUmodule>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmodule))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1082, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1082, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1082, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1082, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1082, __pyx_L1_error)

      /* "cuda/cuda.pyx":1081
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmodule)))
 *             self._ptr[0] = <ccuda.CUmodule>init_value
 */
    }

    /* "cuda/cuda.pyx":1083
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmodule)))
 *             self._ptr[0] = <ccuda.CUmodule>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUmodule)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1078
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmodule *>calloc(1, sizeof(ccuda.CUmodule))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1085
 *             self._ptr[0] = <ccuda.CUmodule>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmodule *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1086
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmodule *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmodule *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1077
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1087
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmodule *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUmodule_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUmodule_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUmodule_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1087, 0, __PYX_ERR(0, 1087, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1089
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_8CUmodule_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_8CUmodule_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_8CUmodule_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_8CUmodule_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1089, 0, __PYX_ERR(0, 1089, __pyx_L1_error));

  /* "cuda/cuda.pyx":1090
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1091
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1090
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1089
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmodule.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1092
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_6__repr__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1092, 0, __PYX_ERR(0, 1092, __pyx_L1_error));

  /* "cuda/cuda.pyx":1093
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUmodule, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1092
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1094
 *     def __repr__(self):
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_8__index__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_8__index__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1094, 0, __PYX_ERR(0, 1094, __pyx_L1_error));

  /* "cuda/cuda.pyx":1095
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1095, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1094
 *     def __repr__(self):
 *         return '<CUmodule ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1096
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_10__int__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_10__int__(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1096, 0, __PYX_ERR(0, 1096, __pyx_L1_error));

  /* "cuda/cuda.pyx":1097
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1096
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1098
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUmodule_12getPtr[] = "CUmodule.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUmodule_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUmodule_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUmodule_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_12getPtr(struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__7)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1098, 0, __PYX_ERR(0, 1098, __pyx_L1_error));

  /* "cuda/cuda.pyx":1099
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUfunction:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1098
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUmodule_14__reduce_cython__[] = "CUmodule.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUmodule_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUmodule_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUmodule_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__8)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUmodule_16__setstate_cython__[] = "CUmodule.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUmodule_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUmodule_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUmodule_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUmodule_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUmodule_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUmodule_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__10)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmodule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1111
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_10CUfunction_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_10CUfunction_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1111, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1111, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1111, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1111, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction___cinit__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_10CUfunction___cinit__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1111, 0, __PYX_ERR(0, 1111, __pyx_L1_error));

  /* "cuda/cuda.pyx":1112
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1113
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1114
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUfunction)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUfunction *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUfunction))));

    /* "cuda/cuda.pyx":1115
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUfunction)))
 *             self._ptr[0] = <ccuda.CUfunction>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1116
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUfunction)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUfunction>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUfunction))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1116, __pyx_L1_error)

      /* "cuda/cuda.pyx":1115
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUfunction)))
 *             self._ptr[0] = <ccuda.CUfunction>init_value
 */
    }

    /* "cuda/cuda.pyx":1117
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUfunction)))
 *             self._ptr[0] = <ccuda.CUfunction>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUfunction)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1112
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUfunction *>calloc(1, sizeof(ccuda.CUfunction))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1119
 *             self._ptr[0] = <ccuda.CUfunction>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUfunction *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1120
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUfunction *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUfunction *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1111
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1121
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUfunction *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_10CUfunction_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_10CUfunction_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_2__init__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_10CUfunction_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1121, 0, __PYX_ERR(0, 1121, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1123
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_10CUfunction_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_10CUfunction_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_10CUfunction_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_10CUfunction_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1123, 0, __PYX_ERR(0, 1123, __pyx_L1_error));

  /* "cuda/cuda.pyx":1124
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1125
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1124
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1123
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUfunction.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1126
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_6__repr__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1126, 0, __PYX_ERR(0, 1126, __pyx_L1_error));

  /* "cuda/cuda.pyx":1127
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUfunction, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1126
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1128
 *     def __repr__(self):
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_8__index__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_8__index__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1128, 0, __PYX_ERR(0, 1128, __pyx_L1_error));

  /* "cuda/cuda.pyx":1129
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1128
 *     def __repr__(self):
 *         return '<CUfunction ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1130
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_10__int__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_10__int__(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1130, 0, __PYX_ERR(0, 1130, __pyx_L1_error));

  /* "cuda/cuda.pyx":1131
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1130
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1132
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10CUfunction_12getPtr[] = "CUfunction.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10CUfunction_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_10CUfunction_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_10CUfunction_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_12getPtr(struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__12)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1132, 0, __PYX_ERR(0, 1132, __pyx_L1_error));

  /* "cuda/cuda.pyx":1133
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUarray:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1132
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10CUfunction_14__reduce_cython__[] = "CUfunction.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10CUfunction_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10CUfunction_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_10CUfunction_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__13)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_10CUfunction_16__setstate_cython__[] = "CUfunction.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10CUfunction_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10CUfunction_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_10CUfunction_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_10CUfunction_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10CUfunction_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10CUfunction_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__15)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUfunction.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1145
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_7CUarray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_7CUarray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1145, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1145, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarray.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray___cinit__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_7CUarray___cinit__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1145, 0, __PYX_ERR(0, 1145, __pyx_L1_error));

  /* "cuda/cuda.pyx":1146
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1147
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1148
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarray)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUarray *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUarray))));

    /* "cuda/cuda.pyx":1149
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarray)))
 *             self._ptr[0] = <ccuda.CUarray>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1150
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarray)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUarray>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUarray))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1150, __pyx_L1_error)

      /* "cuda/cuda.pyx":1149
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarray)))
 *             self._ptr[0] = <ccuda.CUarray>init_value
 */
    }

    /* "cuda/cuda.pyx":1151
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarray)))
 *             self._ptr[0] = <ccuda.CUarray>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUarray)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1146
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarray *>calloc(1, sizeof(ccuda.CUarray))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1153
 *             self._ptr[0] = <ccuda.CUarray>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUarray *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1154
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUarray *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUarray *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1145
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUarray.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1155
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUarray *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_7CUarray_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_7CUarray_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_2__init__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_7CUarray_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1155, 0, __PYX_ERR(0, 1155, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarray.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1157
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_7CUarray_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_7CUarray_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_7CUarray_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_7CUarray_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1157, 0, __PYX_ERR(0, 1157, __pyx_L1_error));

  /* "cuda/cuda.pyx":1158
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1159
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1158
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1157
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUarray.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1160
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_6__repr__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1160, 0, __PYX_ERR(0, 1160, __pyx_L1_error));

  /* "cuda/cuda.pyx":1161
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUarray, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1160
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUarray.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1162
 *     def __repr__(self):
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_8__index__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_8__index__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1162, 0, __PYX_ERR(0, 1162, __pyx_L1_error));

  /* "cuda/cuda.pyx":1163
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1162
 *     def __repr__(self):
 *         return '<CUarray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUarray.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1164
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_10__int__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_10__int__(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1164, 0, __PYX_ERR(0, 1164, __pyx_L1_error));

  /* "cuda/cuda.pyx":1165
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1164
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarray.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1166
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUarray_12getPtr[] = "CUarray.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUarray_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUarray_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUarray_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_12getPtr(struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__17)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1166, 0, __PYX_ERR(0, 1166, __pyx_L1_error));

  /* "cuda/cuda.pyx":1167
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmipmappedArray:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1166
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarray.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUarray_14__reduce_cython__[] = "CUarray.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUarray_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUarray_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUarray_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__18)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarray.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUarray_16__setstate_cython__[] = "CUarray.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUarray_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUarray_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_7CUarray_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_7CUarray_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUarray_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUarray_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__20)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarray.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1179
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUmipmappedArray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUmipmappedArray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1179, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1179, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1179, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1179, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUmipmappedArray___cinit__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1179, 0, __PYX_ERR(0, 1179, __pyx_L1_error));

  /* "cuda/cuda.pyx":1180
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1181
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1182
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmipmappedArray)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmipmappedArray *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUmipmappedArray))));

    /* "cuda/cuda.pyx":1183
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmipmappedArray)))
 *             self._ptr[0] = <ccuda.CUmipmappedArray>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1184
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmipmappedArray)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUmipmappedArray>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmipmappedArray))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1184, __pyx_L1_error)

      /* "cuda/cuda.pyx":1183
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmipmappedArray)))
 *             self._ptr[0] = <ccuda.CUmipmappedArray>init_value
 */
    }

    /* "cuda/cuda.pyx":1185
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmipmappedArray)))
 *             self._ptr[0] = <ccuda.CUmipmappedArray>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUmipmappedArray)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1180
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmipmappedArray *>calloc(1, sizeof(ccuda.CUmipmappedArray))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1187
 *             self._ptr[0] = <ccuda.CUmipmappedArray>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmipmappedArray *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1188
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmipmappedArray *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmipmappedArray *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1179
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1189
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmipmappedArray *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUmipmappedArray_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUmipmappedArray_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUmipmappedArray_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1189, 0, __PYX_ERR(0, 1189, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1191
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_16CUmipmappedArray_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_16CUmipmappedArray_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_16CUmipmappedArray_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_16CUmipmappedArray_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1191, 0, __PYX_ERR(0, 1191, __pyx_L1_error));

  /* "cuda/cuda.pyx":1192
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1193
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1192
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1191
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmipmappedArray.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1194
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_6__repr__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1194, 0, __PYX_ERR(0, 1194, __pyx_L1_error));

  /* "cuda/cuda.pyx":1195
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUmipmappedArray, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1194
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1196
 *     def __repr__(self):
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_8__index__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_8__index__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1196, 0, __PYX_ERR(0, 1196, __pyx_L1_error));

  /* "cuda/cuda.pyx":1197
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1196
 *     def __repr__(self):
 *         return '<CUmipmappedArray ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1198
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_10__int__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_10__int__(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1198, 0, __PYX_ERR(0, 1198, __pyx_L1_error));

  /* "cuda/cuda.pyx":1199
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1198
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1200
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUmipmappedArray_12getPtr[] = "CUmipmappedArray.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUmipmappedArray_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmipmappedArray_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmipmappedArray_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_12getPtr(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__22)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1200, 0, __PYX_ERR(0, 1200, __pyx_L1_error));

  /* "cuda/cuda.pyx":1201
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUtexref:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1200
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUmipmappedArray_14__reduce_cython__[] = "CUmipmappedArray.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUmipmappedArray_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmipmappedArray_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmipmappedArray_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__23)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUmipmappedArray_16__setstate_cython__[] = "CUmipmappedArray.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUmipmappedArray_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmipmappedArray_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUmipmappedArray_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUmipmappedArray_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmipmappedArray_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmipmappedArray_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__25)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmipmappedArray.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1213
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUtexref_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUtexref_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1213, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1213, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1213, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1213, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref___cinit__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUtexref___cinit__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1213, 0, __PYX_ERR(0, 1213, __pyx_L1_error));

  /* "cuda/cuda.pyx":1214
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1215
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1216
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexref)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUtexref *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUtexref))));

    /* "cuda/cuda.pyx":1217
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexref)))
 *             self._ptr[0] = <ccuda.CUtexref>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1218
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexref)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUtexref>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUtexref))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1218, __pyx_L1_error)

      /* "cuda/cuda.pyx":1217
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexref)))
 *             self._ptr[0] = <ccuda.CUtexref>init_value
 */
    }

    /* "cuda/cuda.pyx":1219
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexref)))
 *             self._ptr[0] = <ccuda.CUtexref>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUtexref)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1214
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexref *>calloc(1, sizeof(ccuda.CUtexref))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1221
 *             self._ptr[0] = <ccuda.CUtexref>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUtexref *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1222
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexref *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUtexref *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1213
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1223
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexref *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUtexref_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUtexref_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_2__init__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUtexref_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1223, 0, __PYX_ERR(0, 1223, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1225
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_8CUtexref_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_8CUtexref_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_8CUtexref_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_8CUtexref_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1225, 0, __PYX_ERR(0, 1225, __pyx_L1_error));

  /* "cuda/cuda.pyx":1226
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1227
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1226
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1225
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUtexref.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1228
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_6__repr__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1228, 0, __PYX_ERR(0, 1228, __pyx_L1_error));

  /* "cuda/cuda.pyx":1229
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUtexref, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1228
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1230
 *     def __repr__(self):
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_8__index__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_8__index__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1230, 0, __PYX_ERR(0, 1230, __pyx_L1_error));

  /* "cuda/cuda.pyx":1231
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1230
 *     def __repr__(self):
 *         return '<CUtexref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1232
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_10__int__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_10__int__(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1232, 0, __PYX_ERR(0, 1232, __pyx_L1_error));

  /* "cuda/cuda.pyx":1233
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1232
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1234
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUtexref_12getPtr[] = "CUtexref.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUtexref_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUtexref_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUtexref_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_12getPtr(struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__27)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1234, 0, __PYX_ERR(0, 1234, __pyx_L1_error));

  /* "cuda/cuda.pyx":1235
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUsurfref:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1234
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUtexref_14__reduce_cython__[] = "CUtexref.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUtexref_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUtexref_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUtexref_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__28)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUtexref_16__setstate_cython__[] = "CUtexref.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUtexref_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUtexref_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUtexref_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUtexref_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUtexref_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUtexref_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__30)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexref.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1247
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_9CUsurfref_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_9CUsurfref_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1247, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1247, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1247, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1247, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref___cinit__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_9CUsurfref___cinit__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1247, 0, __PYX_ERR(0, 1247, __pyx_L1_error));

  /* "cuda/cuda.pyx":1248
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1249
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1250
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfref)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUsurfref *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUsurfref))));

    /* "cuda/cuda.pyx":1251
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfref)))
 *             self._ptr[0] = <ccuda.CUsurfref>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1252
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfref)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUsurfref>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUsurfref))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1252, __pyx_L1_error)

      /* "cuda/cuda.pyx":1251
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfref)))
 *             self._ptr[0] = <ccuda.CUsurfref>init_value
 */
    }

    /* "cuda/cuda.pyx":1253
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfref)))
 *             self._ptr[0] = <ccuda.CUsurfref>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUsurfref)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1248
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfref *>calloc(1, sizeof(ccuda.CUsurfref))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1255
 *             self._ptr[0] = <ccuda.CUsurfref>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUsurfref *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1256
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfref *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUsurfref *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1247
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1257
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfref *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_9CUsurfref_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_9CUsurfref_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_2__init__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_9CUsurfref_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1257, 0, __PYX_ERR(0, 1257, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1259
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_9CUsurfref_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_9CUsurfref_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_9CUsurfref_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_9CUsurfref_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1259, 0, __PYX_ERR(0, 1259, __pyx_L1_error));

  /* "cuda/cuda.pyx":1260
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1261
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1260
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1259
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUsurfref.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1262
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_6__repr__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1262, 0, __PYX_ERR(0, 1262, __pyx_L1_error));

  /* "cuda/cuda.pyx":1263
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUsurfref, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1262
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1264
 *     def __repr__(self):
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_8__index__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_8__index__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1264, 0, __PYX_ERR(0, 1264, __pyx_L1_error));

  /* "cuda/cuda.pyx":1265
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1264
 *     def __repr__(self):
 *         return '<CUsurfref ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1266
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_10__int__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_10__int__(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1266, 0, __PYX_ERR(0, 1266, __pyx_L1_error));

  /* "cuda/cuda.pyx":1267
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1266
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1268
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUsurfref_12getPtr[] = "CUsurfref.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUsurfref_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUsurfref_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUsurfref_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_12getPtr(struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__32)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1268, 0, __PYX_ERR(0, 1268, __pyx_L1_error));

  /* "cuda/cuda.pyx":1269
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUevent:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1268
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUsurfref_14__reduce_cython__[] = "CUsurfref.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUsurfref_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUsurfref_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUsurfref_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__33)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUsurfref_16__setstate_cython__[] = "CUsurfref.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUsurfref_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUsurfref_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_9CUsurfref_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_9CUsurfref_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUsurfref_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUsurfref_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__35)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfref.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1281
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_7CUevent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_7CUevent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1281, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1281, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1281, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1281, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUevent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent___cinit__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_7CUevent___cinit__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1281, 0, __PYX_ERR(0, 1281, __pyx_L1_error));

  /* "cuda/cuda.pyx":1282
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1283
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1284
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUevent)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUevent *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUevent))));

    /* "cuda/cuda.pyx":1285
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUevent)))
 *             self._ptr[0] = <ccuda.CUevent>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1286
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUevent)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUevent>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUevent))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1286, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1286, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1286, __pyx_L1_error)

      /* "cuda/cuda.pyx":1285
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUevent)))
 *             self._ptr[0] = <ccuda.CUevent>init_value
 */
    }

    /* "cuda/cuda.pyx":1287
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUevent)))
 *             self._ptr[0] = <ccuda.CUevent>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUevent)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1282
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUevent *>calloc(1, sizeof(ccuda.CUevent))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1289
 *             self._ptr[0] = <ccuda.CUevent>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUevent *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1290
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUevent *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUevent *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1281
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUevent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1291
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUevent *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_7CUevent_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_7CUevent_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_2__init__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_7CUevent_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1291, 0, __PYX_ERR(0, 1291, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUevent.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1293
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_7CUevent_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_7CUevent_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_7CUevent_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_7CUevent_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1293, 0, __PYX_ERR(0, 1293, __pyx_L1_error));

  /* "cuda/cuda.pyx":1294
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1295
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1294
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1293
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUevent.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1296
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_6__repr__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1296, 0, __PYX_ERR(0, 1296, __pyx_L1_error));

  /* "cuda/cuda.pyx":1297
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUevent, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1296
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUevent.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1298
 *     def __repr__(self):
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_8__index__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_8__index__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1298, 0, __PYX_ERR(0, 1298, __pyx_L1_error));

  /* "cuda/cuda.pyx":1299
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1298
 *     def __repr__(self):
 *         return '<CUevent ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUevent.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1300
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_10__int__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_10__int__(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1300, 0, __PYX_ERR(0, 1300, __pyx_L1_error));

  /* "cuda/cuda.pyx":1301
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1300
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUevent.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1302
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUevent_12getPtr[] = "CUevent.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUevent_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUevent_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUevent_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_12getPtr(struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__37)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1302, 0, __PYX_ERR(0, 1302, __pyx_L1_error));

  /* "cuda/cuda.pyx":1303
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstream:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1302
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUevent.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUevent_14__reduce_cython__[] = "CUevent.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUevent_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUevent_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUevent_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__38)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUevent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUevent_16__setstate_cython__[] = "CUevent.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUevent_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUevent_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_7CUevent_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_7CUevent_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUevent_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUevent_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__40)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUevent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1315
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUstream_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUstream_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1315, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1315, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1315, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1315, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstream.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUstream___cinit__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1315, 0, __PYX_ERR(0, 1315, __pyx_L1_error));

  /* "cuda/cuda.pyx":1316
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1317
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1318
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstream)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUstream *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUstream))));

    /* "cuda/cuda.pyx":1319
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstream)))
 *             self._ptr[0] = <ccuda.CUstream>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1320
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstream)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUstream>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstream))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1320, __pyx_L1_error)

      /* "cuda/cuda.pyx":1319
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstream)))
 *             self._ptr[0] = <ccuda.CUstream>init_value
 */
    }

    /* "cuda/cuda.pyx":1321
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstream)))
 *             self._ptr[0] = <ccuda.CUstream>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUstream)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1316
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstream *>calloc(1, sizeof(ccuda.CUstream))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1323
 *             self._ptr[0] = <ccuda.CUstream>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstream *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1324
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstream *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUstream *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1315
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstream.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1325
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstream *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUstream_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUstream_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUstream_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1325, 0, __PYX_ERR(0, 1325, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1327
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_8CUstream_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_8CUstream_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_8CUstream_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_8CUstream_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1327, 0, __PYX_ERR(0, 1327, __pyx_L1_error));

  /* "cuda/cuda.pyx":1328
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1329
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1328
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1327
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstream.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1330
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_6__repr__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1330, 0, __PYX_ERR(0, 1330, __pyx_L1_error));

  /* "cuda/cuda.pyx":1331
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUstream, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1330
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstream.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1332
 *     def __repr__(self):
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_8__index__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_8__index__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1332, 0, __PYX_ERR(0, 1332, __pyx_L1_error));

  /* "cuda/cuda.pyx":1333
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1332
 *     def __repr__(self):
 *         return '<CUstream ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstream.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1334
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_10__int__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_10__int__(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1334, 0, __PYX_ERR(0, 1334, __pyx_L1_error));

  /* "cuda/cuda.pyx":1335
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1334
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstream.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1336
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUstream_12getPtr[] = "CUstream.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUstream_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUstream_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUstream_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_12getPtr(struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__42)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1336, 0, __PYX_ERR(0, 1336, __pyx_L1_error));

  /* "cuda/cuda.pyx":1337
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUgraphicsResource:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1336
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstream.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUstream_14__reduce_cython__[] = "CUstream.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUstream_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUstream_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUstream_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__43)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstream.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUstream_16__setstate_cython__[] = "CUstream.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUstream_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUstream_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUstream_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUstream_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUstream_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUstream_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__45)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstream.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1349
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUgraphicsResource_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUgraphicsResource_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1349, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1349, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1349, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1349, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource___cinit__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUgraphicsResource___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1349, 0, __PYX_ERR(0, 1349, __pyx_L1_error));

  /* "cuda/cuda.pyx":1350
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1351
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1352
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphicsResource)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraphicsResource *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphicsResource))));

    /* "cuda/cuda.pyx":1353
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphicsResource)))
 *             self._ptr[0] = <ccuda.CUgraphicsResource>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1354
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphicsResource)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUgraphicsResource>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphicsResource))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1354, __pyx_L1_error)

      /* "cuda/cuda.pyx":1353
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphicsResource)))
 *             self._ptr[0] = <ccuda.CUgraphicsResource>init_value
 */
    }

    /* "cuda/cuda.pyx":1355
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphicsResource)))
 *             self._ptr[0] = <ccuda.CUgraphicsResource>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUgraphicsResource)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1350
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphicsResource *>calloc(1, sizeof(ccuda.CUgraphicsResource))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1357
 *             self._ptr[0] = <ccuda.CUgraphicsResource>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraphicsResource *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1358
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraphicsResource *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraphicsResource *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1349
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1359
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraphicsResource *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUgraphicsResource_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUgraphicsResource_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_2__init__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUgraphicsResource_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1359, 0, __PYX_ERR(0, 1359, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1361
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_18CUgraphicsResource_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_18CUgraphicsResource_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_18CUgraphicsResource_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_18CUgraphicsResource_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1361, 0, __PYX_ERR(0, 1361, __pyx_L1_error));

  /* "cuda/cuda.pyx":1362
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1363
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1362
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1361
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUgraphicsResource.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1364
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1364, 0, __PYX_ERR(0, 1364, __pyx_L1_error));

  /* "cuda/cuda.pyx":1365
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUgraphicsResource, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1364
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1366
 *     def __repr__(self):
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_8__index__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1366, 0, __PYX_ERR(0, 1366, __pyx_L1_error));

  /* "cuda/cuda.pyx":1367
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1366
 *     def __repr__(self):
 *         return '<CUgraphicsResource ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1368
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_10__int__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1368, 0, __PYX_ERR(0, 1368, __pyx_L1_error));

  /* "cuda/cuda.pyx":1369
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1368
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1370
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUgraphicsResource_12getPtr[] = "CUgraphicsResource.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUgraphicsResource_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUgraphicsResource_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUgraphicsResource_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__47)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1370, 0, __PYX_ERR(0, 1370, __pyx_L1_error));

  /* "cuda/cuda.pyx":1371
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUexternalMemory:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1370
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUgraphicsResource_14__reduce_cython__[] = "CUgraphicsResource.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUgraphicsResource_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUgraphicsResource_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUgraphicsResource_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__48)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUgraphicsResource_16__setstate_cython__[] = "CUgraphicsResource.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUgraphicsResource_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUgraphicsResource_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_18CUgraphicsResource_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_18CUgraphicsResource_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUgraphicsResource_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUgraphicsResource_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__50)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphicsResource.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1383
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUexternalMemory_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUexternalMemory_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1383, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1383, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1383, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1383, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory___cinit__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUexternalMemory___cinit__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1383, 0, __PYX_ERR(0, 1383, __pyx_L1_error));

  /* "cuda/cuda.pyx":1384
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1385
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1386
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalMemory)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUexternalMemory *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUexternalMemory))));

    /* "cuda/cuda.pyx":1387
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalMemory)))
 *             self._ptr[0] = <ccuda.CUexternalMemory>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1388
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalMemory)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUexternalMemory>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalMemory))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1388, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1388, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1388, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1388, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1388, __pyx_L1_error)

      /* "cuda/cuda.pyx":1387
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalMemory)))
 *             self._ptr[0] = <ccuda.CUexternalMemory>init_value
 */
    }

    /* "cuda/cuda.pyx":1389
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalMemory)))
 *             self._ptr[0] = <ccuda.CUexternalMemory>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUexternalMemory)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1384
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalMemory *>calloc(1, sizeof(ccuda.CUexternalMemory))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1391
 *             self._ptr[0] = <ccuda.CUexternalMemory>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexternalMemory *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1392
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexternalMemory *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUexternalMemory *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1383
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1393
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexternalMemory *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUexternalMemory_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUexternalMemory_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_2__init__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUexternalMemory_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1393, 0, __PYX_ERR(0, 1393, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1395
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_16CUexternalMemory_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_16CUexternalMemory_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_16CUexternalMemory_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_16CUexternalMemory_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1395, 0, __PYX_ERR(0, 1395, __pyx_L1_error));

  /* "cuda/cuda.pyx":1396
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1397
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1396
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1395
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUexternalMemory.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1398
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_6__repr__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1398, 0, __PYX_ERR(0, 1398, __pyx_L1_error));

  /* "cuda/cuda.pyx":1399
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUexternalMemory, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1398
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1400
 *     def __repr__(self):
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_8__index__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_8__index__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1400, 0, __PYX_ERR(0, 1400, __pyx_L1_error));

  /* "cuda/cuda.pyx":1401
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1400
 *     def __repr__(self):
 *         return '<CUexternalMemory ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1402
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_10__int__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_10__int__(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1402, 0, __PYX_ERR(0, 1402, __pyx_L1_error));

  /* "cuda/cuda.pyx":1403
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1402
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1404
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUexternalMemory_12getPtr[] = "CUexternalMemory.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUexternalMemory_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUexternalMemory_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUexternalMemory_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_12getPtr(struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__52)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1404, 0, __PYX_ERR(0, 1404, __pyx_L1_error));

  /* "cuda/cuda.pyx":1405
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUexternalSemaphore:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1404
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUexternalMemory_14__reduce_cython__[] = "CUexternalMemory.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUexternalMemory_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUexternalMemory_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUexternalMemory_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__53)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUexternalMemory_16__setstate_cython__[] = "CUexternalMemory.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUexternalMemory_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUexternalMemory_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUexternalMemory_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUexternalMemory_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUexternalMemory_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUexternalMemory_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__55)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalMemory.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1417
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1417, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1417, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1417, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1417, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore___cinit__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_19CUexternalSemaphore___cinit__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1417, 0, __PYX_ERR(0, 1417, __pyx_L1_error));

  /* "cuda/cuda.pyx":1418
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1419
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1420
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalSemaphore)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))));

    /* "cuda/cuda.pyx":1421
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *             self._ptr[0] = <ccuda.CUexternalSemaphore>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1422
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalSemaphore)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUexternalSemaphore>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1422, __pyx_L1_error)

      /* "cuda/cuda.pyx":1421
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *             self._ptr[0] = <ccuda.CUexternalSemaphore>init_value
 */
    }

    /* "cuda/cuda.pyx":1423
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *             self._ptr[0] = <ccuda.CUexternalSemaphore>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1418
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexternalSemaphore *>calloc(1, sizeof(ccuda.CUexternalSemaphore))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1425
 *             self._ptr[0] = <ccuda.CUexternalSemaphore>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexternalSemaphore *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1426
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexternalSemaphore *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1417
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1427
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexternalSemaphore *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_2__init__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1427, 0, __PYX_ERR(0, 1427, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1429
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1429, 0, __PYX_ERR(0, 1429, __pyx_L1_error));

  /* "cuda/cuda.pyx":1430
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1431
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1430
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1429
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUexternalSemaphore.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1432
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_6__repr__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1432, 0, __PYX_ERR(0, 1432, __pyx_L1_error));

  /* "cuda/cuda.pyx":1433
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUexternalSemaphore, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1432
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1434
 *     def __repr__(self):
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_8__index__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_8__index__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1434, 0, __PYX_ERR(0, 1434, __pyx_L1_error));

  /* "cuda/cuda.pyx":1435
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1434
 *     def __repr__(self):
 *         return '<CUexternalSemaphore ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1436
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_10__int__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_10__int__(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1436, 0, __PYX_ERR(0, 1436, __pyx_L1_error));

  /* "cuda/cuda.pyx":1437
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1436
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1438
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_12getPtr[] = "CUexternalSemaphore.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19CUexternalSemaphore_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_12getPtr(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__57)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1438, 0, __PYX_ERR(0, 1438, __pyx_L1_error));

  /* "cuda/cuda.pyx":1439
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUgraph:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1438
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_14__reduce_cython__[] = "CUexternalSemaphore.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19CUexternalSemaphore_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__58)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_16__setstate_cython__[] = "CUexternalSemaphore.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19CUexternalSemaphore_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUexternalSemaphore_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUexternalSemaphore_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__60)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexternalSemaphore.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1451
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_7CUgraph_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_7CUgraph_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1451, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1451, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1451, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1451, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph___cinit__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_7CUgraph___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1451, 0, __PYX_ERR(0, 1451, __pyx_L1_error));

  /* "cuda/cuda.pyx":1452
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1453
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1454
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraph)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraph *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUgraph))));

    /* "cuda/cuda.pyx":1455
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraph)))
 *             self._ptr[0] = <ccuda.CUgraph>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1456
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraph)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUgraph>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraph))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1456, __pyx_L1_error)

      /* "cuda/cuda.pyx":1455
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraph)))
 *             self._ptr[0] = <ccuda.CUgraph>init_value
 */
    }

    /* "cuda/cuda.pyx":1457
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraph)))
 *             self._ptr[0] = <ccuda.CUgraph>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUgraph)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1452
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraph *>calloc(1, sizeof(ccuda.CUgraph))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1459
 *             self._ptr[0] = <ccuda.CUgraph>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraph *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1460
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraph *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraph *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1451
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1461
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraph *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_7CUgraph_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_7CUgraph_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_2__init__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_7CUgraph_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1461, 0, __PYX_ERR(0, 1461, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1463
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_7CUgraph_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_7CUgraph_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_7CUgraph_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_7CUgraph_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1463, 0, __PYX_ERR(0, 1463, __pyx_L1_error));

  /* "cuda/cuda.pyx":1464
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1465
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1464
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1463
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUgraph.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1466
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1466, 0, __PYX_ERR(0, 1466, __pyx_L1_error));

  /* "cuda/cuda.pyx":1467
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUgraph, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1466
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1468
 *     def __repr__(self):
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_8__index__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1468, 0, __PYX_ERR(0, 1468, __pyx_L1_error));

  /* "cuda/cuda.pyx":1469
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1468
 *     def __repr__(self):
 *         return '<CUgraph ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1470
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_10__int__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1470, 0, __PYX_ERR(0, 1470, __pyx_L1_error));

  /* "cuda/cuda.pyx":1471
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1470
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1472
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUgraph_12getPtr[] = "CUgraph.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUgraph_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUgraph_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUgraph_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__62)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1472, 0, __PYX_ERR(0, 1472, __pyx_L1_error));

  /* "cuda/cuda.pyx":1473
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUgraphNode:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1472
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUgraph_14__reduce_cython__[] = "CUgraph.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUgraph_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUgraph_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUgraph_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__63)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_7CUgraph_16__setstate_cython__[] = "CUgraph.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7CUgraph_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUgraph_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_7CUgraph_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_7CUgraph_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_7CUgraph_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_7CUgraph_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__65)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraph.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1485
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUgraphNode_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUgraphNode_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1485, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1485, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1485, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1485, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode___cinit__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUgraphNode___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1485, 0, __PYX_ERR(0, 1485, __pyx_L1_error));

  /* "cuda/cuda.pyx":1486
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1487
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1488
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":1489
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphNode)))
 *             self._ptr[0] = <ccuda.CUgraphNode>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1490
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUgraphNode>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1490, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1490, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1490, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1490, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1490, __pyx_L1_error)

      /* "cuda/cuda.pyx":1489
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphNode)))
 *             self._ptr[0] = <ccuda.CUgraphNode>init_value
 */
    }

    /* "cuda/cuda.pyx":1491
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphNode)))
 *             self._ptr[0] = <ccuda.CUgraphNode>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUgraphNode)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1486
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphNode *>calloc(1, sizeof(ccuda.CUgraphNode))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1493
 *             self._ptr[0] = <ccuda.CUgraphNode>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraphNode *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1494
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraphNode *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1485
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1495
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraphNode *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUgraphNode_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUgraphNode_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_2__init__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUgraphNode_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1495, 0, __PYX_ERR(0, 1495, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1497
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_11CUgraphNode_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_11CUgraphNode_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_11CUgraphNode_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_11CUgraphNode_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1497, 0, __PYX_ERR(0, 1497, __pyx_L1_error));

  /* "cuda/cuda.pyx":1498
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1499
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1498
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1497
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUgraphNode.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1500
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1500, 0, __PYX_ERR(0, 1500, __pyx_L1_error));

  /* "cuda/cuda.pyx":1501
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUgraphNode, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1500
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1502
 *     def __repr__(self):
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_8__index__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1502, 0, __PYX_ERR(0, 1502, __pyx_L1_error));

  /* "cuda/cuda.pyx":1503
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1502
 *     def __repr__(self):
 *         return '<CUgraphNode ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1504
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_10__int__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1504, 0, __PYX_ERR(0, 1504, __pyx_L1_error));

  /* "cuda/cuda.pyx":1505
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1504
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1506
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUgraphNode_12getPtr[] = "CUgraphNode.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUgraphNode_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphNode_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphNode_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__67)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1506, 0, __PYX_ERR(0, 1506, __pyx_L1_error));

  /* "cuda/cuda.pyx":1507
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUgraphExec:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1506
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUgraphNode_14__reduce_cython__[] = "CUgraphNode.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUgraphNode_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphNode_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphNode_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__68)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__69, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUgraphNode_16__setstate_cython__[] = "CUgraphNode.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUgraphNode_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphNode_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUgraphNode_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphNode_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphNode_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphNode_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__70)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1519
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUgraphExec_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUgraphExec_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1519, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1519, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1519, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1519, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec___cinit__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUgraphExec___cinit__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1519, 0, __PYX_ERR(0, 1519, __pyx_L1_error));

  /* "cuda/cuda.pyx":1520
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1521
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1522
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphExec)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraphExec *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphExec))));

    /* "cuda/cuda.pyx":1523
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphExec)))
 *             self._ptr[0] = <ccuda.CUgraphExec>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1524
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphExec)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUgraphExec>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphExec))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1524, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1524, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1524, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1524, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1524, __pyx_L1_error)

      /* "cuda/cuda.pyx":1523
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphExec)))
 *             self._ptr[0] = <ccuda.CUgraphExec>init_value
 */
    }

    /* "cuda/cuda.pyx":1525
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUgraphExec)))
 *             self._ptr[0] = <ccuda.CUgraphExec>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUgraphExec)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1520
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUgraphExec *>calloc(1, sizeof(ccuda.CUgraphExec))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1527
 *             self._ptr[0] = <ccuda.CUgraphExec>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUgraphExec *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1528
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraphExec *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUgraphExec *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1519
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1529
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUgraphExec *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUgraphExec_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUgraphExec_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_2__init__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUgraphExec_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1529, 0, __PYX_ERR(0, 1529, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1531
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_11CUgraphExec_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_11CUgraphExec_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_11CUgraphExec_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_11CUgraphExec_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1531, 0, __PYX_ERR(0, 1531, __pyx_L1_error));

  /* "cuda/cuda.pyx":1532
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1533
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1532
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1531
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUgraphExec.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1534
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_6__repr__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1534, 0, __PYX_ERR(0, 1534, __pyx_L1_error));

  /* "cuda/cuda.pyx":1535
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUgraphExec, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1534
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1536
 *     def __repr__(self):
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_8__index__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_8__index__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1536, 0, __PYX_ERR(0, 1536, __pyx_L1_error));

  /* "cuda/cuda.pyx":1537
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1536
 *     def __repr__(self):
 *         return '<CUgraphExec ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1538
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_10__int__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_10__int__(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1538, 0, __PYX_ERR(0, 1538, __pyx_L1_error));

  /* "cuda/cuda.pyx":1539
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1538
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1540
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUgraphExec_12getPtr[] = "CUgraphExec.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUgraphExec_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphExec_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphExec_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_12getPtr(struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__72)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1540, 0, __PYX_ERR(0, 1540, __pyx_L1_error));

  /* "cuda/cuda.pyx":1541
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemoryPool:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1540
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUgraphExec_14__reduce_cython__[] = "CUgraphExec.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUgraphExec_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphExec_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphExec_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__73)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUgraphExec_16__setstate_cython__[] = "CUgraphExec.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUgraphExec_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphExec_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUgraphExec_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUgraphExec_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUgraphExec_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUgraphExec_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__75)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUgraphExec.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1553
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUmemoryPool_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUmemoryPool_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1553, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1553, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1553, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1553, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUmemoryPool___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1553, 0, __PYX_ERR(0, 1553, __pyx_L1_error));

  /* "cuda/cuda.pyx":1554
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1555
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1556
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemoryPool)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmemoryPool *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUmemoryPool))));

    /* "cuda/cuda.pyx":1557
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemoryPool)))
 *             self._ptr[0] = <ccuda.CUmemoryPool>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1558
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemoryPool)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUmemoryPool>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemoryPool))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1558, __pyx_L1_error)

      /* "cuda/cuda.pyx":1557
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemoryPool)))
 *             self._ptr[0] = <ccuda.CUmemoryPool>init_value
 */
    }

    /* "cuda/cuda.pyx":1559
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemoryPool)))
 *             self._ptr[0] = <ccuda.CUmemoryPool>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUmemoryPool)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1554
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemoryPool *>calloc(1, sizeof(ccuda.CUmemoryPool))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1561
 *             self._ptr[0] = <ccuda.CUmemoryPool>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemoryPool *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1562
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemoryPool *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmemoryPool *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1553
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1563
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemoryPool *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUmemoryPool_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUmemoryPool_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUmemoryPool_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1563, 0, __PYX_ERR(0, 1563, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1565
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_12CUmemoryPool_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_12CUmemoryPool_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_12CUmemoryPool_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_12CUmemoryPool_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1565, 0, __PYX_ERR(0, 1565, __pyx_L1_error));

  /* "cuda/cuda.pyx":1566
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1567
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1566
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1565
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemoryPool.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1568
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_6__repr__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1568, 0, __PYX_ERR(0, 1568, __pyx_L1_error));

  /* "cuda/cuda.pyx":1569
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUmemoryPool, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1568
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1570
 *     def __repr__(self):
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_8__index__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_8__index__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1570, 0, __PYX_ERR(0, 1570, __pyx_L1_error));

  /* "cuda/cuda.pyx":1571
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1570
 *     def __repr__(self):
 *         return '<CUmemoryPool ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1572
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_10__int__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_10__int__(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1572, 0, __PYX_ERR(0, 1572, __pyx_L1_error));

  /* "cuda/cuda.pyx":1573
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1572
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1574
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUmemoryPool_12getPtr[] = "CUmemoryPool.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUmemoryPool_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUmemoryPool_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUmemoryPool_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_12getPtr(struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__77)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1574, 0, __PYX_ERR(0, 1574, __pyx_L1_error));

  /* "cuda/cuda.pyx":1575
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUuserObject:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1574
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUmemoryPool_14__reduce_cython__[] = "CUmemoryPool.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUmemoryPool_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUmemoryPool_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUmemoryPool_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__78)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUmemoryPool_16__setstate_cython__[] = "CUmemoryPool.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUmemoryPool_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUmemoryPool_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUmemoryPool_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUmemoryPool_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUmemoryPool_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUmemoryPool_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__80)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__81, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemoryPool.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1587
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUuserObject_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUuserObject_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1587, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1587, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1587, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1587, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject___cinit__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUuserObject___cinit__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1587, 0, __PYX_ERR(0, 1587, __pyx_L1_error));

  /* "cuda/cuda.pyx":1588
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1589
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1590
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuserObject)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUuserObject *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUuserObject))));

    /* "cuda/cuda.pyx":1591
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuserObject)))
 *             self._ptr[0] = <ccuda.CUuserObject>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1592
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuserObject)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUuserObject>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUuserObject))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1592, __pyx_L1_error)

      /* "cuda/cuda.pyx":1591
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuserObject)))
 *             self._ptr[0] = <ccuda.CUuserObject>init_value
 */
    }

    /* "cuda/cuda.pyx":1593
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuserObject)))
 *             self._ptr[0] = <ccuda.CUuserObject>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUuserObject)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1588
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuserObject *>calloc(1, sizeof(ccuda.CUuserObject))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1595
 *             self._ptr[0] = <ccuda.CUuserObject>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUuserObject *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1596
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUuserObject *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUuserObject *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1587
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1597
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUuserObject *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUuserObject_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUuserObject_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_2__init__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUuserObject_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1597, 0, __PYX_ERR(0, 1597, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1599
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_12CUuserObject_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_12CUuserObject_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_12CUuserObject_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_12CUuserObject_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1599, 0, __PYX_ERR(0, 1599, __pyx_L1_error));

  /* "cuda/cuda.pyx":1600
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1601
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1600
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1599
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUuserObject.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1602
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_6__repr__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1602, 0, __PYX_ERR(0, 1602, __pyx_L1_error));

  /* "cuda/cuda.pyx":1603
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUuserObject, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1602
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1604
 *     def __repr__(self):
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_8__index__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_8__index__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1604, 0, __PYX_ERR(0, 1604, __pyx_L1_error));

  /* "cuda/cuda.pyx":1605
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1604
 *     def __repr__(self):
 *         return '<CUuserObject ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1606
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_10__int__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_10__int__(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1606, 0, __PYX_ERR(0, 1606, __pyx_L1_error));

  /* "cuda/cuda.pyx":1607
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1606
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1608
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUuserObject_12getPtr[] = "CUuserObject.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUuserObject_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUuserObject_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUuserObject_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_12getPtr(struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__82)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1608, 0, __PYX_ERR(0, 1608, __pyx_L1_error));

  /* "cuda/cuda.pyx":1609
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUlinkState:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1608
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUuserObject_14__reduce_cython__[] = "CUuserObject.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUuserObject_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUuserObject_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUuserObject_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__83)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__84, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUuserObject_16__setstate_cython__[] = "CUuserObject.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUuserObject_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUuserObject_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUuserObject_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUuserObject_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUuserObject_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUuserObject_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__85)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__86, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuserObject.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1621
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUlinkState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUlinkState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1621, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1621, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1621, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1621, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState___cinit__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUlinkState___cinit__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1621, 0, __PYX_ERR(0, 1621, __pyx_L1_error));

  /* "cuda/cuda.pyx":1622
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1623
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1624
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUlinkState)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUlinkState *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUlinkState))));

    /* "cuda/cuda.pyx":1625
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUlinkState)))
 *             self._ptr[0] = <ccuda.CUlinkState>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1626
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUlinkState)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUlinkState>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUlinkState))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1626, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1626, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1626, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1626, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1626, __pyx_L1_error)

      /* "cuda/cuda.pyx":1625
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUlinkState)))
 *             self._ptr[0] = <ccuda.CUlinkState>init_value
 */
    }

    /* "cuda/cuda.pyx":1627
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUlinkState)))
 *             self._ptr[0] = <ccuda.CUlinkState>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUlinkState)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1622
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUlinkState *>calloc(1, sizeof(ccuda.CUlinkState))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1629
 *             self._ptr[0] = <ccuda.CUlinkState>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUlinkState *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1630
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUlinkState *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         self._keepalive = []
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUlinkState *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1621
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1631
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUlinkState *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         self._keepalive = []
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUlinkState_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUlinkState_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_2__init__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUlinkState_2__init__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1631, 0, __PYX_ERR(0, 1631, __pyx_L1_error));

  /* "cuda/cuda.pyx":1632
 *             self._ptr = <ccuda.CUlinkState *>_ptr
 *     def __init__(self, *args, **kwargs):
 *         self._keepalive = []             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_keepalive);
  __Pyx_DECREF(__pyx_v_self->_keepalive);
  __pyx_v_self->_keepalive = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1631
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUlinkState *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         self._keepalive = []
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1633
 *     def __init__(self, *args, **kwargs):
 *         self._keepalive = []
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_11CUlinkState_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_11CUlinkState_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_11CUlinkState_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_11CUlinkState_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1633, 0, __PYX_ERR(0, 1633, __pyx_L1_error));

  /* "cuda/cuda.pyx":1634
 *         self._keepalive = []
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1635
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1634
 *         self._keepalive = []
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1633
 *     def __init__(self, *args, **kwargs):
 *         self._keepalive = []
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUlinkState.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1636
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_6__repr__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1636, 0, __PYX_ERR(0, 1636, __pyx_L1_error));

  /* "cuda/cuda.pyx":1637
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUlinkState, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1636
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1638
 *     def __repr__(self):
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_8__index__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_8__index__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1638, 0, __PYX_ERR(0, 1638, __pyx_L1_error));

  /* "cuda/cuda.pyx":1639
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1638
 *     def __repr__(self):
 *         return '<CUlinkState ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1640
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_10__int__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_10__int__(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1640, 0, __PYX_ERR(0, 1640, __pyx_L1_error));

  /* "cuda/cuda.pyx":1641
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1640
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1642
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUlinkState_12getPtr[] = "CUlinkState.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUlinkState_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUlinkState_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUlinkState_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_12getPtr(struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__87)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1642, 0, __PYX_ERR(0, 1642, __pyx_L1_error));

  /* "cuda/cuda.pyx":1643
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUhostFn:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1642
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUlinkState_14__reduce_cython__[] = "CUlinkState.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUlinkState_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUlinkState_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUlinkState_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__88)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__89, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUlinkState_16__setstate_cython__[] = "CUlinkState.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUlinkState_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUlinkState_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUlinkState_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUlinkState_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUlinkState_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUlinkState_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__90)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__91, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUlinkState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1655
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUhostFn_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUhostFn_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1655, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1655, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1655, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1655, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn___cinit__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUhostFn___cinit__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1655, 0, __PYX_ERR(0, 1655, __pyx_L1_error));

  /* "cuda/cuda.pyx":1656
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1657
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1658
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUhostFn)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUhostFn *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUhostFn))));

    /* "cuda/cuda.pyx":1659
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUhostFn)))
 *             self._ptr[0] = <ccuda.CUhostFn>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1660
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUhostFn)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUhostFn>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUhostFn))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1660, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1660, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1660, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1660, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1660, __pyx_L1_error)

      /* "cuda/cuda.pyx":1659
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUhostFn)))
 *             self._ptr[0] = <ccuda.CUhostFn>init_value
 */
    }

    /* "cuda/cuda.pyx":1661
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUhostFn)))
 *             self._ptr[0] = <ccuda.CUhostFn>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUhostFn)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1656
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUhostFn *>calloc(1, sizeof(ccuda.CUhostFn))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1663
 *             self._ptr[0] = <ccuda.CUhostFn>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUhostFn *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1664
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUhostFn *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUhostFn *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1655
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1665
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUhostFn *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUhostFn_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUhostFn_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_2__init__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUhostFn_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1665, 0, __PYX_ERR(0, 1665, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1667
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_8CUhostFn_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_8CUhostFn_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_8CUhostFn_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_8CUhostFn_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1667, 0, __PYX_ERR(0, 1667, __pyx_L1_error));

  /* "cuda/cuda.pyx":1668
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1669
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1668
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1667
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUhostFn.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1670
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_6__repr__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1670, 0, __PYX_ERR(0, 1670, __pyx_L1_error));

  /* "cuda/cuda.pyx":1671
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUhostFn, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1670
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1672
 *     def __repr__(self):
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_8__index__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_8__index__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1672, 0, __PYX_ERR(0, 1672, __pyx_L1_error));

  /* "cuda/cuda.pyx":1673
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1672
 *     def __repr__(self):
 *         return '<CUhostFn ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1674
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_10__int__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_10__int__(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1674, 0, __PYX_ERR(0, 1674, __pyx_L1_error));

  /* "cuda/cuda.pyx":1675
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1674
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1676
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUhostFn_12getPtr[] = "CUhostFn.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUhostFn_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUhostFn_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUhostFn_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_12getPtr(struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__92)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1676, 0, __PYX_ERR(0, 1676, __pyx_L1_error));

  /* "cuda/cuda.pyx":1677
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstreamCallback:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1676
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUhostFn_14__reduce_cython__[] = "CUhostFn.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUhostFn_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUhostFn_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUhostFn_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__93)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__94, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUhostFn_16__setstate_cython__[] = "CUhostFn.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUhostFn_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUhostFn_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUhostFn_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUhostFn_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUhostFn_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUhostFn_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__95)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__96, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUhostFn.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1689
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUstreamCallback_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUstreamCallback_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1689, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1689, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1689, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1689, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUstreamCallback___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1689, 0, __PYX_ERR(0, 1689, __pyx_L1_error));

  /* "cuda/cuda.pyx":1690
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1691
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1692
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamCallback)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUstreamCallback *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUstreamCallback))));

    /* "cuda/cuda.pyx":1693
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamCallback)))
 *             self._ptr[0] = <ccuda.CUstreamCallback>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1694
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamCallback)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUstreamCallback>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamCallback))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1694, __pyx_L1_error)

      /* "cuda/cuda.pyx":1693
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamCallback)))
 *             self._ptr[0] = <ccuda.CUstreamCallback>init_value
 */
    }

    /* "cuda/cuda.pyx":1695
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamCallback)))
 *             self._ptr[0] = <ccuda.CUstreamCallback>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUstreamCallback)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1690
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamCallback *>calloc(1, sizeof(ccuda.CUstreamCallback))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1697
 *             self._ptr[0] = <ccuda.CUstreamCallback>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamCallback *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1698
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamCallback *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUstreamCallback *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1689
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1699
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamCallback *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUstreamCallback_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUstreamCallback_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUstreamCallback_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1699, 0, __PYX_ERR(0, 1699, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1701
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_16CUstreamCallback_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_16CUstreamCallback_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_16CUstreamCallback_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_16CUstreamCallback_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1701, 0, __PYX_ERR(0, 1701, __pyx_L1_error));

  /* "cuda/cuda.pyx":1702
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1703
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1702
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1701
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstreamCallback.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1704
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_6__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1704, 0, __PYX_ERR(0, 1704, __pyx_L1_error));

  /* "cuda/cuda.pyx":1705
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUstreamCallback, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1704
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1706
 *     def __repr__(self):
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_8__index__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_8__index__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1706, 0, __PYX_ERR(0, 1706, __pyx_L1_error));

  /* "cuda/cuda.pyx":1707
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1706
 *     def __repr__(self):
 *         return '<CUstreamCallback ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1708
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_10__int__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_10__int__(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1708, 0, __PYX_ERR(0, 1708, __pyx_L1_error));

  /* "cuda/cuda.pyx":1709
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1708
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1710
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUstreamCallback_12getPtr[] = "CUstreamCallback.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUstreamCallback_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUstreamCallback_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUstreamCallback_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_12getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__97)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1710, 0, __PYX_ERR(0, 1710, __pyx_L1_error));

  /* "cuda/cuda.pyx":1711
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUoccupancyB2DSize:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1710
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUstreamCallback_14__reduce_cython__[] = "CUstreamCallback.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUstreamCallback_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUstreamCallback_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUstreamCallback_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__98)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__99, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUstreamCallback_16__setstate_cython__[] = "CUstreamCallback.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUstreamCallback_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUstreamCallback_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUstreamCallback_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUstreamCallback_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUstreamCallback_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUstreamCallback_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__100)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__101, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamCallback.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1723
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1723, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1723, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1723, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1723, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize___cinit__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize___cinit__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1723, 0, __PYX_ERR(0, 1723, __pyx_L1_error));

  /* "cuda/cuda.pyx":1724
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1725
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1726
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUoccupancyB2DSize)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize))));

    /* "cuda/cuda.pyx":1727
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUoccupancyB2DSize)))
 *             self._ptr[0] = <ccuda.CUoccupancyB2DSize>init_value
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1728
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUoccupancyB2DSize)))             # <<<<<<<<<<<<<<
 *             self._ptr[0] = <ccuda.CUoccupancyB2DSize>init_value
 *         else:
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1728, __pyx_L1_error)

      /* "cuda/cuda.pyx":1727
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUoccupancyB2DSize)))
 *             self._ptr[0] = <ccuda.CUoccupancyB2DSize>init_value
 */
    }

    /* "cuda/cuda.pyx":1729
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUoccupancyB2DSize)))
 *             self._ptr[0] = <ccuda.CUoccupancyB2DSize>init_value             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
    (__pyx_v_self->_ptr[0]) = ((__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize)__pyx_v_init_value);

    /* "cuda/cuda.pyx":1724
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>calloc(1, sizeof(ccuda.CUoccupancyB2DSize))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1731
 *             self._ptr[0] = <ccuda.CUoccupancyB2DSize>init_value
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>_ptr
 *     def __init__(self, *args, **kwargs):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1732
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, *args, **kwargs):
 *         pass
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1723
 * 
 *     """
 *     def __cinit__(self, void_ptr init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1733
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUoccupancyB2DSize *>_ptr
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))) return -1;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_2__init__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1733, 0, __PYX_ERR(0, 1733, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1735
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1735, 0, __PYX_ERR(0, 1735, __pyx_L1_error));

  /* "cuda/cuda.pyx":1736
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1737
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1736
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":1735
 *     def __init__(self, *args, **kwargs):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUoccupancyB2DSize.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1738
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_6__repr__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_6__repr__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1738, 0, __PYX_ERR(0, 1738, __pyx_L1_error));

  /* "cuda/cuda.pyx":1739
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'             # <<<<<<<<<<<<<<
 *     def __index__(self):
 *         return self.__int__()
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUoccupancyB2DSize, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1738
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1740
 *     def __repr__(self):
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_9__index__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_9__index__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__index__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_8__index__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_8__index__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__index__", 0);
  __Pyx_TraceCall("__index__", __pyx_f[0], 1740, 0, __PYX_ERR(0, 1740, __pyx_L1_error));

  /* "cuda/cuda.pyx":1741
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):
 *         return self.__int__()             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1740
 *     def __repr__(self):
 *         return '<CUoccupancyB2DSize ' + str(hex(self.__int__())) + '>'
 *     def __index__(self):             # <<<<<<<<<<<<<<
 *         return self.__int__()
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__index__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1742
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_11__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_11__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_10__int__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_10__int__(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 1742, 0, __PYX_ERR(0, 1742, __pyx_L1_error));

  /* "cuda/cuda.pyx":1743
 *         return self.__int__()
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1742
 *     def __index__(self):
 *         return self.__int__()
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1744
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_12getPtr[] = "CUoccupancyB2DSize.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUoccupancyB2DSize_13getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_12getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_13getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_12getPtr(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_12getPtr(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__102)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1744, 0, __PYX_ERR(0, 1744, __pyx_L1_error));

  /* "cuda/cuda.pyx":1745
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUuuid_st:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1744
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_14__reduce_cython__[] = "CUoccupancyB2DSize.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUoccupancyB2DSize_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_14__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_14__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__103)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__104, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_16__setstate_cython__[] = "CUoccupancyB2DSize.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUoccupancyB2DSize_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_16__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_16__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUoccupancyB2DSize_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__105)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__106, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUoccupancyB2DSize.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1761
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_9CUuuid_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_9CUuuid_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1761, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1761, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1761, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_9CUuuid_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1761, 0, __PYX_ERR(0, 1761, __pyx_L1_error));

  /* "cuda/cuda.pyx":1762
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1763
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1764
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuuid_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUuuid_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUuuid_st))));

    /* "cuda/cuda.pyx":1765
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuuid_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1766
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuuid_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUuuid_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1766, __pyx_L1_error)

      /* "cuda/cuda.pyx":1765
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuuid_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":1762
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUuuid_st *>calloc(1, sizeof(ccuda.CUuuid_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1768
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUuuid_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUuuid_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1769
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUuuid_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUuuid_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1761
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1770
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUuuid_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_9CUuuid_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_9CUuuid_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1770, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1770, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1770, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_9CUuuid_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1770, 0, __PYX_ERR(0, 1770, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1772
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_9CUuuid_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_9CUuuid_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_9CUuuid_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_9CUuuid_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1772, 0, __PYX_ERR(0, 1772, __pyx_L1_error));

  /* "cuda/cuda.pyx":1773
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1774
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1773
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":1772
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUuuid_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1776
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUuuid_st_6getPtr[] = "CUuuid_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUuuid_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUuuid_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUuuid_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__107)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1776, 0, __PYX_ERR(0, 1776, __pyx_L1_error));

  /* "cuda/cuda.pyx":1777
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1776
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1778
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1778, 0, __PYX_ERR(0, 1778, __pyx_L1_error));

  /* "cuda/cuda.pyx":1779
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['bytes : ' + str(self.bytes.hex())]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1780
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['bytes : ' + str(self.bytes.hex())]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1781
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['bytes : ' + str(self.bytes.hex())]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_hex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_bytes, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1781, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1782
 *             str_list = []
 *             str_list += ['bytes : ' + str(self.bytes.hex())]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1782, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":1779
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['bytes : ' + str(self.bytes.hex())]
 */
  }

  /* "cuda/cuda.pyx":1784
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":1778
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1787
 * 
 *     @property
 *     def bytes(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(self._ptr[0].bytes, 16)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_5bytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_5bytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st_5bytes___get__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_5bytes___get__(struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1787, 0, __PYX_ERR(0, 1787, __pyx_L1_error));

  /* "cuda/cuda.pyx":1788
 *     @property
 *     def bytes(self):
 *         return PyBytes_FromStringAndSize(self._ptr[0].bytes, 16)             # <<<<<<<<<<<<<<
 * 
 * cdef class CUipcEventHandle_st:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromStringAndSize((__pyx_v_self->_ptr[0]).bytes, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1787
 * 
 *     @property
 *     def bytes(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(self._ptr[0].bytes, 16)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.bytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUuuid_st_10__reduce_cython__[] = "CUuuid_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUuuid_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUuuid_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUuuid_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__110)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__111, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_9CUuuid_st_12__setstate_cython__[] = "CUuuid_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9CUuuid_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUuuid_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_9CUuuid_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_9CUuuid_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_9CUuuid_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUuuid_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_9CUuuid_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUuuid_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__112)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__113, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUuuid_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1805
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1805, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1805, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1805, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1805, 0, __PYX_ERR(0, 1805, __pyx_L1_error));

  /* "cuda/cuda.pyx":1806
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1807
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1808
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcEventHandle_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st))));

    /* "cuda/cuda.pyx":1809
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcEventHandle_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1810
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcEventHandle_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1810, __pyx_L1_error)

      /* "cuda/cuda.pyx":1809
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcEventHandle_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":1806
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcEventHandle_st *>calloc(1, sizeof(ccuda.CUipcEventHandle_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1812
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcEventHandle_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUipcEventHandle_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1813
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUipcEventHandle_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1805
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1814
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUipcEventHandle_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1814, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1814, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1814, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1814, 0, __PYX_ERR(0, 1814, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1816
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1816, 0, __PYX_ERR(0, 1816, __pyx_L1_error));

  /* "cuda/cuda.pyx":1817
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1818
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1817
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":1816
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUipcEventHandle_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1820
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_6getPtr[] = "CUipcEventHandle_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19CUipcEventHandle_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__114)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1820, 0, __PYX_ERR(0, 1820, __pyx_L1_error));

  /* "cuda/cuda.pyx":1821
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1820
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1822
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1822, 0, __PYX_ERR(0, 1822, __pyx_L1_error));

  /* "cuda/cuda.pyx":1823
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1824
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1825
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1826
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1826, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":1823
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  }

  /* "cuda/cuda.pyx":1828
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":1822
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1831
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1831, 0, __PYX_ERR(0, 1831, __pyx_L1_error));

  /* "cuda/cuda.pyx":1832
 *     @property
 *     def reserved(self):
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromStringAndSize((__pyx_v_self->_ptr[0]).reserved, 64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1831
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1834
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_b = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  char __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1834, 0, __PYX_ERR(0, 1834, __pyx_L1_error));

  /* "cuda/cuda.pyx":1835
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1835, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 != 64) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":1836
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))             # <<<<<<<<<<<<<<
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1836, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved_length_must_be_64_is, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 1836, __pyx_L1_error)

    /* "cuda/cuda.pyx":1835
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  }

  /* "cuda/cuda.pyx":1837
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             if b > 127 and b < 256:
 *                 b = b - 256
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_4 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_reserved)) || PyTuple_CheckExact(__pyx_v_reserved)) {
    __pyx_t_3 = __pyx_v_reserved; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_reserved); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1837, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1837, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 1837, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1837, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 1837, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1837, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1837, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1837, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4);
    __pyx_t_4 = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cuda/cuda.pyx":1838
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:             # <<<<<<<<<<<<<<
 *                 b = b - 256
 *             self._ptr[0].reserved[i] = b
 */
    __pyx_t_6 = PyObject_RichCompare(__pyx_v_b, __pyx_int_127, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1838, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1838, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {
    } else {
      __pyx_t_2 = __pyx_t_7;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_6 = PyObject_RichCompare(__pyx_v_b, __pyx_int_256, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1838, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1838, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = __pyx_t_7;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":1839
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:
 *                 b = b - 256             # <<<<<<<<<<<<<<
 *             self._ptr[0].reserved[i] = b
 * 
 */
      __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_v_b, __pyx_int_256, 0x100, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1839, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_b, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":1838
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:             # <<<<<<<<<<<<<<
 *                 b = b - 256
 *             self._ptr[0].reserved[i] = b
 */
    }

    /* "cuda/cuda.pyx":1840
 *             if b > 127 and b < 256:
 *                 b = b - 256
 *             self._ptr[0].reserved[i] = b             # <<<<<<<<<<<<<<
 * 
 * cdef class CUipcMemHandle_st:
 */
    __pyx_t_8 = __Pyx_PyInt_As_char(__pyx_v_b); if (unlikely((__pyx_t_8 == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 1840, __pyx_L1_error)
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1840, __pyx_L1_error)
    ((__pyx_v_self->_ptr[0]).reserved[__pyx_t_9]) = __pyx_t_8;

    /* "cuda/cuda.pyx":1837
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             if b > 127 and b < 256:
 *                 b = b - 256
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1834
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_10__reduce_cython__[] = "CUipcEventHandle_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19CUipcEventHandle_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__115)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__116, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_12__setstate_cython__[] = "CUipcEventHandle_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19CUipcEventHandle_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_19CUipcEventHandle_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__117)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__118, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcEventHandle_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1857
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1857, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1857, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1857, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1857, 0, __PYX_ERR(0, 1857, __pyx_L1_error));

  /* "cuda/cuda.pyx":1858
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1859
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1860
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcMemHandle_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st))));

    /* "cuda/cuda.pyx":1861
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcMemHandle_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1862
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcMemHandle_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1862, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1862, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1862, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1862, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1862, __pyx_L1_error)

      /* "cuda/cuda.pyx":1861
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcMemHandle_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":1858
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUipcMemHandle_st *>calloc(1, sizeof(ccuda.CUipcMemHandle_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1864
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUipcMemHandle_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUipcMemHandle_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1865
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUipcMemHandle_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1857
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1866
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUipcMemHandle_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1866, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1866, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1866, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1866, 0, __PYX_ERR(0, 1866, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1868
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1868, 0, __PYX_ERR(0, 1868, __pyx_L1_error));

  /* "cuda/cuda.pyx":1869
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1870
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1869
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":1868
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUipcMemHandle_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1872
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_6getPtr[] = "CUipcMemHandle_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUipcMemHandle_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__119)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1872, 0, __PYX_ERR(0, 1872, __pyx_L1_error));

  /* "cuda/cuda.pyx":1873
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1872
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1874
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1874, 0, __PYX_ERR(0, 1874, __pyx_L1_error));

  /* "cuda/cuda.pyx":1875
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1876
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1876, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1877
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1878
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1878, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":1875
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  }

  /* "cuda/cuda.pyx":1880
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":1874
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1883
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1883, 0, __PYX_ERR(0, 1883, __pyx_L1_error));

  /* "cuda/cuda.pyx":1884
 *     @property
 *     def reserved(self):
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromStringAndSize((__pyx_v_self->_ptr[0]).reserved, 64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1883
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1886
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_b = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  char __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1886, 0, __PYX_ERR(0, 1886, __pyx_L1_error));

  /* "cuda/cuda.pyx":1887
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1887, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 != 64) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":1888
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))             # <<<<<<<<<<<<<<
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1888, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved_length_must_be_64_is, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 1888, __pyx_L1_error)

    /* "cuda/cuda.pyx":1887
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  }

  /* "cuda/cuda.pyx":1889
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             if b > 127 and b < 256:
 *                 b = b - 256
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_4 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_reserved)) || PyTuple_CheckExact(__pyx_v_reserved)) {
    __pyx_t_3 = __pyx_v_reserved; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_reserved); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1889, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 1889, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1889, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 1889, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1889, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1889, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4);
    __pyx_t_4 = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cuda/cuda.pyx":1890
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:             # <<<<<<<<<<<<<<
 *                 b = b - 256
 *             self._ptr[0].reserved[i] = b
 */
    __pyx_t_6 = PyObject_RichCompare(__pyx_v_b, __pyx_int_127, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1890, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1890, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {
    } else {
      __pyx_t_2 = __pyx_t_7;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_6 = PyObject_RichCompare(__pyx_v_b, __pyx_int_256, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1890, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1890, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = __pyx_t_7;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":1891
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:
 *                 b = b - 256             # <<<<<<<<<<<<<<
 *             self._ptr[0].reserved[i] = b
 * 
 */
      __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_v_b, __pyx_int_256, 0x100, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_b, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":1890
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             if b > 127 and b < 256:             # <<<<<<<<<<<<<<
 *                 b = b - 256
 *             self._ptr[0].reserved[i] = b
 */
    }

    /* "cuda/cuda.pyx":1892
 *             if b > 127 and b < 256:
 *                 b = b - 256
 *             self._ptr[0].reserved[i] = b             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstreamMemOpWaitValueParams_st:
 */
    __pyx_t_8 = __Pyx_PyInt_As_char(__pyx_v_b); if (unlikely((__pyx_t_8 == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 1892, __pyx_L1_error)
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1892, __pyx_L1_error)
    ((__pyx_v_self->_ptr[0]).reserved[__pyx_t_9]) = __pyx_t_8;

    /* "cuda/cuda.pyx":1889
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             if b > 127 and b < 256:
 *                 b = b - 256
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1886
 *         return PyBytes_FromStringAndSize(self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_10__reduce_cython__[] = "CUipcMemHandle_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUipcMemHandle_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__120)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__121, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_12__setstate_cython__[] = "CUipcMemHandle_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUipcMemHandle_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUipcMemHandle_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__122)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__123, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUipcMemHandle_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1916
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1916, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1916, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1916, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 1916, 0, __PYX_ERR(0, 1916, __pyx_L1_error));

  /* "cuda/cuda.pyx":1917
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1918
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":1919
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWaitValueParams_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st))));

    /* "cuda/cuda.pyx":1920
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWaitValueParams_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":1921
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWaitValueParams_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1921, __pyx_L1_error)

      /* "cuda/cuda.pyx":1920
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWaitValueParams_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":1917
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWaitValueParams_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":1923
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWaitValueParams_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":1924
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":1916
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1925
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1925, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 1925, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1925, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 1925, 0, __PYX_ERR(0, 1925, __pyx_L1_error));

  /* "cuda/cuda.pyx":1926
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)             # <<<<<<<<<<<<<<
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).address))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_address);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_address));
  __pyx_v_self->_address = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":1927
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)             # <<<<<<<<<<<<<<
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).value64))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_value64);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_value64));
  __pyx_v_self->_value64 = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1928
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).alias))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 1928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_alias);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_alias));
  __pyx_v_self->_alias = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":1925
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpWaitValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1929
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 1929, 0, __PYX_ERR(0, 1929, __pyx_L1_error));

  /* "cuda/cuda.pyx":1930
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1931
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":1930
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":1929
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstreamMemOpWaitValueParams_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":1933
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_6getPtr[] = "CUstreamMemOpWaitValueParams_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__124)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 1933, 0, __PYX_ERR(0, 1933, __pyx_L1_error));

  /* "cuda/cuda.pyx":1934
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1933
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1935
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 1935, 0, __PYX_ERR(0, 1935, __pyx_L1_error));

  /* "cuda/cuda.pyx":1936
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":1937
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['address : ' + str(self.address)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1937, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1938
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]             # <<<<<<<<<<<<<<
 *             str_list += ['address : ' + str(self.address)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_operation_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_operation, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1939
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['address : ' + str(self.address)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['value64 : ' + str(self.value64)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_address_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_address, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1940
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['address : ' + str(self.address)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['value64 : ' + str(self.value64)]
 *             str_list += ['alias : ' + str(self.alias)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1941
 *             str_list += ['address : ' + str(self.address)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['value64 : ' + str(self.value64)]             # <<<<<<<<<<<<<<
 *             str_list += ['alias : ' + str(self.alias)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value64_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_value64, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1942
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['value64 : ' + str(self.value64)]
 *             str_list += ['alias : ' + str(self.alias)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_alias_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_alias, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":1943
 *             str_list += ['value64 : ' + str(self.value64)]
 *             str_list += ['alias : ' + str(self.alias)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":1936
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  }

  /* "cuda/cuda.pyx":1945
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":1935
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1948
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1948, 0, __PYX_ERR(0, 1948, __pyx_L1_error));

  /* "cuda/cuda.pyx":1949
 *     @property
 *     def operation(self):
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)             # <<<<<<<<<<<<<<
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUstreamBatchMemOpType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum((__pyx_v_self->_ptr[0]).operation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1948
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.operation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1951
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_operation) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "operation"); __PYX_ERR(0, 1951, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), ((PyObject *)__pyx_v_operation));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1951, 0, __PYX_ERR(0, 1951, __pyx_L1_error));

  /* "cuda/cuda.pyx":1953
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 *         pass
 *         self._ptr[0].operation = operation.value             # <<<<<<<<<<<<<<
 *     @property
 *     def address(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_operation, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1953, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).operation = __pyx_t_2;

  /* "cuda/cuda.pyx":1951
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.operation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1955
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def address(self):             # <<<<<<<<<<<<<<
 *         return self._address
 *     @address.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1955, 0, __PYX_ERR(0, 1955, __pyx_L1_error));

  /* "cuda/cuda.pyx":1956
 *     @property
 *     def address(self):
 *         return self._address             # <<<<<<<<<<<<<<
 *     @address.setter
 *     def address(self, address : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_address));
  __pyx_r = ((PyObject *)__pyx_v_self->_address);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1955
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def address(self):             # <<<<<<<<<<<<<<
 *         return self._address
 *     @address.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.address.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1958
 *         return self._address
 *     @address.setter
 *     def address(self, address : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_address); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_address) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_address), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "address", 0))) __PYX_ERR(0, 1958, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_address));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_address) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1958, 0, __PYX_ERR(0, 1958, __pyx_L1_error));

  /* "cuda/cuda.pyx":1960
 *     def address(self, address : CUdeviceptr):
 *         pass
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_address), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1960, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1960, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_address->_ptr[0]);
  }
  (__pyx_v_self->_address->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":1958
 *         return self._address
 *     @address.setter
 *     def address(self, address : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.address.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1962
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1962, 0, __PYX_ERR(0, 1962, __pyx_L1_error));

  /* "cuda/cuda.pyx":1963
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1962
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1965
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1965, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1965, 0, __PYX_ERR(0, 1965, __pyx_L1_error));

  /* "cuda/cuda.pyx":1967
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def value64(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":1965
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1969
 *         self._ptr[0].flags = flags
 *     @property
 *     def value64(self):             # <<<<<<<<<<<<<<
 *         return self._value64
 *     @value64.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1969, 0, __PYX_ERR(0, 1969, __pyx_L1_error));

  /* "cuda/cuda.pyx":1970
 *     @property
 *     def value64(self):
 *         return self._value64             # <<<<<<<<<<<<<<
 *     @value64.setter
 *     def value64(self, value64 : cuuint64_t):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_value64));
  __pyx_r = ((PyObject *)__pyx_v_self->_value64);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1969
 *         self._ptr[0].flags = flags
 *     @property
 *     def value64(self):             # <<<<<<<<<<<<<<
 *         return self._value64
 *     @value64.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.value64.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1972
 *         return self._value64
 *     @value64.setter
 *     def value64(self, value64 : cuuint64_t):             # <<<<<<<<<<<<<<
 *         pass
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value64); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value64) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value64), __pyx_ptype_4cuda_4cuda_cuuint64_t, 1, "value64", 0))) __PYX_ERR(0, 1972, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_value64));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value64) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_cuuint64_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1972, 0, __PYX_ERR(0, 1972, __pyx_L1_error));

  /* "cuda/cuda.pyx":1974
 *     def value64(self, value64 : cuuint64_t):
 *         pass
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def alias(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_value64), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1974, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1974, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_cuuint64_t)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_value64->_ptr[0]);
  }
  (__pyx_v_self->_value64->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":1972
 *         return self._value64
 *     @value64.setter
 *     def value64(self, value64 : cuuint64_t):             # <<<<<<<<<<<<<<
 *         pass
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.value64.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1976
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 *     @property
 *     def alias(self):             # <<<<<<<<<<<<<<
 *         return self._alias
 *     @alias.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 1976, 0, __PYX_ERR(0, 1976, __pyx_L1_error));

  /* "cuda/cuda.pyx":1977
 *     @property
 *     def alias(self):
 *         return self._alias             # <<<<<<<<<<<<<<
 *     @alias.setter
 *     def alias(self, alias : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_alias));
  __pyx_r = ((PyObject *)__pyx_v_self->_alias);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":1976
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 *     @property
 *     def alias(self):             # <<<<<<<<<<<<<<
 *         return self._alias
 *     @alias.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.alias.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":1979
 *         return self._alias
 *     @alias.setter
 *     def alias(self, alias : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._alias._ptr[0] = <ccuda.CUdeviceptr> NULL if alias == None else (<CUdeviceptr>alias)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_alias); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_alias) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alias), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "alias", 0))) __PYX_ERR(0, 1979, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_alias));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_alias) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 1979, 0, __PYX_ERR(0, 1979, __pyx_L1_error));

  /* "cuda/cuda.pyx":1981
 *     def alias(self, alias : CUdeviceptr):
 *         pass
 *         self._alias._ptr[0] = <ccuda.CUdeviceptr> NULL if alias == None else (<CUdeviceptr>alias)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstreamMemOpWriteValueParams_st:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_alias), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1981, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1981, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_alias->_ptr[0]);
  }
  (__pyx_v_self->_alias->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":1979
 *         return self._alias
 *     @alias.setter
 *     def alias(self, alias : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._alias._ptr[0] = <ccuda.CUdeviceptr> NULL if alias == None else (<CUdeviceptr>alias)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.alias.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_10__reduce_cython__[] = "CUstreamMemOpWaitValueParams_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__125)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__126, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_12__setstate_cython__[] = "CUstreamMemOpWaitValueParams_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__127)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__128, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWaitValueParams_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2005
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2005, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2005, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2005, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2005, 0, __PYX_ERR(0, 2005, __pyx_L1_error));

  /* "cuda/cuda.pyx":2006
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2007
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2008
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWriteValueParams_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st))));

    /* "cuda/cuda.pyx":2009
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWriteValueParams_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2010
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWriteValueParams_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2010, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2010, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2010, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2010, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2010, __pyx_L1_error)

      /* "cuda/cuda.pyx":2009
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWriteValueParams_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2006
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpWriteValueParams_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2012
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpWriteValueParams_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2013
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2005
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2014
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2014, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2014, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2014, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2014, 0, __PYX_ERR(0, 2014, __pyx_L1_error));

  /* "cuda/cuda.pyx":2015
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)             # <<<<<<<<<<<<<<
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).address))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_address);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_address));
  __pyx_v_self->_address = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2016
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)             # <<<<<<<<<<<<<<
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).value64))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 2016, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_value64);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_value64));
  __pyx_v_self->_value64 = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2017
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).alias))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2017, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_alias);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_alias));
  __pyx_v_self->_alias = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2014
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpWriteValueParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._address = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].address)
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2018
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2018, 0, __PYX_ERR(0, 2018, __pyx_L1_error));

  /* "cuda/cuda.pyx":2019
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2020
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2019
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2018
 *         self._value64 = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].value64)
 *         self._alias = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].alias)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstreamMemOpWriteValueParams_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2022
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_6getPtr[] = "CUstreamMemOpWriteValueParams_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__129)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2022, 0, __PYX_ERR(0, 2022, __pyx_L1_error));

  /* "cuda/cuda.pyx":2023
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2022
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2024
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2024, 0, __PYX_ERR(0, 2024, __pyx_L1_error));

  /* "cuda/cuda.pyx":2025
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2026
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['address : ' + str(self.address)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2027
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]             # <<<<<<<<<<<<<<
 *             str_list += ['address : ' + str(self.address)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_operation_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_operation, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2028
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['address : ' + str(self.address)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['value64 : ' + str(self.value64)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_address_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_address, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2029
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['address : ' + str(self.address)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['value64 : ' + str(self.value64)]
 *             str_list += ['alias : ' + str(self.alias)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2030
 *             str_list += ['address : ' + str(self.address)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['value64 : ' + str(self.value64)]             # <<<<<<<<<<<<<<
 *             str_list += ['alias : ' + str(self.alias)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value64_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_value64, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2031
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['value64 : ' + str(self.value64)]
 *             str_list += ['alias : ' + str(self.alias)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_alias_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_alias, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2032
 *             str_list += ['value64 : ' + str(self.value64)]
 *             str_list += ['alias : ' + str(self.alias)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2025
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  }

  /* "cuda/cuda.pyx":2034
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2024
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2037
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2037, 0, __PYX_ERR(0, 2037, __pyx_L1_error));

  /* "cuda/cuda.pyx":2038
 *     @property
 *     def operation(self):
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)             # <<<<<<<<<<<<<<
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUstreamBatchMemOpType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum((__pyx_v_self->_ptr[0]).operation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2037
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.operation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2040
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_operation) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "operation"); __PYX_ERR(0, 2040, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), ((PyObject *)__pyx_v_operation));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2040, 0, __PYX_ERR(0, 2040, __pyx_L1_error));

  /* "cuda/cuda.pyx":2042
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 *         pass
 *         self._ptr[0].operation = operation.value             # <<<<<<<<<<<<<<
 *     @property
 *     def address(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_operation, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2042, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2042, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).operation = __pyx_t_2;

  /* "cuda/cuda.pyx":2040
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.operation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2044
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def address(self):             # <<<<<<<<<<<<<<
 *         return self._address
 *     @address.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2044, 0, __PYX_ERR(0, 2044, __pyx_L1_error));

  /* "cuda/cuda.pyx":2045
 *     @property
 *     def address(self):
 *         return self._address             # <<<<<<<<<<<<<<
 *     @address.setter
 *     def address(self, address : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_address));
  __pyx_r = ((PyObject *)__pyx_v_self->_address);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2044
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def address(self):             # <<<<<<<<<<<<<<
 *         return self._address
 *     @address.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.address.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2047
 *         return self._address
 *     @address.setter
 *     def address(self, address : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_address); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_address) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_address), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "address", 0))) __PYX_ERR(0, 2047, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_address));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_address) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2047, 0, __PYX_ERR(0, 2047, __pyx_L1_error));

  /* "cuda/cuda.pyx":2049
 *     def address(self, address : CUdeviceptr):
 *         pass
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_address), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2049, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_address->_ptr[0]);
  }
  (__pyx_v_self->_address->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2047
 *         return self._address
 *     @address.setter
 *     def address(self, address : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.address.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2051
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2051, 0, __PYX_ERR(0, 2051, __pyx_L1_error));

  /* "cuda/cuda.pyx":2052
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2051
 *         self._address._ptr[0] = <ccuda.CUdeviceptr> NULL if address == None else (<CUdeviceptr>address)._ptr[0]
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2054
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2054, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2054, 0, __PYX_ERR(0, 2054, __pyx_L1_error));

  /* "cuda/cuda.pyx":2056
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def value64(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":2054
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2058
 *         self._ptr[0].flags = flags
 *     @property
 *     def value64(self):             # <<<<<<<<<<<<<<
 *         return self._value64
 *     @value64.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2058, 0, __PYX_ERR(0, 2058, __pyx_L1_error));

  /* "cuda/cuda.pyx":2059
 *     @property
 *     def value64(self):
 *         return self._value64             # <<<<<<<<<<<<<<
 *     @value64.setter
 *     def value64(self, value64 : cuuint64_t):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_value64));
  __pyx_r = ((PyObject *)__pyx_v_self->_value64);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2058
 *         self._ptr[0].flags = flags
 *     @property
 *     def value64(self):             # <<<<<<<<<<<<<<
 *         return self._value64
 *     @value64.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.value64.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2061
 *         return self._value64
 *     @value64.setter
 *     def value64(self, value64 : cuuint64_t):             # <<<<<<<<<<<<<<
 *         pass
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value64); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value64) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value64), __pyx_ptype_4cuda_4cuda_cuuint64_t, 1, "value64", 0))) __PYX_ERR(0, 2061, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_value64));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value64) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_cuuint64_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2061, 0, __PYX_ERR(0, 2061, __pyx_L1_error));

  /* "cuda/cuda.pyx":2063
 *     def value64(self, value64 : cuuint64_t):
 *         pass
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def alias(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_value64), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2063, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2063, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_cuuint64_t)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_value64->_ptr[0]);
  }
  (__pyx_v_self->_value64->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2061
 *         return self._value64
 *     @value64.setter
 *     def value64(self, value64 : cuuint64_t):             # <<<<<<<<<<<<<<
 *         pass
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.value64.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2065
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 *     @property
 *     def alias(self):             # <<<<<<<<<<<<<<
 *         return self._alias
 *     @alias.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2065, 0, __PYX_ERR(0, 2065, __pyx_L1_error));

  /* "cuda/cuda.pyx":2066
 *     @property
 *     def alias(self):
 *         return self._alias             # <<<<<<<<<<<<<<
 *     @alias.setter
 *     def alias(self, alias : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_alias));
  __pyx_r = ((PyObject *)__pyx_v_self->_alias);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2065
 *         self._value64._ptr[0] = <ccuda.cuuint64_t> NULL if value64 == None else (<cuuint64_t>value64)._ptr[0]
 *     @property
 *     def alias(self):             # <<<<<<<<<<<<<<
 *         return self._alias
 *     @alias.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.alias.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2068
 *         return self._alias
 *     @alias.setter
 *     def alias(self, alias : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._alias._ptr[0] = <ccuda.CUdeviceptr> NULL if alias == None else (<CUdeviceptr>alias)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_alias); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_alias) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alias), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "alias", 0))) __PYX_ERR(0, 2068, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_alias));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_alias) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2068, 0, __PYX_ERR(0, 2068, __pyx_L1_error));

  /* "cuda/cuda.pyx":2070
 *     def alias(self, alias : CUdeviceptr):
 *         pass
 *         self._alias._ptr[0] = <ccuda.CUdeviceptr> NULL if alias == None else (<CUdeviceptr>alias)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstreamMemOpFlushRemoteWritesParams_st:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_alias), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_alias->_ptr[0]);
  }
  (__pyx_v_self->_alias->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2068
 *         return self._alias
 *     @alias.setter
 *     def alias(self, alias : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._alias._ptr[0] = <ccuda.CUdeviceptr> NULL if alias == None else (<CUdeviceptr>alias)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.alias.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_10__reduce_cython__[] = "CUstreamMemOpWriteValueParams_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__130)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__131, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_12__setstate_cython__[] = "CUstreamMemOpWriteValueParams_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__132)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__133, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpWriteValueParams_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2088
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2088, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2088, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2088, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2088, 0, __PYX_ERR(0, 2088, __pyx_L1_error));

  /* "cuda/cuda.pyx":2089
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2090
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2091
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st))));

    /* "cuda/cuda.pyx":2092
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2093
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2093, __pyx_L1_error)

      /* "cuda/cuda.pyx":2092
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2089
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>calloc(1, sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2095
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2096
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2088
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2097
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamMemOpFlushRemoteWritesParams_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2097, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2097, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2097, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2097, 0, __PYX_ERR(0, 2097, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2099
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2099, 0, __PYX_ERR(0, 2099, __pyx_L1_error));

  /* "cuda/cuda.pyx":2100
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2101
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2100
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2099
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2103
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_6getPtr[] = "CUstreamMemOpFlushRemoteWritesParams_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__134)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2103, 0, __PYX_ERR(0, 2103, __pyx_L1_error));

  /* "cuda/cuda.pyx":2104
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2103
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2105
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2105, 0, __PYX_ERR(0, 2105, __pyx_L1_error));

  /* "cuda/cuda.pyx":2106
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2107
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2108
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_operation_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_operation, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2109
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2110
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2106
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  }

  /* "cuda/cuda.pyx":2112
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2105
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2115
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2115, 0, __PYX_ERR(0, 2115, __pyx_L1_error));

  /* "cuda/cuda.pyx":2116
 *     @property
 *     def operation(self):
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)             # <<<<<<<<<<<<<<
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUstreamBatchMemOpType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum((__pyx_v_self->_ptr[0]).operation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2115
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.operation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2118
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation); /*proto*/
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_operation) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "operation"); __PYX_ERR(0, 2118, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self), ((PyObject *)__pyx_v_operation));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2118, 0, __PYX_ERR(0, 2118, __pyx_L1_error));

  /* "cuda/cuda.pyx":2120
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 *         pass
 *         self._ptr[0].operation = operation.value             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_operation, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).operation = __pyx_t_2;

  /* "cuda/cuda.pyx":2118
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.operation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2122
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2122, 0, __PYX_ERR(0, 2122, __pyx_L1_error));

  /* "cuda/cuda.pyx":2123
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2122
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2125
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2125, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2125, 0, __PYX_ERR(0, 2125, __pyx_L1_error));

  /* "cuda/cuda.pyx":2127
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstreamBatchMemOpParams_union:
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":2125
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_10__reduce_cython__[] = "CUstreamMemOpFlushRemoteWritesParams_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__135)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__136, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_12__setstate_cython__[] = "CUstreamMemOpFlushRemoteWritesParams_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__137)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__138, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2151
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2151, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2151, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2151, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2151, 0, __PYX_ERR(0, 2151, __pyx_L1_error));

  /* "cuda/cuda.pyx":2152
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2153
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2154
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamBatchMemOpParams_union)))
 */
    __pyx_v_self->_ptr = ((union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union *)calloc(1, (sizeof(union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union))));

    /* "cuda/cuda.pyx":2155
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamBatchMemOpParams_union)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2156
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamBatchMemOpParams_union)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2156, __pyx_L1_error)

      /* "cuda/cuda.pyx":2155
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamBatchMemOpParams_union)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2152
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>calloc(1, sizeof(ccuda.CUstreamBatchMemOpParams_union))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2158
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamBatchMemOpParams_union)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2159
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._waitValue = CUstreamMemOpWaitValueParams_st(_ptr=<void_ptr>&self._ptr[0].waitValue)
 */
    __pyx_v_self->_ptr = ((union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2151
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2160
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._waitValue = CUstreamMemOpWaitValueParams_st(_ptr=<void_ptr>&self._ptr[0].waitValue)
 *         self._writeValue = CUstreamMemOpWriteValueParams_st(_ptr=<void_ptr>&self._ptr[0].writeValue)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2160, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2160, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2160, 0, __PYX_ERR(0, 2160, __pyx_L1_error));

  /* "cuda/cuda.pyx":2161
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._waitValue = CUstreamMemOpWaitValueParams_st(_ptr=<void_ptr>&self._ptr[0].waitValue)             # <<<<<<<<<<<<<<
 *         self._writeValue = CUstreamMemOpWriteValueParams_st(_ptr=<void_ptr>&self._ptr[0].writeValue)
 *         self._flushRemoteWrites = CUstreamMemOpFlushRemoteWritesParams_st(_ptr=<void_ptr>&self._ptr[0].flushRemoteWrites)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).waitValue))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_waitValue);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_waitValue));
  __pyx_v_self->_waitValue = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2162
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._waitValue = CUstreamMemOpWaitValueParams_st(_ptr=<void_ptr>&self._ptr[0].waitValue)
 *         self._writeValue = CUstreamMemOpWriteValueParams_st(_ptr=<void_ptr>&self._ptr[0].writeValue)             # <<<<<<<<<<<<<<
 *         self._flushRemoteWrites = CUstreamMemOpFlushRemoteWritesParams_st(_ptr=<void_ptr>&self._ptr[0].flushRemoteWrites)
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).writeValue))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_writeValue);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_writeValue));
  __pyx_v_self->_writeValue = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2163
 *         self._waitValue = CUstreamMemOpWaitValueParams_st(_ptr=<void_ptr>&self._ptr[0].waitValue)
 *         self._writeValue = CUstreamMemOpWriteValueParams_st(_ptr=<void_ptr>&self._ptr[0].writeValue)
 *         self._flushRemoteWrites = CUstreamMemOpFlushRemoteWritesParams_st(_ptr=<void_ptr>&self._ptr[0].flushRemoteWrites)             # <<<<<<<<<<<<<<
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).flushRemoteWrites))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2163, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_flushRemoteWrites);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_flushRemoteWrites));
  __pyx_v_self->_flushRemoteWrites = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2164
 *         self._writeValue = CUstreamMemOpWriteValueParams_st(_ptr=<void_ptr>&self._ptr[0].writeValue)
 *         self._flushRemoteWrites = CUstreamMemOpFlushRemoteWritesParams_st(_ptr=<void_ptr>&self._ptr[0].flushRemoteWrites)
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).pad))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 2164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_pad);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_pad));
  __pyx_v_self->_pad = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2160
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamBatchMemOpParams_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._waitValue = CUstreamMemOpWaitValueParams_st(_ptr=<void_ptr>&self._ptr[0].waitValue)
 *         self._writeValue = CUstreamMemOpWriteValueParams_st(_ptr=<void_ptr>&self._ptr[0].writeValue)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2165
 *         self._flushRemoteWrites = CUstreamMemOpFlushRemoteWritesParams_st(_ptr=<void_ptr>&self._ptr[0].flushRemoteWrites)
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2165, 0, __PYX_ERR(0, 2165, __pyx_L1_error));

  /* "cuda/cuda.pyx":2166
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2167
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2166
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2165
 *         self._flushRemoteWrites = CUstreamMemOpFlushRemoteWritesParams_st(_ptr=<void_ptr>&self._ptr[0].flushRemoteWrites)
 *         self._pad = cuuint64_t(_ptr=<void_ptr>&self._ptr[0].pad)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstreamBatchMemOpParams_union.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2169
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_6getPtr[] = "CUstreamBatchMemOpParams_union.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_30CUstreamBatchMemOpParams_union_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__139)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2169, 0, __PYX_ERR(0, 2169, __pyx_L1_error));

  /* "cuda/cuda.pyx":2170
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2169
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2171
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_7genexpr__pyx_v_line = NULL;
  PyObject *__pyx_8genexpr1__pyx_v_line = NULL;
  PyObject *__pyx_8genexpr2__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2171, 0, __PYX_ERR(0, 2171, __pyx_L1_error));

  /* "cuda/cuda.pyx":2172
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2173
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['waitValue :\n' + '\n'.join(['    ' + line for line in str(self.waitValue).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2174
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]             # <<<<<<<<<<<<<<
 *             str_list += ['waitValue :\n' + '\n'.join(['    ' + line for line in str(self.waitValue).splitlines()])]
 *             str_list += ['writeValue :\n' + '\n'.join(['    ' + line for line in str(self.writeValue).splitlines()])]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_operation_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_operation, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2175
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['waitValue :\n' + '\n'.join(['    ' + line for line in str(self.waitValue).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['writeValue :\n' + '\n'.join(['    ' + line for line in str(self.writeValue).splitlines()])]
 *             str_list += ['flushRemoteWrites :\n' + '\n'.join(['    ' + line for line in str(self.flushRemoteWrites).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_waitValue_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2175, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2175, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2175, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2175, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2175, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_7genexpr__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2175, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 2175, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_line); __pyx_7genexpr__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_line); __pyx_7genexpr__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_waitValue, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2176
 *             str_list += ['operation : ' + str(self.operation)]
 *             str_list += ['waitValue :\n' + '\n'.join(['    ' + line for line in str(self.waitValue).splitlines()])]
 *             str_list += ['writeValue :\n' + '\n'.join(['    ' + line for line in str(self.writeValue).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['flushRemoteWrites :\n' + '\n'.join(['    ' + line for line in str(self.flushRemoteWrites).splitlines()])]
 *             str_list += ['pad : ' + str(self.pad)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2176, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_writeValue_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2176, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2176, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2176, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2176, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2176, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr1__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2176, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 2176, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_line); __pyx_8genexpr1__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_line); __pyx_8genexpr1__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_writeValue, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2177
 *             str_list += ['waitValue :\n' + '\n'.join(['    ' + line for line in str(self.waitValue).splitlines()])]
 *             str_list += ['writeValue :\n' + '\n'.join(['    ' + line for line in str(self.writeValue).splitlines()])]
 *             str_list += ['flushRemoteWrites :\n' + '\n'.join(['    ' + line for line in str(self.flushRemoteWrites).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['pad : ' + str(self.pad)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2177, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flushRemoteWrites_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2177, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2177, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2177, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2177, __pyx_L18_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2177, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr2__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2177, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 2177, __pyx_L18_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_line); __pyx_8genexpr2__pyx_v_line = 0;
      goto __pyx_L21_exit_scope;
      __pyx_L18_error:;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_line); __pyx_8genexpr2__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L21_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flushRemoteWrites, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2178
 *             str_list += ['writeValue :\n' + '\n'.join(['    ' + line for line in str(self.writeValue).splitlines()])]
 *             str_list += ['flushRemoteWrites :\n' + '\n'.join(['    ' + line for line in str(self.flushRemoteWrites).splitlines()])]
 *             str_list += ['pad : ' + str(self.pad)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pad_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_pad, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2179
 *             str_list += ['flushRemoteWrites :\n' + '\n'.join(['    ' + line for line in str(self.flushRemoteWrites).splitlines()])]
 *             str_list += ['pad : ' + str(self.pad)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2172
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['operation : ' + str(self.operation)]
 */
  }

  /* "cuda/cuda.pyx":2181
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2171
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v_line);
  __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_line);
  __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2184
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2184, 0, __PYX_ERR(0, 2184, __pyx_L1_error));

  /* "cuda/cuda.pyx":2185
 *     @property
 *     def operation(self):
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)             # <<<<<<<<<<<<<<
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUstreamBatchMemOpType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum((__pyx_v_self->_ptr[0]).operation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2184
 * 
 *     @property
 *     def operation(self):             # <<<<<<<<<<<<<<
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.operation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2187
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_operation) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "operation"); __PYX_ERR(0, 2187, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), ((PyObject *)__pyx_v_operation));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, PyObject *__pyx_v_operation) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2187, 0, __PYX_ERR(0, 2187, __pyx_L1_error));

  /* "cuda/cuda.pyx":2189
 *     def operation(self, operation not None : CUstreamBatchMemOpType):
 *         pass
 *         self._ptr[0].operation = operation.value             # <<<<<<<<<<<<<<
 *     @property
 *     def waitValue(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_operation, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).operation = __pyx_t_2;

  /* "cuda/cuda.pyx":2187
 *         return CUstreamBatchMemOpType(self._ptr[0].operation)
 *     @operation.setter
 *     def operation(self, operation not None : CUstreamBatchMemOpType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].operation = operation.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.operation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2191
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def waitValue(self):             # <<<<<<<<<<<<<<
 *         return self._waitValue
 *     @waitValue.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2191, 0, __PYX_ERR(0, 2191, __pyx_L1_error));

  /* "cuda/cuda.pyx":2192
 *     @property
 *     def waitValue(self):
 *         return self._waitValue             # <<<<<<<<<<<<<<
 *     @waitValue.setter
 *     def waitValue(self, waitValue not None : CUstreamMemOpWaitValueParams_st):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_waitValue));
  __pyx_r = ((PyObject *)__pyx_v_self->_waitValue);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2191
 *         self._ptr[0].operation = operation.value
 *     @property
 *     def waitValue(self):             # <<<<<<<<<<<<<<
 *         return self._waitValue
 *     @waitValue.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.waitValue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2194
 *         return self._waitValue
 *     @waitValue.setter
 *     def waitValue(self, waitValue not None : CUstreamMemOpWaitValueParams_st):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(waitValue):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_waitValue); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_waitValue) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_waitValue), __pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, 0, "waitValue", 0))) __PYX_ERR(0, 2194, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)__pyx_v_waitValue));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *__pyx_v_waitValue) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2194, 0, __PYX_ERR(0, 2194, __pyx_L1_error));

  /* "cuda/cuda.pyx":2196
 *     def waitValue(self, waitValue not None : CUstreamMemOpWaitValueParams_st):
 *         pass
 *         for _attr in dir(waitValue):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_waitValue)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2196, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2196, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2196, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2196, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2196, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2196, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":2197
 *         pass
 *         for _attr in dir(waitValue):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2197, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":2198
 *         for _attr in dir(waitValue):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._waitValue, _attr, getattr(waitValue, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":2197
 *         pass
 *         for _attr in dir(waitValue):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":2199
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._waitValue, _attr, getattr(waitValue, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2199, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":2200
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._waitValue, _attr, getattr(waitValue, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def writeValue(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_waitValue);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_waitValue), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2200, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 2200, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":2199
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._waitValue, _attr, getattr(waitValue, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":2196
 *     def waitValue(self, waitValue not None : CUstreamMemOpWaitValueParams_st):
 *         pass
 *         for _attr in dir(waitValue):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2194
 *         return self._waitValue
 *     @waitValue.setter
 *     def waitValue(self, waitValue not None : CUstreamMemOpWaitValueParams_st):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(waitValue):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.waitValue.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2202
 *                 setattr(self._waitValue, _attr, getattr(waitValue, _attr))
 *     @property
 *     def writeValue(self):             # <<<<<<<<<<<<<<
 *         return self._writeValue
 *     @writeValue.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2202, 0, __PYX_ERR(0, 2202, __pyx_L1_error));

  /* "cuda/cuda.pyx":2203
 *     @property
 *     def writeValue(self):
 *         return self._writeValue             # <<<<<<<<<<<<<<
 *     @writeValue.setter
 *     def writeValue(self, writeValue not None : CUstreamMemOpWriteValueParams_st):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_writeValue));
  __pyx_r = ((PyObject *)__pyx_v_self->_writeValue);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2202
 *                 setattr(self._waitValue, _attr, getattr(waitValue, _attr))
 *     @property
 *     def writeValue(self):             # <<<<<<<<<<<<<<
 *         return self._writeValue
 *     @writeValue.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.writeValue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2205
 *         return self._writeValue
 *     @writeValue.setter
 *     def writeValue(self, writeValue not None : CUstreamMemOpWriteValueParams_st):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(writeValue):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_writeValue); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_writeValue) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writeValue), __pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, 0, "writeValue", 0))) __PYX_ERR(0, 2205, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)__pyx_v_writeValue));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *__pyx_v_writeValue) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2205, 0, __PYX_ERR(0, 2205, __pyx_L1_error));

  /* "cuda/cuda.pyx":2207
 *     def writeValue(self, writeValue not None : CUstreamMemOpWriteValueParams_st):
 *         pass
 *         for _attr in dir(writeValue):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_writeValue)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2207, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2207, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2207, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2207, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2207, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2207, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":2208
 *         pass
 *         for _attr in dir(writeValue):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2208, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":2209
 *         for _attr in dir(writeValue):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._writeValue, _attr, getattr(writeValue, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":2208
 *         pass
 *         for _attr in dir(writeValue):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":2210
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._writeValue, _attr, getattr(writeValue, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2210, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":2211
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._writeValue, _attr, getattr(writeValue, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def flushRemoteWrites(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_writeValue);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_writeValue), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2211, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 2211, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":2210
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._writeValue, _attr, getattr(writeValue, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":2207
 *     def writeValue(self, writeValue not None : CUstreamMemOpWriteValueParams_st):
 *         pass
 *         for _attr in dir(writeValue):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2205
 *         return self._writeValue
 *     @writeValue.setter
 *     def writeValue(self, writeValue not None : CUstreamMemOpWriteValueParams_st):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(writeValue):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.writeValue.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2213
 *                 setattr(self._writeValue, _attr, getattr(writeValue, _attr))
 *     @property
 *     def flushRemoteWrites(self):             # <<<<<<<<<<<<<<
 *         return self._flushRemoteWrites
 *     @flushRemoteWrites.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2213, 0, __PYX_ERR(0, 2213, __pyx_L1_error));

  /* "cuda/cuda.pyx":2214
 *     @property
 *     def flushRemoteWrites(self):
 *         return self._flushRemoteWrites             # <<<<<<<<<<<<<<
 *     @flushRemoteWrites.setter
 *     def flushRemoteWrites(self, flushRemoteWrites not None : CUstreamMemOpFlushRemoteWritesParams_st):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_flushRemoteWrites));
  __pyx_r = ((PyObject *)__pyx_v_self->_flushRemoteWrites);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2213
 *                 setattr(self._writeValue, _attr, getattr(writeValue, _attr))
 *     @property
 *     def flushRemoteWrites(self):             # <<<<<<<<<<<<<<
 *         return self._flushRemoteWrites
 *     @flushRemoteWrites.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.flushRemoteWrites.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2216
 *         return self._flushRemoteWrites
 *     @flushRemoteWrites.setter
 *     def flushRemoteWrites(self, flushRemoteWrites not None : CUstreamMemOpFlushRemoteWritesParams_st):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(flushRemoteWrites):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_flushRemoteWrites); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_flushRemoteWrites) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flushRemoteWrites), __pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st, 0, "flushRemoteWrites", 0))) __PYX_ERR(0, 2216, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)__pyx_v_flushRemoteWrites));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *__pyx_v_flushRemoteWrites) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2216, 0, __PYX_ERR(0, 2216, __pyx_L1_error));

  /* "cuda/cuda.pyx":2218
 *     def flushRemoteWrites(self, flushRemoteWrites not None : CUstreamMemOpFlushRemoteWritesParams_st):
 *         pass
 *         for _attr in dir(flushRemoteWrites):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_flushRemoteWrites)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2218, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2218, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2218, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":2219
 *         pass
 *         for _attr in dir(flushRemoteWrites):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2219, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":2220
 *         for _attr in dir(flushRemoteWrites):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._flushRemoteWrites, _attr, getattr(flushRemoteWrites, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":2219
 *         pass
 *         for _attr in dir(flushRemoteWrites):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":2221
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._flushRemoteWrites, _attr, getattr(flushRemoteWrites, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2221, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":2222
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._flushRemoteWrites, _attr, getattr(flushRemoteWrites, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def pad(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_flushRemoteWrites);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_flushRemoteWrites), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2222, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 2222, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":2221
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._flushRemoteWrites, _attr, getattr(flushRemoteWrites, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":2218
 *     def flushRemoteWrites(self, flushRemoteWrites not None : CUstreamMemOpFlushRemoteWritesParams_st):
 *         pass
 *         for _attr in dir(flushRemoteWrites):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2216
 *         return self._flushRemoteWrites
 *     @flushRemoteWrites.setter
 *     def flushRemoteWrites(self, flushRemoteWrites not None : CUstreamMemOpFlushRemoteWritesParams_st):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(flushRemoteWrites):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.flushRemoteWrites.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2224
 *                 setattr(self._flushRemoteWrites, _attr, getattr(flushRemoteWrites, _attr))
 *     @property
 *     def pad(self):             # <<<<<<<<<<<<<<
 *         return self._pad
 *     @pad.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad___get__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2224, 0, __PYX_ERR(0, 2224, __pyx_L1_error));

  /* "cuda/cuda.pyx":2225
 *     @property
 *     def pad(self):
 *         return self._pad             # <<<<<<<<<<<<<<
 *     @pad.setter
 *     def pad(self, pad):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_pad));
  __pyx_r = ((PyObject *)__pyx_v_self->_pad);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2224
 *                 setattr(self._flushRemoteWrites, _attr, getattr(flushRemoteWrites, _attr))
 *     @property
 *     def pad(self):             # <<<<<<<<<<<<<<
 *         return self._pad
 *     @pad.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.pad.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2227
 *         return self._pad
 *     @pad.setter
 *     def pad(self, pad):             # <<<<<<<<<<<<<<
 *         pass
 *         self._pad._ptr[0] = <ccuda.cuuint64_t> NULL if pad == None else (<cuuint64_t>pad)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_pad); /*proto*/
static int __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_pad) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), ((PyObject *)__pyx_v_pad));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, PyObject *__pyx_v_pad) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_cuuint64_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2227, 0, __PYX_ERR(0, 2227, __pyx_L1_error));

  /* "cuda/cuda.pyx":2229
 *     def pad(self, pad):
 *         pass
 *         self._pad._ptr[0] = <ccuda.cuuint64_t> NULL if pad == None else (<cuuint64_t>pad)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class CUdevprop_st:
 */
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_pad, Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2229, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_cuuint64_t)NULL);
  } else {
    __pyx_t_1 = (((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_pad)->_ptr[0]);
  }
  (__pyx_v_self->_pad->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2227
 *         return self._pad
 *     @pad.setter
 *     def pad(self, pad):             # <<<<<<<<<<<<<<
 *         pass
 *         self._pad._ptr[0] = <ccuda.cuuint64_t> NULL if pad == None else (<cuuint64_t>pad)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.pad.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10__reduce_cython__[] = "CUstreamBatchMemOpParams_union.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_30CUstreamBatchMemOpParams_union_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__142)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__143, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_12__setstate_cython__[] = "CUstreamBatchMemOpParams_union.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_30CUstreamBatchMemOpParams_union_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30CUstreamBatchMemOpParams_union_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__144)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__145, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamBatchMemOpParams_union.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2264
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2264, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2264, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2264, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2264, 0, __PYX_ERR(0, 2264, __pyx_L1_error));

  /* "cuda/cuda.pyx":2265
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2266
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2267
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevprop_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUdevprop_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUdevprop_st))));

    /* "cuda/cuda.pyx":2268
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevprop_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2269
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevprop_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUdevprop_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2269, __pyx_L1_error)

      /* "cuda/cuda.pyx":2268
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevprop_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2265
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevprop_st *>calloc(1, sizeof(ccuda.CUdevprop_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2271
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevprop_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdevprop_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2272
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevprop_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUdevprop_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2264
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2273
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevprop_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2273, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2273, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2273, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2273, 0, __PYX_ERR(0, 2273, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2275
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_12CUdevprop_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_12CUdevprop_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_12CUdevprop_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_12CUdevprop_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2275, 0, __PYX_ERR(0, 2275, __pyx_L1_error));

  /* "cuda/cuda.pyx":2276
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2277
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2276
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2275
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUdevprop_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2279
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUdevprop_st_6getPtr[] = "CUdevprop_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUdevprop_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUdevprop_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUdevprop_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__146)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2279, 0, __PYX_ERR(0, 2279, __pyx_L1_error));

  /* "cuda/cuda.pyx":2280
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2279
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2281
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2281, 0, __PYX_ERR(0, 2281, __pyx_L1_error));

  /* "cuda/cuda.pyx":2282
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['maxThreadsPerBlock : ' + str(self.maxThreadsPerBlock)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2283
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['maxThreadsPerBlock : ' + str(self.maxThreadsPerBlock)]
 *             str_list += ['maxThreadsDim : ' + str(self.maxThreadsDim)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2284
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['maxThreadsPerBlock : ' + str(self.maxThreadsPerBlock)]             # <<<<<<<<<<<<<<
 *             str_list += ['maxThreadsDim : ' + str(self.maxThreadsDim)]
 *             str_list += ['maxGridSize : ' + str(self.maxGridSize)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_maxThreadsPerBlock_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_maxThreadsPerBlock, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2285
 *             str_list = []
 *             str_list += ['maxThreadsPerBlock : ' + str(self.maxThreadsPerBlock)]
 *             str_list += ['maxThreadsDim : ' + str(self.maxThreadsDim)]             # <<<<<<<<<<<<<<
 *             str_list += ['maxGridSize : ' + str(self.maxGridSize)]
 *             str_list += ['sharedMemPerBlock : ' + str(self.sharedMemPerBlock)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_maxThreadsDim_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_maxThreadsDim, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2286
 *             str_list += ['maxThreadsPerBlock : ' + str(self.maxThreadsPerBlock)]
 *             str_list += ['maxThreadsDim : ' + str(self.maxThreadsDim)]
 *             str_list += ['maxGridSize : ' + str(self.maxGridSize)]             # <<<<<<<<<<<<<<
 *             str_list += ['sharedMemPerBlock : ' + str(self.sharedMemPerBlock)]
 *             str_list += ['totalConstantMemory : ' + str(self.totalConstantMemory)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_maxGridSize_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_maxGridSize, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2287
 *             str_list += ['maxThreadsDim : ' + str(self.maxThreadsDim)]
 *             str_list += ['maxGridSize : ' + str(self.maxGridSize)]
 *             str_list += ['sharedMemPerBlock : ' + str(self.sharedMemPerBlock)]             # <<<<<<<<<<<<<<
 *             str_list += ['totalConstantMemory : ' + str(self.totalConstantMemory)]
 *             str_list += ['SIMDWidth : ' + str(self.SIMDWidth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_sharedMemPerBlock_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_sharedMemPerBlock, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2288
 *             str_list += ['maxGridSize : ' + str(self.maxGridSize)]
 *             str_list += ['sharedMemPerBlock : ' + str(self.sharedMemPerBlock)]
 *             str_list += ['totalConstantMemory : ' + str(self.totalConstantMemory)]             # <<<<<<<<<<<<<<
 *             str_list += ['SIMDWidth : ' + str(self.SIMDWidth)]
 *             str_list += ['memPitch : ' + str(self.memPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_totalConstantMemory_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_totalConstantMemory, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2289
 *             str_list += ['sharedMemPerBlock : ' + str(self.sharedMemPerBlock)]
 *             str_list += ['totalConstantMemory : ' + str(self.totalConstantMemory)]
 *             str_list += ['SIMDWidth : ' + str(self.SIMDWidth)]             # <<<<<<<<<<<<<<
 *             str_list += ['memPitch : ' + str(self.memPitch)]
 *             str_list += ['regsPerBlock : ' + str(self.regsPerBlock)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_SIMDWidth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_SIMDWidth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2290
 *             str_list += ['totalConstantMemory : ' + str(self.totalConstantMemory)]
 *             str_list += ['SIMDWidth : ' + str(self.SIMDWidth)]
 *             str_list += ['memPitch : ' + str(self.memPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['regsPerBlock : ' + str(self.regsPerBlock)]
 *             str_list += ['clockRate : ' + str(self.clockRate)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_memPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2291
 *             str_list += ['SIMDWidth : ' + str(self.SIMDWidth)]
 *             str_list += ['memPitch : ' + str(self.memPitch)]
 *             str_list += ['regsPerBlock : ' + str(self.regsPerBlock)]             # <<<<<<<<<<<<<<
 *             str_list += ['clockRate : ' + str(self.clockRate)]
 *             str_list += ['textureAlign : ' + str(self.textureAlign)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_regsPerBlock_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_regsPerBlock, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2292
 *             str_list += ['memPitch : ' + str(self.memPitch)]
 *             str_list += ['regsPerBlock : ' + str(self.regsPerBlock)]
 *             str_list += ['clockRate : ' + str(self.clockRate)]             # <<<<<<<<<<<<<<
 *             str_list += ['textureAlign : ' + str(self.textureAlign)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clockRate_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_clockRate, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2293
 *             str_list += ['regsPerBlock : ' + str(self.regsPerBlock)]
 *             str_list += ['clockRate : ' + str(self.clockRate)]
 *             str_list += ['textureAlign : ' + str(self.textureAlign)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_textureAlign_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_textureAlign, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2294
 *             str_list += ['clockRate : ' + str(self.clockRate)]
 *             str_list += ['textureAlign : ' + str(self.textureAlign)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2282
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['maxThreadsPerBlock : ' + str(self.maxThreadsPerBlock)]
 */
  }

  /* "cuda/cuda.pyx":2296
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2281
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2299
 * 
 *     @property
 *     def maxThreadsPerBlock(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxThreadsPerBlock
 *     @maxThreadsPerBlock.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2299, 0, __PYX_ERR(0, 2299, __pyx_L1_error));

  /* "cuda/cuda.pyx":2300
 *     @property
 *     def maxThreadsPerBlock(self):
 *         return self._ptr[0].maxThreadsPerBlock             # <<<<<<<<<<<<<<
 *     @maxThreadsPerBlock.setter
 *     def maxThreadsPerBlock(self, int maxThreadsPerBlock):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).maxThreadsPerBlock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2299
 * 
 *     @property
 *     def maxThreadsPerBlock(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxThreadsPerBlock
 *     @maxThreadsPerBlock.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxThreadsPerBlock.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2302
 *         return self._ptr[0].maxThreadsPerBlock
 *     @maxThreadsPerBlock.setter
 *     def maxThreadsPerBlock(self, int maxThreadsPerBlock):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxThreadsPerBlock = maxThreadsPerBlock
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_maxThreadsPerBlock); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_maxThreadsPerBlock) {
  int __pyx_v_maxThreadsPerBlock;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_maxThreadsPerBlock); {
    __pyx_v_maxThreadsPerBlock = __Pyx_PyInt_As_int(__pyx_arg_maxThreadsPerBlock); if (unlikely((__pyx_v_maxThreadsPerBlock == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2302, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxThreadsPerBlock.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_maxThreadsPerBlock));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_maxThreadsPerBlock) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2302, 0, __PYX_ERR(0, 2302, __pyx_L1_error));

  /* "cuda/cuda.pyx":2304
 *     def maxThreadsPerBlock(self, int maxThreadsPerBlock):
 *         pass
 *         self._ptr[0].maxThreadsPerBlock = maxThreadsPerBlock             # <<<<<<<<<<<<<<
 *     @property
 *     def maxThreadsDim(self):
 */
  (__pyx_v_self->_ptr[0]).maxThreadsPerBlock = __pyx_v_maxThreadsPerBlock;

  /* "cuda/cuda.pyx":2302
 *         return self._ptr[0].maxThreadsPerBlock
 *     @maxThreadsPerBlock.setter
 *     def maxThreadsPerBlock(self, int maxThreadsPerBlock):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxThreadsPerBlock = maxThreadsPerBlock
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxThreadsPerBlock.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2306
 *         self._ptr[0].maxThreadsPerBlock = maxThreadsPerBlock
 *     @property
 *     def maxThreadsDim(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxThreadsDim
 *     @maxThreadsDim.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2306, 0, __PYX_ERR(0, 2306, __pyx_L1_error));

  /* "cuda/cuda.pyx":2307
 *     @property
 *     def maxThreadsDim(self):
 *         return self._ptr[0].maxThreadsDim             # <<<<<<<<<<<<<<
 *     @maxThreadsDim.setter
 *     def maxThreadsDim(self, maxThreadsDim):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_int((__pyx_v_self->_ptr[0]).maxThreadsDim, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2306
 *         self._ptr[0].maxThreadsPerBlock = maxThreadsPerBlock
 *     @property
 *     def maxThreadsDim(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxThreadsDim
 *     @maxThreadsDim.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxThreadsDim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2309
 *         return self._ptr[0].maxThreadsDim
 *     @maxThreadsDim.setter
 *     def maxThreadsDim(self, maxThreadsDim):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxThreadsDim = maxThreadsDim
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_maxThreadsDim); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_maxThreadsDim) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((PyObject *)__pyx_v_maxThreadsDim));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, PyObject *__pyx_v_maxThreadsDim) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2309, 0, __PYX_ERR(0, 2309, __pyx_L1_error));

  /* "cuda/cuda.pyx":2311
 *     def maxThreadsDim(self, maxThreadsDim):
 *         pass
 *         self._ptr[0].maxThreadsDim = maxThreadsDim             # <<<<<<<<<<<<<<
 *     @property
 *     def maxGridSize(self):
 */
  if (unlikely(__Pyx_carray_from_py_int(__pyx_v_maxThreadsDim, __pyx_t_1, 3) < 0)) __PYX_ERR(0, 2311, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).maxThreadsDim[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).maxThreadsDim[0]) * (3));

  /* "cuda/cuda.pyx":2309
 *         return self._ptr[0].maxThreadsDim
 *     @maxThreadsDim.setter
 *     def maxThreadsDim(self, maxThreadsDim):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxThreadsDim = maxThreadsDim
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxThreadsDim.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2313
 *         self._ptr[0].maxThreadsDim = maxThreadsDim
 *     @property
 *     def maxGridSize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxGridSize
 *     @maxGridSize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_11maxGridSize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_11maxGridSize_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_11maxGridSize___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_11maxGridSize___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2313, 0, __PYX_ERR(0, 2313, __pyx_L1_error));

  /* "cuda/cuda.pyx":2314
 *     @property
 *     def maxGridSize(self):
 *         return self._ptr[0].maxGridSize             # <<<<<<<<<<<<<<
 *     @maxGridSize.setter
 *     def maxGridSize(self, maxGridSize):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_int((__pyx_v_self->_ptr[0]).maxGridSize, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2313
 *         self._ptr[0].maxThreadsDim = maxThreadsDim
 *     @property
 *     def maxGridSize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxGridSize
 *     @maxGridSize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxGridSize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2316
 *         return self._ptr[0].maxGridSize
 *     @maxGridSize.setter
 *     def maxGridSize(self, maxGridSize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxGridSize = maxGridSize
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_11maxGridSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_maxGridSize); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_11maxGridSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_maxGridSize) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_11maxGridSize_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((PyObject *)__pyx_v_maxGridSize));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_11maxGridSize_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, PyObject *__pyx_v_maxGridSize) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2316, 0, __PYX_ERR(0, 2316, __pyx_L1_error));

  /* "cuda/cuda.pyx":2318
 *     def maxGridSize(self, maxGridSize):
 *         pass
 *         self._ptr[0].maxGridSize = maxGridSize             # <<<<<<<<<<<<<<
 *     @property
 *     def sharedMemPerBlock(self):
 */
  if (unlikely(__Pyx_carray_from_py_int(__pyx_v_maxGridSize, __pyx_t_1, 3) < 0)) __PYX_ERR(0, 2318, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).maxGridSize[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).maxGridSize[0]) * (3));

  /* "cuda/cuda.pyx":2316
 *         return self._ptr[0].maxGridSize
 *     @maxGridSize.setter
 *     def maxGridSize(self, maxGridSize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxGridSize = maxGridSize
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.maxGridSize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2320
 *         self._ptr[0].maxGridSize = maxGridSize
 *     @property
 *     def sharedMemPerBlock(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].sharedMemPerBlock
 *     @sharedMemPerBlock.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2320, 0, __PYX_ERR(0, 2320, __pyx_L1_error));

  /* "cuda/cuda.pyx":2321
 *     @property
 *     def sharedMemPerBlock(self):
 *         return self._ptr[0].sharedMemPerBlock             # <<<<<<<<<<<<<<
 *     @sharedMemPerBlock.setter
 *     def sharedMemPerBlock(self, int sharedMemPerBlock):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).sharedMemPerBlock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2320
 *         self._ptr[0].maxGridSize = maxGridSize
 *     @property
 *     def sharedMemPerBlock(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].sharedMemPerBlock
 *     @sharedMemPerBlock.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.sharedMemPerBlock.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2323
 *         return self._ptr[0].sharedMemPerBlock
 *     @sharedMemPerBlock.setter
 *     def sharedMemPerBlock(self, int sharedMemPerBlock):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].sharedMemPerBlock = sharedMemPerBlock
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sharedMemPerBlock); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sharedMemPerBlock) {
  int __pyx_v_sharedMemPerBlock;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_sharedMemPerBlock); {
    __pyx_v_sharedMemPerBlock = __Pyx_PyInt_As_int(__pyx_arg_sharedMemPerBlock); if (unlikely((__pyx_v_sharedMemPerBlock == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2323, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.sharedMemPerBlock.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_sharedMemPerBlock));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_sharedMemPerBlock) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2323, 0, __PYX_ERR(0, 2323, __pyx_L1_error));

  /* "cuda/cuda.pyx":2325
 *     def sharedMemPerBlock(self, int sharedMemPerBlock):
 *         pass
 *         self._ptr[0].sharedMemPerBlock = sharedMemPerBlock             # <<<<<<<<<<<<<<
 *     @property
 *     def totalConstantMemory(self):
 */
  (__pyx_v_self->_ptr[0]).sharedMemPerBlock = __pyx_v_sharedMemPerBlock;

  /* "cuda/cuda.pyx":2323
 *         return self._ptr[0].sharedMemPerBlock
 *     @sharedMemPerBlock.setter
 *     def sharedMemPerBlock(self, int sharedMemPerBlock):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].sharedMemPerBlock = sharedMemPerBlock
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.sharedMemPerBlock.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2327
 *         self._ptr[0].sharedMemPerBlock = sharedMemPerBlock
 *     @property
 *     def totalConstantMemory(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].totalConstantMemory
 *     @totalConstantMemory.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2327, 0, __PYX_ERR(0, 2327, __pyx_L1_error));

  /* "cuda/cuda.pyx":2328
 *     @property
 *     def totalConstantMemory(self):
 *         return self._ptr[0].totalConstantMemory             # <<<<<<<<<<<<<<
 *     @totalConstantMemory.setter
 *     def totalConstantMemory(self, int totalConstantMemory):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).totalConstantMemory); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2327
 *         self._ptr[0].sharedMemPerBlock = sharedMemPerBlock
 *     @property
 *     def totalConstantMemory(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].totalConstantMemory
 *     @totalConstantMemory.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.totalConstantMemory.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2330
 *         return self._ptr[0].totalConstantMemory
 *     @totalConstantMemory.setter
 *     def totalConstantMemory(self, int totalConstantMemory):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].totalConstantMemory = totalConstantMemory
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_totalConstantMemory); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_totalConstantMemory) {
  int __pyx_v_totalConstantMemory;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_totalConstantMemory); {
    __pyx_v_totalConstantMemory = __Pyx_PyInt_As_int(__pyx_arg_totalConstantMemory); if (unlikely((__pyx_v_totalConstantMemory == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2330, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.totalConstantMemory.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_totalConstantMemory));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_totalConstantMemory) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2330, 0, __PYX_ERR(0, 2330, __pyx_L1_error));

  /* "cuda/cuda.pyx":2332
 *     def totalConstantMemory(self, int totalConstantMemory):
 *         pass
 *         self._ptr[0].totalConstantMemory = totalConstantMemory             # <<<<<<<<<<<<<<
 *     @property
 *     def SIMDWidth(self):
 */
  (__pyx_v_self->_ptr[0]).totalConstantMemory = __pyx_v_totalConstantMemory;

  /* "cuda/cuda.pyx":2330
 *         return self._ptr[0].totalConstantMemory
 *     @totalConstantMemory.setter
 *     def totalConstantMemory(self, int totalConstantMemory):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].totalConstantMemory = totalConstantMemory
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.totalConstantMemory.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2334
 *         self._ptr[0].totalConstantMemory = totalConstantMemory
 *     @property
 *     def SIMDWidth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].SIMDWidth
 *     @SIMDWidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_9SIMDWidth___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_9SIMDWidth___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2334, 0, __PYX_ERR(0, 2334, __pyx_L1_error));

  /* "cuda/cuda.pyx":2335
 *     @property
 *     def SIMDWidth(self):
 *         return self._ptr[0].SIMDWidth             # <<<<<<<<<<<<<<
 *     @SIMDWidth.setter
 *     def SIMDWidth(self, int SIMDWidth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).SIMDWidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2334
 *         self._ptr[0].totalConstantMemory = totalConstantMemory
 *     @property
 *     def SIMDWidth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].SIMDWidth
 *     @SIMDWidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.SIMDWidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2337
 *         return self._ptr[0].SIMDWidth
 *     @SIMDWidth.setter
 *     def SIMDWidth(self, int SIMDWidth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].SIMDWidth = SIMDWidth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_SIMDWidth); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_SIMDWidth) {
  int __pyx_v_SIMDWidth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_SIMDWidth); {
    __pyx_v_SIMDWidth = __Pyx_PyInt_As_int(__pyx_arg_SIMDWidth); if (unlikely((__pyx_v_SIMDWidth == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2337, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.SIMDWidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_SIMDWidth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_SIMDWidth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2337, 0, __PYX_ERR(0, 2337, __pyx_L1_error));

  /* "cuda/cuda.pyx":2339
 *     def SIMDWidth(self, int SIMDWidth):
 *         pass
 *         self._ptr[0].SIMDWidth = SIMDWidth             # <<<<<<<<<<<<<<
 *     @property
 *     def memPitch(self):
 */
  (__pyx_v_self->_ptr[0]).SIMDWidth = __pyx_v_SIMDWidth;

  /* "cuda/cuda.pyx":2337
 *         return self._ptr[0].SIMDWidth
 *     @SIMDWidth.setter
 *     def SIMDWidth(self, int SIMDWidth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].SIMDWidth = SIMDWidth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.SIMDWidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2341
 *         self._ptr[0].SIMDWidth = SIMDWidth
 *     @property
 *     def memPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].memPitch
 *     @memPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_8memPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_8memPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_8memPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_8memPitch___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2341, 0, __PYX_ERR(0, 2341, __pyx_L1_error));

  /* "cuda/cuda.pyx":2342
 *     @property
 *     def memPitch(self):
 *         return self._ptr[0].memPitch             # <<<<<<<<<<<<<<
 *     @memPitch.setter
 *     def memPitch(self, int memPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).memPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2341
 *         self._ptr[0].SIMDWidth = SIMDWidth
 *     @property
 *     def memPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].memPitch
 *     @memPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.memPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2344
 *         return self._ptr[0].memPitch
 *     @memPitch.setter
 *     def memPitch(self, int memPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].memPitch = memPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_8memPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_memPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_8memPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_memPitch) {
  int __pyx_v_memPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_memPitch); {
    __pyx_v_memPitch = __Pyx_PyInt_As_int(__pyx_arg_memPitch); if (unlikely((__pyx_v_memPitch == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2344, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.memPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_8memPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_memPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_8memPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_memPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2344, 0, __PYX_ERR(0, 2344, __pyx_L1_error));

  /* "cuda/cuda.pyx":2346
 *     def memPitch(self, int memPitch):
 *         pass
 *         self._ptr[0].memPitch = memPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def regsPerBlock(self):
 */
  (__pyx_v_self->_ptr[0]).memPitch = __pyx_v_memPitch;

  /* "cuda/cuda.pyx":2344
 *         return self._ptr[0].memPitch
 *     @memPitch.setter
 *     def memPitch(self, int memPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].memPitch = memPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.memPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2348
 *         self._ptr[0].memPitch = memPitch
 *     @property
 *     def regsPerBlock(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].regsPerBlock
 *     @regsPerBlock.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_12regsPerBlock___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_12regsPerBlock___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2348, 0, __PYX_ERR(0, 2348, __pyx_L1_error));

  /* "cuda/cuda.pyx":2349
 *     @property
 *     def regsPerBlock(self):
 *         return self._ptr[0].regsPerBlock             # <<<<<<<<<<<<<<
 *     @regsPerBlock.setter
 *     def regsPerBlock(self, int regsPerBlock):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).regsPerBlock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2348
 *         self._ptr[0].memPitch = memPitch
 *     @property
 *     def regsPerBlock(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].regsPerBlock
 *     @regsPerBlock.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.regsPerBlock.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2351
 *         return self._ptr[0].regsPerBlock
 *     @regsPerBlock.setter
 *     def regsPerBlock(self, int regsPerBlock):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].regsPerBlock = regsPerBlock
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_regsPerBlock); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_regsPerBlock) {
  int __pyx_v_regsPerBlock;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_regsPerBlock); {
    __pyx_v_regsPerBlock = __Pyx_PyInt_As_int(__pyx_arg_regsPerBlock); if (unlikely((__pyx_v_regsPerBlock == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2351, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.regsPerBlock.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_regsPerBlock));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_regsPerBlock) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2351, 0, __PYX_ERR(0, 2351, __pyx_L1_error));

  /* "cuda/cuda.pyx":2353
 *     def regsPerBlock(self, int regsPerBlock):
 *         pass
 *         self._ptr[0].regsPerBlock = regsPerBlock             # <<<<<<<<<<<<<<
 *     @property
 *     def clockRate(self):
 */
  (__pyx_v_self->_ptr[0]).regsPerBlock = __pyx_v_regsPerBlock;

  /* "cuda/cuda.pyx":2351
 *         return self._ptr[0].regsPerBlock
 *     @regsPerBlock.setter
 *     def regsPerBlock(self, int regsPerBlock):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].regsPerBlock = regsPerBlock
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.regsPerBlock.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2355
 *         self._ptr[0].regsPerBlock = regsPerBlock
 *     @property
 *     def clockRate(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].clockRate
 *     @clockRate.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_9clockRate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_9clockRate_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_9clockRate___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_9clockRate___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2355, 0, __PYX_ERR(0, 2355, __pyx_L1_error));

  /* "cuda/cuda.pyx":2356
 *     @property
 *     def clockRate(self):
 *         return self._ptr[0].clockRate             # <<<<<<<<<<<<<<
 *     @clockRate.setter
 *     def clockRate(self, int clockRate):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).clockRate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2355
 *         self._ptr[0].regsPerBlock = regsPerBlock
 *     @property
 *     def clockRate(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].clockRate
 *     @clockRate.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.clockRate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2358
 *         return self._ptr[0].clockRate
 *     @clockRate.setter
 *     def clockRate(self, int clockRate):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].clockRate = clockRate
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_9clockRate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_clockRate); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_9clockRate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_clockRate) {
  int __pyx_v_clockRate;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_clockRate); {
    __pyx_v_clockRate = __Pyx_PyInt_As_int(__pyx_arg_clockRate); if (unlikely((__pyx_v_clockRate == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2358, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.clockRate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_9clockRate_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_clockRate));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_9clockRate_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_clockRate) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2358, 0, __PYX_ERR(0, 2358, __pyx_L1_error));

  /* "cuda/cuda.pyx":2360
 *     def clockRate(self, int clockRate):
 *         pass
 *         self._ptr[0].clockRate = clockRate             # <<<<<<<<<<<<<<
 *     @property
 *     def textureAlign(self):
 */
  (__pyx_v_self->_ptr[0]).clockRate = __pyx_v_clockRate;

  /* "cuda/cuda.pyx":2358
 *         return self._ptr[0].clockRate
 *     @clockRate.setter
 *     def clockRate(self, int clockRate):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].clockRate = clockRate
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.clockRate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2362
 *         self._ptr[0].clockRate = clockRate
 *     @property
 *     def textureAlign(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].textureAlign
 *     @textureAlign.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_12textureAlign_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_12textureAlign_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_12textureAlign___get__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_12textureAlign___get__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2362, 0, __PYX_ERR(0, 2362, __pyx_L1_error));

  /* "cuda/cuda.pyx":2363
 *     @property
 *     def textureAlign(self):
 *         return self._ptr[0].textureAlign             # <<<<<<<<<<<<<<
 *     @textureAlign.setter
 *     def textureAlign(self, int textureAlign):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).textureAlign); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2362
 *         self._ptr[0].clockRate = clockRate
 *     @property
 *     def textureAlign(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].textureAlign
 *     @textureAlign.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.textureAlign.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2365
 *         return self._ptr[0].textureAlign
 *     @textureAlign.setter
 *     def textureAlign(self, int textureAlign):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].textureAlign = textureAlign
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_12textureAlign_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_textureAlign); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUdevprop_st_12textureAlign_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_textureAlign) {
  int __pyx_v_textureAlign;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_textureAlign); {
    __pyx_v_textureAlign = __Pyx_PyInt_As_int(__pyx_arg_textureAlign); if (unlikely((__pyx_v_textureAlign == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2365, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.textureAlign.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_12textureAlign_2__set__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((int)__pyx_v_textureAlign));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUdevprop_st_12textureAlign_2__set__(struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, int __pyx_v_textureAlign) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2365, 0, __PYX_ERR(0, 2365, __pyx_L1_error));

  /* "cuda/cuda.pyx":2367
 *     def textureAlign(self, int textureAlign):
 *         pass
 *         self._ptr[0].textureAlign = textureAlign             # <<<<<<<<<<<<<<
 * 
 * cdef class CUaccessPolicyWindow_st:
 */
  (__pyx_v_self->_ptr[0]).textureAlign = __pyx_v_textureAlign;

  /* "cuda/cuda.pyx":2365
 *         return self._ptr[0].textureAlign
 *     @textureAlign.setter
 *     def textureAlign(self, int textureAlign):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].textureAlign = textureAlign
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.textureAlign.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUdevprop_st_10__reduce_cython__[] = "CUdevprop_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUdevprop_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUdevprop_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUdevprop_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__147)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__148, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUdevprop_st_12__setstate_cython__[] = "CUdevprop_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUdevprop_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUdevprop_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUdevprop_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUdevprop_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUdevprop_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUdevprop_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUdevprop_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevprop_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__149)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__150, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevprop_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2404
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2404, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2404, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2404, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2404, 0, __PYX_ERR(0, 2404, __pyx_L1_error));

  /* "cuda/cuda.pyx":2405
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2406
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2407
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUaccessPolicyWindow_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st))));

    /* "cuda/cuda.pyx":2408
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUaccessPolicyWindow_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2409
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUaccessPolicyWindow_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2409, __pyx_L1_error)

      /* "cuda/cuda.pyx":2408
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUaccessPolicyWindow_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2405
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>calloc(1, sizeof(ccuda.CUaccessPolicyWindow_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2411
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUaccessPolicyWindow_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2412
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2404
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2413
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUaccessPolicyWindow_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2413, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2413, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2413, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2413, 0, __PYX_ERR(0, 2413, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2415
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2415, 0, __PYX_ERR(0, 2415, __pyx_L1_error));

  /* "cuda/cuda.pyx":2416
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2417
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2416
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2415
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUaccessPolicyWindow_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2419
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_6getPtr[] = "CUaccessPolicyWindow_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23CUaccessPolicyWindow_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__151)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2419, 0, __PYX_ERR(0, 2419, __pyx_L1_error));

  /* "cuda/cuda.pyx":2420
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2419
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2421
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2421, 0, __PYX_ERR(0, 2421, __pyx_L1_error));

  /* "cuda/cuda.pyx":2422
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['base_ptr : ' + hex(self.base_ptr)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2423
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['base_ptr : ' + hex(self.base_ptr)]
 *             str_list += ['num_bytes : ' + str(self.num_bytes)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2424
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['base_ptr : ' + hex(self.base_ptr)]             # <<<<<<<<<<<<<<
 *             str_list += ['num_bytes : ' + str(self.num_bytes)]
 *             str_list += ['hitRatio : ' + str(self.hitRatio)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base_ptr_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_base_ptr, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2425
 *             str_list = []
 *             str_list += ['base_ptr : ' + hex(self.base_ptr)]
 *             str_list += ['num_bytes : ' + str(self.num_bytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['hitRatio : ' + str(self.hitRatio)]
 *             str_list += ['hitProp : ' + str(self.hitProp)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_num_bytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_num_bytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2426
 *             str_list += ['base_ptr : ' + hex(self.base_ptr)]
 *             str_list += ['num_bytes : ' + str(self.num_bytes)]
 *             str_list += ['hitRatio : ' + str(self.hitRatio)]             # <<<<<<<<<<<<<<
 *             str_list += ['hitProp : ' + str(self.hitProp)]
 *             str_list += ['missProp : ' + str(self.missProp)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hitRatio_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_hitRatio, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2427
 *             str_list += ['num_bytes : ' + str(self.num_bytes)]
 *             str_list += ['hitRatio : ' + str(self.hitRatio)]
 *             str_list += ['hitProp : ' + str(self.hitProp)]             # <<<<<<<<<<<<<<
 *             str_list += ['missProp : ' + str(self.missProp)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hitProp_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_hitProp, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2428
 *             str_list += ['hitRatio : ' + str(self.hitRatio)]
 *             str_list += ['hitProp : ' + str(self.hitProp)]
 *             str_list += ['missProp : ' + str(self.missProp)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_missProp_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_missProp, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2429
 *             str_list += ['hitProp : ' + str(self.hitProp)]
 *             str_list += ['missProp : ' + str(self.missProp)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2422
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['base_ptr : ' + hex(self.base_ptr)]
 */
  }

  /* "cuda/cuda.pyx":2431
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2421
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2434
 * 
 *     @property
 *     def base_ptr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].base_ptr
 *     @base_ptr.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr___get__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2434, 0, __PYX_ERR(0, 2434, __pyx_L1_error));

  /* "cuda/cuda.pyx":2435
 *     @property
 *     def base_ptr(self):
 *         return <void_ptr>self._ptr[0].base_ptr             # <<<<<<<<<<<<<<
 *     @base_ptr.setter
 *     def base_ptr(self, base_ptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).base_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2434
 * 
 *     @property
 *     def base_ptr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].base_ptr
 *     @base_ptr.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.base_ptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2437
 *         return <void_ptr>self._ptr[0].base_ptr
 *     @base_ptr.setter
 *     def base_ptr(self, base_ptr):             # <<<<<<<<<<<<<<
 *         _cbase_ptr = utils.HelperInputVoidPtr(base_ptr)
 *         self._ptr[0].base_ptr = <void*><void_ptr>_cbase_ptr.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_base_ptr); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_base_ptr) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_2__set__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), ((PyObject *)__pyx_v_base_ptr));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, PyObject *__pyx_v_base_ptr) {
  PyObject *__pyx_v__cbase_ptr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2437, 0, __PYX_ERR(0, 2437, __pyx_L1_error));

  /* "cuda/cuda.pyx":2438
 *     @base_ptr.setter
 *     def base_ptr(self, base_ptr):
 *         _cbase_ptr = utils.HelperInputVoidPtr(base_ptr)             # <<<<<<<<<<<<<<
 *         self._ptr[0].base_ptr = <void*><void_ptr>_cbase_ptr.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_base_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cbase_ptr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2439
 *     def base_ptr(self, base_ptr):
 *         _cbase_ptr = utils.HelperInputVoidPtr(base_ptr)
 *         self._ptr[0].base_ptr = <void*><void_ptr>_cbase_ptr.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def num_bytes(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cbase_ptr, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).base_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":2437
 *         return <void_ptr>self._ptr[0].base_ptr
 *     @base_ptr.setter
 *     def base_ptr(self, base_ptr):             # <<<<<<<<<<<<<<
 *         _cbase_ptr = utils.HelperInputVoidPtr(base_ptr)
 *         self._ptr[0].base_ptr = <void*><void_ptr>_cbase_ptr.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.base_ptr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cbase_ptr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2441
 *         self._ptr[0].base_ptr = <void*><void_ptr>_cbase_ptr.cptr
 *     @property
 *     def num_bytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].num_bytes
 *     @num_bytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes___get__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2441, 0, __PYX_ERR(0, 2441, __pyx_L1_error));

  /* "cuda/cuda.pyx":2442
 *     @property
 *     def num_bytes(self):
 *         return self._ptr[0].num_bytes             # <<<<<<<<<<<<<<
 *     @num_bytes.setter
 *     def num_bytes(self, size_t num_bytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).num_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2441
 *         self._ptr[0].base_ptr = <void*><void_ptr>_cbase_ptr.cptr
 *     @property
 *     def num_bytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].num_bytes
 *     @num_bytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.num_bytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2444
 *         return self._ptr[0].num_bytes
 *     @num_bytes.setter
 *     def num_bytes(self, size_t num_bytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].num_bytes = num_bytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_num_bytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_num_bytes) {
  size_t __pyx_v_num_bytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_num_bytes); {
    __pyx_v_num_bytes = __Pyx_PyInt_As_size_t(__pyx_arg_num_bytes); if (unlikely((__pyx_v_num_bytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2444, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.num_bytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), ((size_t)__pyx_v_num_bytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, size_t __pyx_v_num_bytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2444, 0, __PYX_ERR(0, 2444, __pyx_L1_error));

  /* "cuda/cuda.pyx":2446
 *     def num_bytes(self, size_t num_bytes):
 *         pass
 *         self._ptr[0].num_bytes = num_bytes             # <<<<<<<<<<<<<<
 *     @property
 *     def hitRatio(self):
 */
  (__pyx_v_self->_ptr[0]).num_bytes = __pyx_v_num_bytes;

  /* "cuda/cuda.pyx":2444
 *         return self._ptr[0].num_bytes
 *     @num_bytes.setter
 *     def num_bytes(self, size_t num_bytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].num_bytes = num_bytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.num_bytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2448
 *         self._ptr[0].num_bytes = num_bytes
 *     @property
 *     def hitRatio(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].hitRatio
 *     @hitRatio.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio___get__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2448, 0, __PYX_ERR(0, 2448, __pyx_L1_error));

  /* "cuda/cuda.pyx":2449
 *     @property
 *     def hitRatio(self):
 *         return self._ptr[0].hitRatio             # <<<<<<<<<<<<<<
 *     @hitRatio.setter
 *     def hitRatio(self, float hitRatio):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->_ptr[0]).hitRatio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2448
 *         self._ptr[0].num_bytes = num_bytes
 *     @property
 *     def hitRatio(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].hitRatio
 *     @hitRatio.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.hitRatio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2451
 *         return self._ptr[0].hitRatio
 *     @hitRatio.setter
 *     def hitRatio(self, float hitRatio):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].hitRatio = hitRatio
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_hitRatio); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_hitRatio) {
  float __pyx_v_hitRatio;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_hitRatio); {
    __pyx_v_hitRatio = __pyx_PyFloat_AsFloat(__pyx_arg_hitRatio); if (unlikely((__pyx_v_hitRatio == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 2451, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.hitRatio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_2__set__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), ((float)__pyx_v_hitRatio));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, float __pyx_v_hitRatio) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2451, 0, __PYX_ERR(0, 2451, __pyx_L1_error));

  /* "cuda/cuda.pyx":2453
 *     def hitRatio(self, float hitRatio):
 *         pass
 *         self._ptr[0].hitRatio = hitRatio             # <<<<<<<<<<<<<<
 *     @property
 *     def hitProp(self):
 */
  (__pyx_v_self->_ptr[0]).hitRatio = __pyx_v_hitRatio;

  /* "cuda/cuda.pyx":2451
 *         return self._ptr[0].hitRatio
 *     @hitRatio.setter
 *     def hitRatio(self, float hitRatio):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].hitRatio = hitRatio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.hitRatio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2455
 *         self._ptr[0].hitRatio = hitRatio
 *     @property
 *     def hitProp(self):             # <<<<<<<<<<<<<<
 *         return CUaccessProperty(self._ptr[0].hitProp)
 *     @hitProp.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp___get__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2455, 0, __PYX_ERR(0, 2455, __pyx_L1_error));

  /* "cuda/cuda.pyx":2456
 *     @property
 *     def hitProp(self):
 *         return CUaccessProperty(self._ptr[0].hitProp)             # <<<<<<<<<<<<<<
 *     @hitProp.setter
 *     def hitProp(self, hitProp not None : CUaccessProperty):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUaccessProperty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum((__pyx_v_self->_ptr[0]).hitProp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2455
 *         self._ptr[0].hitRatio = hitRatio
 *     @property
 *     def hitProp(self):             # <<<<<<<<<<<<<<
 *         return CUaccessProperty(self._ptr[0].hitProp)
 *     @hitProp.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.hitProp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2458
 *         return CUaccessProperty(self._ptr[0].hitProp)
 *     @hitProp.setter
 *     def hitProp(self, hitProp not None : CUaccessProperty):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].hitProp = hitProp.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hitProp); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hitProp) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_hitProp) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "hitProp"); __PYX_ERR(0, 2458, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_2__set__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), ((PyObject *)__pyx_v_hitProp));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, PyObject *__pyx_v_hitProp) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUaccessProperty __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2458, 0, __PYX_ERR(0, 2458, __pyx_L1_error));

  /* "cuda/cuda.pyx":2460
 *     def hitProp(self, hitProp not None : CUaccessProperty):
 *         pass
 *         self._ptr[0].hitProp = hitProp.value             # <<<<<<<<<<<<<<
 *     @property
 *     def missProp(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_hitProp, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).hitProp = __pyx_t_2;

  /* "cuda/cuda.pyx":2458
 *         return CUaccessProperty(self._ptr[0].hitProp)
 *     @hitProp.setter
 *     def hitProp(self, hitProp not None : CUaccessProperty):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].hitProp = hitProp.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.hitProp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2462
 *         self._ptr[0].hitProp = hitProp.value
 *     @property
 *     def missProp(self):             # <<<<<<<<<<<<<<
 *         return CUaccessProperty(self._ptr[0].missProp)
 *     @missProp.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp___get__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp___get__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2462, 0, __PYX_ERR(0, 2462, __pyx_L1_error));

  /* "cuda/cuda.pyx":2463
 *     @property
 *     def missProp(self):
 *         return CUaccessProperty(self._ptr[0].missProp)             # <<<<<<<<<<<<<<
 *     @missProp.setter
 *     def missProp(self, missProp not None : CUaccessProperty):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUaccessProperty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum((__pyx_v_self->_ptr[0]).missProp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2462
 *         self._ptr[0].hitProp = hitProp.value
 *     @property
 *     def missProp(self):             # <<<<<<<<<<<<<<
 *         return CUaccessProperty(self._ptr[0].missProp)
 *     @missProp.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.missProp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2465
 *         return CUaccessProperty(self._ptr[0].missProp)
 *     @missProp.setter
 *     def missProp(self, missProp not None : CUaccessProperty):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].missProp = missProp.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_missProp); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_missProp) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_missProp) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "missProp"); __PYX_ERR(0, 2465, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_2__set__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), ((PyObject *)__pyx_v_missProp));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_2__set__(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, PyObject *__pyx_v_missProp) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUaccessProperty __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2465, 0, __PYX_ERR(0, 2465, __pyx_L1_error));

  /* "cuda/cuda.pyx":2467
 *     def missProp(self, missProp not None : CUaccessProperty):
 *         pass
 *         self._ptr[0].missProp = missProp.value             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_KERNEL_NODE_PARAMS_st:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_missProp, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).missProp = __pyx_t_2;

  /* "cuda/cuda.pyx":2465
 *         return CUaccessProperty(self._ptr[0].missProp)
 *     @missProp.setter
 *     def missProp(self, missProp not None : CUaccessProperty):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].missProp = missProp.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.missProp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_10__reduce_cython__[] = "CUaccessPolicyWindow_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23CUaccessPolicyWindow_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__152)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__153, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_12__setstate_cython__[] = "CUaccessPolicyWindow_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23CUaccessPolicyWindow_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUaccessPolicyWindow_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__154)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__155, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUaccessPolicyWindow_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2502
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2502, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2502, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2502, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2502, 0, __PYX_ERR(0, 2502, __pyx_L1_error));

  /* "cuda/cuda.pyx":2503
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2504
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2505
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st))));

    /* "cuda/cuda.pyx":2506
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2507
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2507, __pyx_L1_error)

      /* "cuda/cuda.pyx":2506
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2503
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2509
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2510
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2502
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2511
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2511, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2511, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2511, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2511, 0, __PYX_ERR(0, 2511, __pyx_L1_error));

  /* "cuda/cuda.pyx":2512
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).func))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUfunction), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_func);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_func));
  __pyx_v_self->_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2511
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_KERNEL_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2513
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2513, 0, __PYX_ERR(0, 2513, __pyx_L1_error));

  /* "cuda/cuda.pyx":2514
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2515
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2514
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2513
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._func = CUfunction(_ptr=<void_ptr>&self._ptr[0].func)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2517
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_6getPtr[] = "CUDA_KERNEL_NODE_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__156)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2517, 0, __PYX_ERR(0, 2517, __pyx_L1_error));

  /* "cuda/cuda.pyx":2518
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2517
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2519
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2519, 0, __PYX_ERR(0, 2519, __pyx_L1_error));

  /* "cuda/cuda.pyx":2520
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['func : ' + str(self.func)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2521
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['func : ' + str(self.func)]
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2522
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['func : ' + str(self.func)]             # <<<<<<<<<<<<<<
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_func_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_func, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2523
 *             str_list = []
 *             str_list += ['func : ' + str(self.func)]
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]             # <<<<<<<<<<<<<<
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gridDimX_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gridDimX, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2524
 *             str_list += ['func : ' + str(self.func)]
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]             # <<<<<<<<<<<<<<
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gridDimY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gridDimY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2525
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gridDimZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gridDimZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2526
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]             # <<<<<<<<<<<<<<
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blockDimX_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_blockDimX, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2527
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]             # <<<<<<<<<<<<<<
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blockDimY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_blockDimY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2528
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blockDimZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_blockDimZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2529
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 *             str_list += ['extra : ' + str(self.extra)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_sharedMemBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_sharedMemBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2530
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]             # <<<<<<<<<<<<<<
 *             str_list += ['extra : ' + str(self.extra)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kernelParams_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_kernelParams, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2531
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 *             str_list += ['extra : ' + str(self.extra)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extra_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_extra, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2532
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 *             str_list += ['extra : ' + str(self.extra)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2520
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['func : ' + str(self.func)]
 */
  }

  /* "cuda/cuda.pyx":2534
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2519
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2537
 * 
 *     @property
 *     def func(self):             # <<<<<<<<<<<<<<
 *         return self._func
 *     @func.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2537, 0, __PYX_ERR(0, 2537, __pyx_L1_error));

  /* "cuda/cuda.pyx":2538
 *     @property
 *     def func(self):
 *         return self._func             # <<<<<<<<<<<<<<
 *     @func.setter
 *     def func(self, func : CUfunction):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_func));
  __pyx_r = ((PyObject *)__pyx_v_self->_func);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2537
 * 
 *     @property
 *     def func(self):             # <<<<<<<<<<<<<<
 *         return self._func
 *     @func.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.func.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2540
 *         return self._func
 *     @func.setter
 *     def func(self, func : CUfunction):             # <<<<<<<<<<<<<<
 *         pass
 *         self._func._ptr[0] = <ccuda.CUfunction> NULL if func == None else (<CUfunction>func)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_func); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_func) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_func), __pyx_ptype_4cuda_4cuda_CUfunction, 1, "func", 0))) __PYX_ERR(0, 2540, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_func));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUfunction __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2540, 0, __PYX_ERR(0, 2540, __pyx_L1_error));

  /* "cuda/cuda.pyx":2542
 *     def func(self, func : CUfunction):
 *         pass
 *         self._func._ptr[0] = <ccuda.CUfunction> NULL if func == None else (<CUfunction>func)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def gridDimX(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_func), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2542, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2542, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUfunction)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_func->_ptr[0]);
  }
  (__pyx_v_self->_func->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2540
 *         return self._func
 *     @func.setter
 *     def func(self, func : CUfunction):             # <<<<<<<<<<<<<<
 *         pass
 *         self._func._ptr[0] = <ccuda.CUfunction> NULL if func == None else (<CUfunction>func)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.func.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2544
 *         self._func._ptr[0] = <ccuda.CUfunction> NULL if func == None else (<CUfunction>func)._ptr[0]
 *     @property
 *     def gridDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2544, 0, __PYX_ERR(0, 2544, __pyx_L1_error));

  /* "cuda/cuda.pyx":2545
 *     @property
 *     def gridDimX(self):
 *         return self._ptr[0].gridDimX             # <<<<<<<<<<<<<<
 *     @gridDimX.setter
 *     def gridDimX(self, unsigned int gridDimX):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).gridDimX); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2544
 *         self._func._ptr[0] = <ccuda.CUfunction> NULL if func == None else (<CUfunction>func)._ptr[0]
 *     @property
 *     def gridDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimX.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2547
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 *     def gridDimX(self, unsigned int gridDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimX = gridDimX
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimX); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimX) {
  unsigned int __pyx_v_gridDimX;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gridDimX); {
    __pyx_v_gridDimX = __Pyx_PyInt_As_unsigned_int(__pyx_arg_gridDimX); if (unlikely((__pyx_v_gridDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2547, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_gridDimX));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimX) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2547, 0, __PYX_ERR(0, 2547, __pyx_L1_error));

  /* "cuda/cuda.pyx":2549
 *     def gridDimX(self, unsigned int gridDimX):
 *         pass
 *         self._ptr[0].gridDimX = gridDimX             # <<<<<<<<<<<<<<
 *     @property
 *     def gridDimY(self):
 */
  (__pyx_v_self->_ptr[0]).gridDimX = __pyx_v_gridDimX;

  /* "cuda/cuda.pyx":2547
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 *     def gridDimX(self, unsigned int gridDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimX = gridDimX
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2551
 *         self._ptr[0].gridDimX = gridDimX
 *     @property
 *     def gridDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2551, 0, __PYX_ERR(0, 2551, __pyx_L1_error));

  /* "cuda/cuda.pyx":2552
 *     @property
 *     def gridDimY(self):
 *         return self._ptr[0].gridDimY             # <<<<<<<<<<<<<<
 *     @gridDimY.setter
 *     def gridDimY(self, unsigned int gridDimY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).gridDimY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2551
 *         self._ptr[0].gridDimX = gridDimX
 *     @property
 *     def gridDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2554
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 *     def gridDimY(self, unsigned int gridDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimY = gridDimY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimY); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimY) {
  unsigned int __pyx_v_gridDimY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gridDimY); {
    __pyx_v_gridDimY = __Pyx_PyInt_As_unsigned_int(__pyx_arg_gridDimY); if (unlikely((__pyx_v_gridDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2554, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_gridDimY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2554, 0, __PYX_ERR(0, 2554, __pyx_L1_error));

  /* "cuda/cuda.pyx":2556
 *     def gridDimY(self, unsigned int gridDimY):
 *         pass
 *         self._ptr[0].gridDimY = gridDimY             # <<<<<<<<<<<<<<
 *     @property
 *     def gridDimZ(self):
 */
  (__pyx_v_self->_ptr[0]).gridDimY = __pyx_v_gridDimY;

  /* "cuda/cuda.pyx":2554
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 *     def gridDimY(self, unsigned int gridDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimY = gridDimY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2558
 *         self._ptr[0].gridDimY = gridDimY
 *     @property
 *     def gridDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2558, 0, __PYX_ERR(0, 2558, __pyx_L1_error));

  /* "cuda/cuda.pyx":2559
 *     @property
 *     def gridDimZ(self):
 *         return self._ptr[0].gridDimZ             # <<<<<<<<<<<<<<
 *     @gridDimZ.setter
 *     def gridDimZ(self, unsigned int gridDimZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).gridDimZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2558
 *         self._ptr[0].gridDimY = gridDimY
 *     @property
 *     def gridDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2561
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 *     def gridDimZ(self, unsigned int gridDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimZ = gridDimZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimZ) {
  unsigned int __pyx_v_gridDimZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gridDimZ); {
    __pyx_v_gridDimZ = __Pyx_PyInt_As_unsigned_int(__pyx_arg_gridDimZ); if (unlikely((__pyx_v_gridDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2561, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_gridDimZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2561, 0, __PYX_ERR(0, 2561, __pyx_L1_error));

  /* "cuda/cuda.pyx":2563
 *     def gridDimZ(self, unsigned int gridDimZ):
 *         pass
 *         self._ptr[0].gridDimZ = gridDimZ             # <<<<<<<<<<<<<<
 *     @property
 *     def blockDimX(self):
 */
  (__pyx_v_self->_ptr[0]).gridDimZ = __pyx_v_gridDimZ;

  /* "cuda/cuda.pyx":2561
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 *     def gridDimZ(self, unsigned int gridDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimZ = gridDimZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.gridDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2565
 *         self._ptr[0].gridDimZ = gridDimZ
 *     @property
 *     def blockDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2565, 0, __PYX_ERR(0, 2565, __pyx_L1_error));

  /* "cuda/cuda.pyx":2566
 *     @property
 *     def blockDimX(self):
 *         return self._ptr[0].blockDimX             # <<<<<<<<<<<<<<
 *     @blockDimX.setter
 *     def blockDimX(self, unsigned int blockDimX):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).blockDimX); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2565
 *         self._ptr[0].gridDimZ = gridDimZ
 *     @property
 *     def blockDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimX.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2568
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 *     def blockDimX(self, unsigned int blockDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimX = blockDimX
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimX); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimX) {
  unsigned int __pyx_v_blockDimX;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_blockDimX); {
    __pyx_v_blockDimX = __Pyx_PyInt_As_unsigned_int(__pyx_arg_blockDimX); if (unlikely((__pyx_v_blockDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2568, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_blockDimX));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimX) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2568, 0, __PYX_ERR(0, 2568, __pyx_L1_error));

  /* "cuda/cuda.pyx":2570
 *     def blockDimX(self, unsigned int blockDimX):
 *         pass
 *         self._ptr[0].blockDimX = blockDimX             # <<<<<<<<<<<<<<
 *     @property
 *     def blockDimY(self):
 */
  (__pyx_v_self->_ptr[0]).blockDimX = __pyx_v_blockDimX;

  /* "cuda/cuda.pyx":2568
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 *     def blockDimX(self, unsigned int blockDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimX = blockDimX
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2572
 *         self._ptr[0].blockDimX = blockDimX
 *     @property
 *     def blockDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2572, 0, __PYX_ERR(0, 2572, __pyx_L1_error));

  /* "cuda/cuda.pyx":2573
 *     @property
 *     def blockDimY(self):
 *         return self._ptr[0].blockDimY             # <<<<<<<<<<<<<<
 *     @blockDimY.setter
 *     def blockDimY(self, unsigned int blockDimY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).blockDimY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2572
 *         self._ptr[0].blockDimX = blockDimX
 *     @property
 *     def blockDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2575
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 *     def blockDimY(self, unsigned int blockDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimY = blockDimY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimY); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimY) {
  unsigned int __pyx_v_blockDimY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_blockDimY); {
    __pyx_v_blockDimY = __Pyx_PyInt_As_unsigned_int(__pyx_arg_blockDimY); if (unlikely((__pyx_v_blockDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2575, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_blockDimY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2575, 0, __PYX_ERR(0, 2575, __pyx_L1_error));

  /* "cuda/cuda.pyx":2577
 *     def blockDimY(self, unsigned int blockDimY):
 *         pass
 *         self._ptr[0].blockDimY = blockDimY             # <<<<<<<<<<<<<<
 *     @property
 *     def blockDimZ(self):
 */
  (__pyx_v_self->_ptr[0]).blockDimY = __pyx_v_blockDimY;

  /* "cuda/cuda.pyx":2575
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 *     def blockDimY(self, unsigned int blockDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimY = blockDimY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2579
 *         self._ptr[0].blockDimY = blockDimY
 *     @property
 *     def blockDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2579, 0, __PYX_ERR(0, 2579, __pyx_L1_error));

  /* "cuda/cuda.pyx":2580
 *     @property
 *     def blockDimZ(self):
 *         return self._ptr[0].blockDimZ             # <<<<<<<<<<<<<<
 *     @blockDimZ.setter
 *     def blockDimZ(self, unsigned int blockDimZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).blockDimZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2579
 *         self._ptr[0].blockDimY = blockDimY
 *     @property
 *     def blockDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2582
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 *     def blockDimZ(self, unsigned int blockDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimZ = blockDimZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimZ) {
  unsigned int __pyx_v_blockDimZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_blockDimZ); {
    __pyx_v_blockDimZ = __Pyx_PyInt_As_unsigned_int(__pyx_arg_blockDimZ); if (unlikely((__pyx_v_blockDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2582, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_blockDimZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2582, 0, __PYX_ERR(0, 2582, __pyx_L1_error));

  /* "cuda/cuda.pyx":2584
 *     def blockDimZ(self, unsigned int blockDimZ):
 *         pass
 *         self._ptr[0].blockDimZ = blockDimZ             # <<<<<<<<<<<<<<
 *     @property
 *     def sharedMemBytes(self):
 */
  (__pyx_v_self->_ptr[0]).blockDimZ = __pyx_v_blockDimZ;

  /* "cuda/cuda.pyx":2582
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 *     def blockDimZ(self, unsigned int blockDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimZ = blockDimZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.blockDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2586
 *         self._ptr[0].blockDimZ = blockDimZ
 *     @property
 *     def sharedMemBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2586, 0, __PYX_ERR(0, 2586, __pyx_L1_error));

  /* "cuda/cuda.pyx":2587
 *     @property
 *     def sharedMemBytes(self):
 *         return self._ptr[0].sharedMemBytes             # <<<<<<<<<<<<<<
 *     @sharedMemBytes.setter
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).sharedMemBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2586
 *         self._ptr[0].blockDimZ = blockDimZ
 *     @property
 *     def sharedMemBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.sharedMemBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2589
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sharedMemBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sharedMemBytes) {
  unsigned int __pyx_v_sharedMemBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_sharedMemBytes); {
    __pyx_v_sharedMemBytes = __Pyx_PyInt_As_unsigned_int(__pyx_arg_sharedMemBytes); if (unlikely((__pyx_v_sharedMemBytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2589, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.sharedMemBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_sharedMemBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_sharedMemBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2589, 0, __PYX_ERR(0, 2589, __pyx_L1_error));

  /* "cuda/cuda.pyx":2591
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):
 *         pass
 *         self._ptr[0].sharedMemBytes = sharedMemBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def kernelParams(self):
 */
  (__pyx_v_self->_ptr[0]).sharedMemBytes = __pyx_v_sharedMemBytes;

  /* "cuda/cuda.pyx":2589
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.sharedMemBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2593
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 *     @property
 *     def kernelParams(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2593, 0, __PYX_ERR(0, 2593, __pyx_L1_error));

  /* "cuda/cuda.pyx":2594
 *     @property
 *     def kernelParams(self):
 *         return <void_ptr>self._ptr[0].kernelParams             # <<<<<<<<<<<<<<
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).kernelParams)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2593
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 *     @property
 *     def kernelParams(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.kernelParams.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2596
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):             # <<<<<<<<<<<<<<
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_kernelParams); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_kernelParams) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_kernelParams));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_kernelParams) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2596, 0, __PYX_ERR(0, 2596, __pyx_L1_error));

  /* "cuda/cuda.pyx":2597
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)             # <<<<<<<<<<<<<<
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams), __pyx_v_kernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_ckernelParams);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_ckernelParams));
  __pyx_v_self->_ckernelParams = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2598
 *     def kernelParams(self, kernelParams):
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams             # <<<<<<<<<<<<<<
 *     @property
 *     def extra(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_ckernelParams), __pyx_n_s_ckernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2598, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).kernelParams = ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":2596
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):             # <<<<<<<<<<<<<<
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.kernelParams.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2600
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 *     @property
 *     def extra(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].extra
 *     @extra.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra___get__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2600, 0, __PYX_ERR(0, 2600, __pyx_L1_error));

  /* "cuda/cuda.pyx":2601
 *     @property
 *     def extra(self):
 *         return <void_ptr>self._ptr[0].extra             # <<<<<<<<<<<<<<
 *     @extra.setter
 *     def extra(self, void_ptr extra):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).extra)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2600
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 *     @property
 *     def extra(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].extra
 *     @extra.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.extra.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2603
 *         return <void_ptr>self._ptr[0].extra
 *     @extra.setter
 *     def extra(self, void_ptr extra):             # <<<<<<<<<<<<<<
 *         self._ptr[0].extra = <void**>extra
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extra); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extra) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_extra;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_extra); {
    __pyx_v_extra = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_extra); if (unlikely((__pyx_v_extra == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2603, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.extra.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_extra));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_extra) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2603, 0, __PYX_ERR(0, 2603, __pyx_L1_error));

  /* "cuda/cuda.pyx":2604
 *     @extra.setter
 *     def extra(self, void_ptr extra):
 *         self._ptr[0].extra = <void**>extra             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_MEMSET_NODE_PARAMS_st:
 */
  (__pyx_v_self->_ptr[0]).extra = ((void **)__pyx_v_extra);

  /* "cuda/cuda.pyx":2603
 *         return <void_ptr>self._ptr[0].extra
 *     @extra.setter
 *     def extra(self, void_ptr extra):             # <<<<<<<<<<<<<<
 *         self._ptr[0].extra = <void**>extra
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.extra.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_10__reduce_cython__[] = "CUDA_KERNEL_NODE_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__157)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__158, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12__setstate_cython__[] = "CUDA_KERNEL_NODE_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__159)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__160, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2631
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2631, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2631, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2631, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2631, 0, __PYX_ERR(0, 2631, __pyx_L1_error));

  /* "cuda/cuda.pyx":2632
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2633
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2634
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st))));

    /* "cuda/cuda.pyx":2635
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2636
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2636, __pyx_L1_error)

      /* "cuda/cuda.pyx":2635
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2632
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2638
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2639
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2631
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2640
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2640, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2640, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2640, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2640, 0, __PYX_ERR(0, 2640, __pyx_L1_error));

  /* "cuda/cuda.pyx":2641
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dst))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2641, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_dst);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dst));
  __pyx_v_self->_dst = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2640
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMSET_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2642
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2642, 0, __PYX_ERR(0, 2642, __pyx_L1_error));

  /* "cuda/cuda.pyx":2643
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2644
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2643
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2642
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._dst = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dst)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2646
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6getPtr[] = "CUDA_MEMSET_NODE_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__161)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2646, 0, __PYX_ERR(0, 2646, __pyx_L1_error));

  /* "cuda/cuda.pyx":2647
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2646
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2648
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2648, 0, __PYX_ERR(0, 2648, __pyx_L1_error));

  /* "cuda/cuda.pyx":2649
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['dst : ' + str(self.dst)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2650
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['dst : ' + str(self.dst)]
 *             str_list += ['pitch : ' + str(self.pitch)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2651
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['dst : ' + str(self.dst)]             # <<<<<<<<<<<<<<
 *             str_list += ['pitch : ' + str(self.pitch)]
 *             str_list += ['value : ' + str(self.value)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dst_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dst, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2652
 *             str_list = []
 *             str_list += ['dst : ' + str(self.dst)]
 *             str_list += ['pitch : ' + str(self.pitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['value : ' + str(self.value)]
 *             str_list += ['elementSize : ' + str(self.elementSize)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_pitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2653
 *             str_list += ['dst : ' + str(self.dst)]
 *             str_list += ['pitch : ' + str(self.pitch)]
 *             str_list += ['value : ' + str(self.value)]             # <<<<<<<<<<<<<<
 *             str_list += ['elementSize : ' + str(self.elementSize)]
 *             str_list += ['width : ' + str(self.width)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_value_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2654
 *             str_list += ['pitch : ' + str(self.pitch)]
 *             str_list += ['value : ' + str(self.value)]
 *             str_list += ['elementSize : ' + str(self.elementSize)]             # <<<<<<<<<<<<<<
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_elementSize_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_elementSize, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2655
 *             str_list += ['value : ' + str(self.value)]
 *             str_list += ['elementSize : ' + str(self.elementSize)]
 *             str_list += ['width : ' + str(self.width)]             # <<<<<<<<<<<<<<
 *             str_list += ['height : ' + str(self.height)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_width, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2656
 *             str_list += ['elementSize : ' + str(self.elementSize)]
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2657
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2649
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['dst : ' + str(self.dst)]
 */
  }

  /* "cuda/cuda.pyx":2659
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2648
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2662
 * 
 *     @property
 *     def dst(self):             # <<<<<<<<<<<<<<
 *         return self._dst
 *     @dst.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2662, 0, __PYX_ERR(0, 2662, __pyx_L1_error));

  /* "cuda/cuda.pyx":2663
 *     @property
 *     def dst(self):
 *         return self._dst             # <<<<<<<<<<<<<<
 *     @dst.setter
 *     def dst(self, dst : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dst));
  __pyx_r = ((PyObject *)__pyx_v_self->_dst);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2662
 * 
 *     @property
 *     def dst(self):             # <<<<<<<<<<<<<<
 *         return self._dst
 *     @dst.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.dst.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2665
 *         return self._dst
 *     @dst.setter
 *     def dst(self, dst : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dst._ptr[0] = <ccuda.CUdeviceptr> NULL if dst == None else (<CUdeviceptr>dst)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dst); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dst) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "dst", 0))) __PYX_ERR(0, 2665, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dst));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2665, 0, __PYX_ERR(0, 2665, __pyx_L1_error));

  /* "cuda/cuda.pyx":2667
 *     def dst(self, dst : CUdeviceptr):
 *         pass
 *         self._dst._ptr[0] = <ccuda.CUdeviceptr> NULL if dst == None else (<CUdeviceptr>dst)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def pitch(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dst), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2667, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2667, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dst->_ptr[0]);
  }
  (__pyx_v_self->_dst->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2665
 *         return self._dst
 *     @dst.setter
 *     def dst(self, dst : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dst._ptr[0] = <ccuda.CUdeviceptr> NULL if dst == None else (<CUdeviceptr>dst)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.dst.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2669
 *         self._dst._ptr[0] = <ccuda.CUdeviceptr> NULL if dst == None else (<CUdeviceptr>dst)._ptr[0]
 *     @property
 *     def pitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].pitch
 *     @pitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2669, 0, __PYX_ERR(0, 2669, __pyx_L1_error));

  /* "cuda/cuda.pyx":2670
 *     @property
 *     def pitch(self):
 *         return self._ptr[0].pitch             # <<<<<<<<<<<<<<
 *     @pitch.setter
 *     def pitch(self, size_t pitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).pitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2669
 *         self._dst._ptr[0] = <ccuda.CUdeviceptr> NULL if dst == None else (<CUdeviceptr>dst)._ptr[0]
 *     @property
 *     def pitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].pitch
 *     @pitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.pitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2672
 *         return self._ptr[0].pitch
 *     @pitch.setter
 *     def pitch(self, size_t pitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].pitch = pitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_pitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_pitch) {
  size_t __pyx_v_pitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_pitch); {
    __pyx_v_pitch = __Pyx_PyInt_As_size_t(__pyx_arg_pitch); if (unlikely((__pyx_v_pitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2672, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.pitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((size_t)__pyx_v_pitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_pitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2672, 0, __PYX_ERR(0, 2672, __pyx_L1_error));

  /* "cuda/cuda.pyx":2674
 *     def pitch(self, size_t pitch):
 *         pass
 *         self._ptr[0].pitch = pitch             # <<<<<<<<<<<<<<
 *     @property
 *     def value(self):
 */
  (__pyx_v_self->_ptr[0]).pitch = __pyx_v_pitch;

  /* "cuda/cuda.pyx":2672
 *         return self._ptr[0].pitch
 *     @pitch.setter
 *     def pitch(self, size_t pitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].pitch = pitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.pitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2676
 *         self._ptr[0].pitch = pitch
 *     @property
 *     def value(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].value
 *     @value.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2676, 0, __PYX_ERR(0, 2676, __pyx_L1_error));

  /* "cuda/cuda.pyx":2677
 *     @property
 *     def value(self):
 *         return self._ptr[0].value             # <<<<<<<<<<<<<<
 *     @value.setter
 *     def value(self, unsigned int value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2676
 *         self._ptr[0].pitch = pitch
 *     @property
 *     def value(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].value
 *     @value.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2679
 *         return self._ptr[0].value
 *     @value.setter
 *     def value(self, unsigned int value):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].value = value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) {
  unsigned int __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_value); {
    __pyx_v_value = __Pyx_PyInt_As_unsigned_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2679, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_value) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2679, 0, __PYX_ERR(0, 2679, __pyx_L1_error));

  /* "cuda/cuda.pyx":2681
 *     def value(self, unsigned int value):
 *         pass
 *         self._ptr[0].value = value             # <<<<<<<<<<<<<<
 *     @property
 *     def elementSize(self):
 */
  (__pyx_v_self->_ptr[0]).value = __pyx_v_value;

  /* "cuda/cuda.pyx":2679
 *         return self._ptr[0].value
 *     @value.setter
 *     def value(self, unsigned int value):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].value = value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2683
 *         self._ptr[0].value = value
 *     @property
 *     def elementSize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].elementSize
 *     @elementSize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2683, 0, __PYX_ERR(0, 2683, __pyx_L1_error));

  /* "cuda/cuda.pyx":2684
 *     @property
 *     def elementSize(self):
 *         return self._ptr[0].elementSize             # <<<<<<<<<<<<<<
 *     @elementSize.setter
 *     def elementSize(self, unsigned int elementSize):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).elementSize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2683
 *         self._ptr[0].value = value
 *     @property
 *     def elementSize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].elementSize
 *     @elementSize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.elementSize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2686
 *         return self._ptr[0].elementSize
 *     @elementSize.setter
 *     def elementSize(self, unsigned int elementSize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].elementSize = elementSize
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_elementSize); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_elementSize) {
  unsigned int __pyx_v_elementSize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_elementSize); {
    __pyx_v_elementSize = __Pyx_PyInt_As_unsigned_int(__pyx_arg_elementSize); if (unlikely((__pyx_v_elementSize == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2686, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.elementSize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_elementSize));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_elementSize) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2686, 0, __PYX_ERR(0, 2686, __pyx_L1_error));

  /* "cuda/cuda.pyx":2688
 *     def elementSize(self, unsigned int elementSize):
 *         pass
 *         self._ptr[0].elementSize = elementSize             # <<<<<<<<<<<<<<
 *     @property
 *     def width(self):
 */
  (__pyx_v_self->_ptr[0]).elementSize = __pyx_v_elementSize;

  /* "cuda/cuda.pyx":2686
 *         return self._ptr[0].elementSize
 *     @elementSize.setter
 *     def elementSize(self, unsigned int elementSize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].elementSize = elementSize
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.elementSize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2690
 *         self._ptr[0].elementSize = elementSize
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].width
 *     @width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2690, 0, __PYX_ERR(0, 2690, __pyx_L1_error));

  /* "cuda/cuda.pyx":2691
 *     @property
 *     def width(self):
 *         return self._ptr[0].width             # <<<<<<<<<<<<<<
 *     @width.setter
 *     def width(self, size_t width):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).width); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2690
 *         self._ptr[0].elementSize = elementSize
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].width
 *     @width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2693
 *         return self._ptr[0].width
 *     @width.setter
 *     def width(self, size_t width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].width = width
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width) {
  size_t __pyx_v_width;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_width); {
    __pyx_v_width = __Pyx_PyInt_As_size_t(__pyx_arg_width); if (unlikely((__pyx_v_width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2693, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((size_t)__pyx_v_width));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_width) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2693, 0, __PYX_ERR(0, 2693, __pyx_L1_error));

  /* "cuda/cuda.pyx":2695
 *     def width(self, size_t width):
 *         pass
 *         self._ptr[0].width = width             # <<<<<<<<<<<<<<
 *     @property
 *     def height(self):
 */
  (__pyx_v_self->_ptr[0]).width = __pyx_v_width;

  /* "cuda/cuda.pyx":2693
 *         return self._ptr[0].width
 *     @width.setter
 *     def width(self, size_t width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].width = width
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2697
 *         self._ptr[0].width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].height
 *     @height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2697, 0, __PYX_ERR(0, 2697, __pyx_L1_error));

  /* "cuda/cuda.pyx":2698
 *     @property
 *     def height(self):
 *         return self._ptr[0].height             # <<<<<<<<<<<<<<
 *     @height.setter
 *     def height(self, size_t height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2697
 *         self._ptr[0].width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].height
 *     @height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2700
 *         return self._ptr[0].height
 *     @height.setter
 *     def height(self, size_t height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].height = height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height) {
  size_t __pyx_v_height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_height); {
    __pyx_v_height = __Pyx_PyInt_As_size_t(__pyx_arg_height); if (unlikely((__pyx_v_height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2700, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((size_t)__pyx_v_height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2700, 0, __PYX_ERR(0, 2700, __pyx_L1_error));

  /* "cuda/cuda.pyx":2702
 *     def height(self, size_t height):
 *         pass
 *         self._ptr[0].height = height             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_HOST_NODE_PARAMS_st:
 */
  (__pyx_v_self->_ptr[0]).height = __pyx_v_height;

  /* "cuda/cuda.pyx":2700
 *         return self._ptr[0].height
 *     @height.setter
 *     def height(self, size_t height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].height = height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_10__reduce_cython__[] = "CUDA_MEMSET_NODE_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__162)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__163, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_12__setstate_cython__[] = "CUDA_MEMSET_NODE_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__164)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__165, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2721
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2721, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2721, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2721, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2721, 0, __PYX_ERR(0, 2721, __pyx_L1_error));

  /* "cuda/cuda.pyx":2722
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2723
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2724
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st))));

    /* "cuda/cuda.pyx":2725
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2726
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2726, __pyx_L1_error)

      /* "cuda/cuda.pyx":2725
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2722
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2728
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2729
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2721
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2730
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2730, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2730, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2730, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2730, 0, __PYX_ERR(0, 2730, __pyx_L1_error));

  /* "cuda/cuda.pyx":2731
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).fn))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2731, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUhostFn), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_fn);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_fn));
  __pyx_v_self->_fn = ((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2730
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_HOST_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2732
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2732, 0, __PYX_ERR(0, 2732, __pyx_L1_error));

  /* "cuda/cuda.pyx":2733
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2734
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2733
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2732
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._fn = CUhostFn(_ptr=<void_ptr>&self._ptr[0].fn)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2736
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_6getPtr[] = "CUDA_HOST_NODE_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__166)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2736, 0, __PYX_ERR(0, 2736, __pyx_L1_error));

  /* "cuda/cuda.pyx":2737
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2736
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2738
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2738, 0, __PYX_ERR(0, 2738, __pyx_L1_error));

  /* "cuda/cuda.pyx":2739
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fn : ' + str(self.fn)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2740
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fn : ' + str(self.fn)]
 *             str_list += ['userData : ' + hex(self.userData)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2741
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fn : ' + str(self.fn)]             # <<<<<<<<<<<<<<
 *             str_list += ['userData : ' + hex(self.userData)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fn_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_fn, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2742
 *             str_list = []
 *             str_list += ['fn : ' + str(self.fn)]
 *             str_list += ['userData : ' + hex(self.userData)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_userData_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_userData, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2743
 *             str_list += ['fn : ' + str(self.fn)]
 *             str_list += ['userData : ' + hex(self.userData)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2739
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fn : ' + str(self.fn)]
 */
  }

  /* "cuda/cuda.pyx":2745
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2738
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2748
 * 
 *     @property
 *     def fn(self):             # <<<<<<<<<<<<<<
 *         return self._fn
 *     @fn.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn___get__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2748, 0, __PYX_ERR(0, 2748, __pyx_L1_error));

  /* "cuda/cuda.pyx":2749
 *     @property
 *     def fn(self):
 *         return self._fn             # <<<<<<<<<<<<<<
 *     @fn.setter
 *     def fn(self, fn : CUhostFn):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_fn));
  __pyx_r = ((PyObject *)__pyx_v_self->_fn);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2748
 * 
 *     @property
 *     def fn(self):             # <<<<<<<<<<<<<<
 *         return self._fn
 *     @fn.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.fn.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2751
 *         return self._fn
 *     @fn.setter
 *     def fn(self, fn : CUhostFn):             # <<<<<<<<<<<<<<
 *         pass
 *         self._fn._ptr[0] = <ccuda.CUhostFn> NULL if fn == None else (<CUhostFn>fn)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fn); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fn) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fn), __pyx_ptype_4cuda_4cuda_CUhostFn, 1, "fn", 0))) __PYX_ERR(0, 2751, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUhostFn *)__pyx_v_fn));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_fn) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUhostFn __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2751, 0, __PYX_ERR(0, 2751, __pyx_L1_error));

  /* "cuda/cuda.pyx":2753
 *     def fn(self, fn : CUhostFn):
 *         pass
 *         self._fn._ptr[0] = <ccuda.CUhostFn> NULL if fn == None else (<CUhostFn>fn)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def userData(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_fn), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2753, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2753, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUhostFn)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_fn->_ptr[0]);
  }
  (__pyx_v_self->_fn->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":2751
 *         return self._fn
 *     @fn.setter
 *     def fn(self, fn : CUhostFn):             # <<<<<<<<<<<<<<
 *         pass
 *         self._fn._ptr[0] = <ccuda.CUhostFn> NULL if fn == None else (<CUhostFn>fn)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.fn.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2755
 *         self._fn._ptr[0] = <ccuda.CUhostFn> NULL if fn == None else (<CUhostFn>fn)._ptr[0]
 *     @property
 *     def userData(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].userData
 *     @userData.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData___get__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2755, 0, __PYX_ERR(0, 2755, __pyx_L1_error));

  /* "cuda/cuda.pyx":2756
 *     @property
 *     def userData(self):
 *         return <void_ptr>self._ptr[0].userData             # <<<<<<<<<<<<<<
 *     @userData.setter
 *     def userData(self, userData):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).userData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2755
 *         self._fn._ptr[0] = <ccuda.CUhostFn> NULL if fn == None else (<CUhostFn>fn)._ptr[0]
 *     @property
 *     def userData(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].userData
 *     @userData.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.userData.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2758
 *         return <void_ptr>self._ptr[0].userData
 *     @userData.setter
 *     def userData(self, userData):             # <<<<<<<<<<<<<<
 *         _cuserData = utils.HelperInputVoidPtr(userData)
 *         self._ptr[0].userData = <void*><void_ptr>_cuserData.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_userData); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_userData) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_userData));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_userData) {
  PyObject *__pyx_v__cuserData = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2758, 0, __PYX_ERR(0, 2758, __pyx_L1_error));

  /* "cuda/cuda.pyx":2759
 *     @userData.setter
 *     def userData(self, userData):
 *         _cuserData = utils.HelperInputVoidPtr(userData)             # <<<<<<<<<<<<<<
 *         self._ptr[0].userData = <void*><void_ptr>_cuserData.cptr
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_userData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cuserData = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2760
 *     def userData(self, userData):
 *         _cuserData = utils.HelperInputVoidPtr(userData)
 *         self._ptr[0].userData = <void*><void_ptr>_cuserData.cptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUkernelNodeAttrValue_union:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cuserData, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2760, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).userData = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":2758
 *         return <void_ptr>self._ptr[0].userData
 *     @userData.setter
 *     def userData(self, userData):             # <<<<<<<<<<<<<<
 *         _cuserData = utils.HelperInputVoidPtr(userData)
 *         self._ptr[0].userData = <void*><void_ptr>_cuserData.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.userData.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cuserData);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_10__reduce_cython__[] = "CUDA_HOST_NODE_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__167)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__168, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_12__setstate_cython__[] = "CUDA_HOST_NODE_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__169)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__170, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_HOST_NODE_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2778
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2778, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2778, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2778, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union___cinit__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union___cinit__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2778, 0, __PYX_ERR(0, 2778, __pyx_L1_error));

  /* "cuda/cuda.pyx":2779
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2780
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2781
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUkernelNodeAttrValue_union)))
 */
    __pyx_v_self->_ptr = ((union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union *)calloc(1, (sizeof(union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union))));

    /* "cuda/cuda.pyx":2782
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUkernelNodeAttrValue_union)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2783
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUkernelNodeAttrValue_union)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2783, __pyx_L1_error)

      /* "cuda/cuda.pyx":2782
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUkernelNodeAttrValue_union)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2779
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>calloc(1, sizeof(ccuda.CUkernelNodeAttrValue_union))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2785
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUkernelNodeAttrValue_union)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2786
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 */
    __pyx_v_self->_ptr = ((union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2778
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2787
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2787, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2787, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2787, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_2__init__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_2__init__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2787, 0, __PYX_ERR(0, 2787, __pyx_L1_error));

  /* "cuda/cuda.pyx":2788
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).accessPolicyWindow))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2788, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_accessPolicyWindow);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_accessPolicyWindow));
  __pyx_v_self->_accessPolicyWindow = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2787
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUkernelNodeAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2789
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2789, 0, __PYX_ERR(0, 2789, __pyx_L1_error));

  /* "cuda/cuda.pyx":2790
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2791
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2790
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2789
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUkernelNodeAttrValue_union.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2793
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_6getPtr[] = "CUkernelNodeAttrValue_union.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_27CUkernelNodeAttrValue_union_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_6getPtr(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__171)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2793, 0, __PYX_ERR(0, 2793, __pyx_L1_error));

  /* "cuda/cuda.pyx":2794
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2793
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2795
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_8__repr__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_8genexpr3__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2795, 0, __PYX_ERR(0, 2795, __pyx_L1_error));

  /* "cuda/cuda.pyx":2796
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2797
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 *             str_list += ['cooperative : ' + str(self.cooperative)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2798
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['cooperative : ' + str(self.cooperative)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2798, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accessPolicyWindow_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2798, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2798, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2798, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2798, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2798, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr3__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2798, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 2798, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_line); __pyx_8genexpr3__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_line); __pyx_8genexpr3__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_accessPolicyWindow, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2799
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 *             str_list += ['cooperative : ' + str(self.cooperative)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cooperative_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_cooperative, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2800
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 *             str_list += ['cooperative : ' + str(self.cooperative)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2800, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2796
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":2802
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2795
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2805
 * 
 *     @property
 *     def accessPolicyWindow(self):             # <<<<<<<<<<<<<<
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow___get__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow___get__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2805, 0, __PYX_ERR(0, 2805, __pyx_L1_error));

  /* "cuda/cuda.pyx":2806
 *     @property
 *     def accessPolicyWindow(self):
 *         return self._accessPolicyWindow             # <<<<<<<<<<<<<<
 *     @accessPolicyWindow.setter
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_accessPolicyWindow));
  __pyx_r = ((PyObject *)__pyx_v_self->_accessPolicyWindow);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2805
 * 
 *     @property
 *     def accessPolicyWindow(self):             # <<<<<<<<<<<<<<
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.accessPolicyWindow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2808
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_accessPolicyWindow); /*proto*/
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_accessPolicyWindow) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_accessPolicyWindow), __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow, 0, "accessPolicyWindow", 0))) __PYX_ERR(0, 2808, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_2__set__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)__pyx_v_accessPolicyWindow));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_2__set__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *__pyx_v_accessPolicyWindow) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2808, 0, __PYX_ERR(0, 2808, __pyx_L1_error));

  /* "cuda/cuda.pyx":2810
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):
 *         pass
 *         for _attr in dir(accessPolicyWindow):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_accessPolicyWindow)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2810, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2810, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2810, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2810, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2810, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2810, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2810, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":2811
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2811, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":2812
 *         for _attr in dir(accessPolicyWindow):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":2811
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":2813
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":2814
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def cooperative(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_accessPolicyWindow);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_accessPolicyWindow), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2814, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 2814, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":2813
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":2810
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):
 *         pass
 *         for _attr in dir(accessPolicyWindow):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2808
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.accessPolicyWindow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2816
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 *     def cooperative(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].cooperative
 *     @cooperative.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative___get__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative___get__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2816, 0, __PYX_ERR(0, 2816, __pyx_L1_error));

  /* "cuda/cuda.pyx":2817
 *     @property
 *     def cooperative(self):
 *         return self._ptr[0].cooperative             # <<<<<<<<<<<<<<
 *     @cooperative.setter
 *     def cooperative(self, int cooperative):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).cooperative); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2816
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 *     def cooperative(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].cooperative
 *     @cooperative.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.cooperative.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2819
 *         return self._ptr[0].cooperative
 *     @cooperative.setter
 *     def cooperative(self, int cooperative):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].cooperative = cooperative
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_cooperative); /*proto*/
static int __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_cooperative) {
  int __pyx_v_cooperative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_cooperative); {
    __pyx_v_cooperative = __Pyx_PyInt_As_int(__pyx_arg_cooperative); if (unlikely((__pyx_v_cooperative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2819, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.cooperative.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_2__set__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self), ((int)__pyx_v_cooperative));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_2__set__(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, int __pyx_v_cooperative) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2819, 0, __PYX_ERR(0, 2819, __pyx_L1_error));

  /* "cuda/cuda.pyx":2821
 *     def cooperative(self, int cooperative):
 *         pass
 *         self._ptr[0].cooperative = cooperative             # <<<<<<<<<<<<<<
 * 
 * cdef class CUstreamAttrValue_union:
 */
  (__pyx_v_self->_ptr[0]).cooperative = __pyx_v_cooperative;

  /* "cuda/cuda.pyx":2819
 *         return self._ptr[0].cooperative
 *     @cooperative.setter
 *     def cooperative(self, int cooperative):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].cooperative = cooperative
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.cooperative.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_10__reduce_cython__[] = "CUkernelNodeAttrValue_union.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_27CUkernelNodeAttrValue_union_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__172)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__173, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_12__setstate_cython__[] = "CUkernelNodeAttrValue_union.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_27CUkernelNodeAttrValue_union_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_27CUkernelNodeAttrValue_union_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__174)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__175, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUkernelNodeAttrValue_union.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2839
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2839, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2839, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2839, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union___cinit__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union___cinit__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2839, 0, __PYX_ERR(0, 2839, __pyx_L1_error));

  /* "cuda/cuda.pyx":2840
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2841
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2842
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamAttrValue_union)))
 */
    __pyx_v_self->_ptr = ((union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union *)calloc(1, (sizeof(union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union))));

    /* "cuda/cuda.pyx":2843
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamAttrValue_union)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2844
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamAttrValue_union)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2844, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2844, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2844, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2844, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2844, __pyx_L1_error)

      /* "cuda/cuda.pyx":2843
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamAttrValue_union)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2840
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>calloc(1, sizeof(ccuda.CUstreamAttrValue_union))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2846
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUstreamAttrValue_union)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2847
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 */
    __pyx_v_self->_ptr = ((union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2839
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2848
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2848, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2848, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2848, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_2__init__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_2__init__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2848, 0, __PYX_ERR(0, 2848, __pyx_L1_error));

  /* "cuda/cuda.pyx":2849
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).accessPolicyWindow))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_accessPolicyWindow);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_accessPolicyWindow));
  __pyx_v_self->_accessPolicyWindow = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2848
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUstreamAttrValue_union *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2850
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2850, 0, __PYX_ERR(0, 2850, __pyx_L1_error));

  /* "cuda/cuda.pyx":2851
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2852
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2851
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2850
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._accessPolicyWindow = CUaccessPolicyWindow(_ptr=<void_ptr>&self._ptr[0].accessPolicyWindow)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUstreamAttrValue_union.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2854
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_6getPtr[] = "CUstreamAttrValue_union.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23CUstreamAttrValue_union_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_6getPtr(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__176)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2854, 0, __PYX_ERR(0, 2854, __pyx_L1_error));

  /* "cuda/cuda.pyx":2855
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2854
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2856
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_8__repr__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_8genexpr4__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2856, 0, __PYX_ERR(0, 2856, __pyx_L1_error));

  /* "cuda/cuda.pyx":2857
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2858
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 *             str_list += ['syncPolicy : ' + str(self.syncPolicy)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2859
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['syncPolicy : ' + str(self.syncPolicy)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2859, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accessPolicyWindow_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2859, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2859, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2859, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2859, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2859, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr4__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2859, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 2859, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_line); __pyx_8genexpr4__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_line); __pyx_8genexpr4__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_accessPolicyWindow, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2860
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 *             str_list += ['syncPolicy : ' + str(self.syncPolicy)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_syncPolicy_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_syncPolicy, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2861
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 *             str_list += ['syncPolicy : ' + str(self.syncPolicy)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2857
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['accessPolicyWindow :\n' + '\n'.join(['    ' + line for line in str(self.accessPolicyWindow).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":2863
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2856
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2866
 * 
 *     @property
 *     def accessPolicyWindow(self):             # <<<<<<<<<<<<<<
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow___get__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2866, 0, __PYX_ERR(0, 2866, __pyx_L1_error));

  /* "cuda/cuda.pyx":2867
 *     @property
 *     def accessPolicyWindow(self):
 *         return self._accessPolicyWindow             # <<<<<<<<<<<<<<
 *     @accessPolicyWindow.setter
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_accessPolicyWindow));
  __pyx_r = ((PyObject *)__pyx_v_self->_accessPolicyWindow);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2866
 * 
 *     @property
 *     def accessPolicyWindow(self):             # <<<<<<<<<<<<<<
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.accessPolicyWindow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2869
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_accessPolicyWindow); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_accessPolicyWindow) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_accessPolicyWindow), __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow, 0, "accessPolicyWindow", 0))) __PYX_ERR(0, 2869, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)__pyx_v_accessPolicyWindow));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *__pyx_v_accessPolicyWindow) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2869, 0, __PYX_ERR(0, 2869, __pyx_L1_error));

  /* "cuda/cuda.pyx":2871
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):
 *         pass
 *         for _attr in dir(accessPolicyWindow):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_accessPolicyWindow)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2871, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2871, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2871, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2871, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2871, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2871, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":2872
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2872, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":2873
 *         for _attr in dir(accessPolicyWindow):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":2872
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":2874
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2874, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2874, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2874, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":2875
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def syncPolicy(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_accessPolicyWindow);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_accessPolicyWindow), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2875, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 2875, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":2874
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":2871
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):
 *         pass
 *         for _attr in dir(accessPolicyWindow):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2869
 *         return self._accessPolicyWindow
 *     @accessPolicyWindow.setter
 *     def accessPolicyWindow(self, accessPolicyWindow not None : CUaccessPolicyWindow):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(accessPolicyWindow):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.accessPolicyWindow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2877
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 *     def syncPolicy(self):             # <<<<<<<<<<<<<<
 *         return CUsynchronizationPolicy(self._ptr[0].syncPolicy)
 *     @syncPolicy.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy___get__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy___get__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2877, 0, __PYX_ERR(0, 2877, __pyx_L1_error));

  /* "cuda/cuda.pyx":2878
 *     @property
 *     def syncPolicy(self):
 *         return CUsynchronizationPolicy(self._ptr[0].syncPolicy)             # <<<<<<<<<<<<<<
 *     @syncPolicy.setter
 *     def syncPolicy(self, syncPolicy not None : CUsynchronizationPolicy):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUsynchronizationPolicy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum((__pyx_v_self->_ptr[0]).syncPolicy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2877
 *                 setattr(self._accessPolicyWindow, _attr, getattr(accessPolicyWindow, _attr))
 *     @property
 *     def syncPolicy(self):             # <<<<<<<<<<<<<<
 *         return CUsynchronizationPolicy(self._ptr[0].syncPolicy)
 *     @syncPolicy.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.syncPolicy.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2880
 *         return CUsynchronizationPolicy(self._ptr[0].syncPolicy)
 *     @syncPolicy.setter
 *     def syncPolicy(self, syncPolicy not None : CUsynchronizationPolicy):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].syncPolicy = syncPolicy.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_syncPolicy); /*proto*/
static int __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_syncPolicy) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_syncPolicy) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "syncPolicy"); __PYX_ERR(0, 2880, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_2__set__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self), ((PyObject *)__pyx_v_syncPolicy));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_2__set__(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, PyObject *__pyx_v_syncPolicy) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2880, 0, __PYX_ERR(0, 2880, __pyx_L1_error));

  /* "cuda/cuda.pyx":2882
 *     def syncPolicy(self, syncPolicy not None : CUsynchronizationPolicy):
 *         pass
 *         self._ptr[0].syncPolicy = syncPolicy.value             # <<<<<<<<<<<<<<
 * 
 * cdef class CUexecAffinitySmCount_st:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_syncPolicy, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2882, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).syncPolicy = __pyx_t_2;

  /* "cuda/cuda.pyx":2880
 *         return CUsynchronizationPolicy(self._ptr[0].syncPolicy)
 *     @syncPolicy.setter
 *     def syncPolicy(self, syncPolicy not None : CUsynchronizationPolicy):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].syncPolicy = syncPolicy.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.syncPolicy.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_10__reduce_cython__[] = "CUstreamAttrValue_union.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23CUstreamAttrValue_union_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__177)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__178, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_12__setstate_cython__[] = "CUstreamAttrValue_union.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23CUstreamAttrValue_union_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_23CUstreamAttrValue_union_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__179)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__180, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUstreamAttrValue_union.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2899
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2899, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2899, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2899, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2899, 0, __PYX_ERR(0, 2899, __pyx_L1_error));

  /* "cuda/cuda.pyx":2900
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2901
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2902
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinitySmCount_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st))));

    /* "cuda/cuda.pyx":2903
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinitySmCount_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2904
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinitySmCount_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2904, __pyx_L1_error)

      /* "cuda/cuda.pyx":2903
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinitySmCount_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2900
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>calloc(1, sizeof(ccuda.CUexecAffinitySmCount_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2906
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinitySmCount_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2907
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2899
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2908
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexecAffinitySmCount_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2908, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2908, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2908, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2908, 0, __PYX_ERR(0, 2908, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2910
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 2910, 0, __PYX_ERR(0, 2910, __pyx_L1_error));

  /* "cuda/cuda.pyx":2911
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2912
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":2911
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":2910
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUexecAffinitySmCount_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":2914
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_6getPtr[] = "CUexecAffinitySmCount_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUexecAffinitySmCount_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__181)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2914, 0, __PYX_ERR(0, 2914, __pyx_L1_error));

  /* "cuda/cuda.pyx":2915
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2914
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2916
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2916, 0, __PYX_ERR(0, 2916, __pyx_L1_error));

  /* "cuda/cuda.pyx":2917
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['val : ' + str(self.val)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2918
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['val : ' + str(self.val)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2918, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2919
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['val : ' + str(self.val)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_val_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2919, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2919, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_val, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2919, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2919, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2919, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2920
 *             str_list = []
 *             str_list += ['val : ' + str(self.val)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2920, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2917
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['val : ' + str(self.val)]
 */
  }

  /* "cuda/cuda.pyx":2922
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2916
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2925
 * 
 *     @property
 *     def val(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].val
 *     @val.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_3val___get__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_3val___get__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2925, 0, __PYX_ERR(0, 2925, __pyx_L1_error));

  /* "cuda/cuda.pyx":2926
 *     @property
 *     def val(self):
 *         return self._ptr[0].val             # <<<<<<<<<<<<<<
 *     @val.setter
 *     def val(self, unsigned int val):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2925
 * 
 *     @property
 *     def val(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].val
 *     @val.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.val.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2928
 *         return self._ptr[0].val
 *     @val.setter
 *     def val(self, unsigned int val):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].val = val
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  unsigned int __pyx_v_val;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_val); {
    __pyx_v_val = __Pyx_PyInt_As_unsigned_int(__pyx_arg_val); if (unlikely((__pyx_v_val == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2928, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.val.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_2__set__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self), ((unsigned int)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_2__set__(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, unsigned int __pyx_v_val) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2928, 0, __PYX_ERR(0, 2928, __pyx_L1_error));

  /* "cuda/cuda.pyx":2930
 *     def val(self, unsigned int val):
 *         pass
 *         self._ptr[0].val = val             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u:
 */
  (__pyx_v_self->_ptr[0]).val = __pyx_v_val;

  /* "cuda/cuda.pyx":2928
 *         return self._ptr[0].val
 *     @val.setter
 *     def val(self, unsigned int val):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].val = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.val.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_10__reduce_cython__[] = "CUexecAffinitySmCount_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUexecAffinitySmCount_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__182)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__183, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_12__setstate_cython__[] = "CUexecAffinitySmCount_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUexecAffinitySmCount_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUexecAffinitySmCount_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__184)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__185, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinitySmCount_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2946
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2946, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2946, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2946, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2946, 0, __PYX_ERR(0, 2946, __pyx_L1_error));

  /* "cuda/cuda.pyx":2947
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":2946
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2948
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2948, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2948, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2948, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2948, 0, __PYX_ERR(0, 2948, __pyx_L1_error));

  /* "cuda/cuda.pyx":2949
 *         self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).param.smCount))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2949, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_smCount);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_smCount));
  __pyx_v_self->_smCount = ((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2948
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2950
 *     def __init__(self, void_ptr _ptr):
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_4getPtr[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__186)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 2950, 0, __PYX_ERR(0, 2950, __pyx_L1_error));

  /* "cuda/cuda.pyx":2951
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2950
 *     def __init__(self, void_ptr _ptr):
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2952
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_8genexpr5__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 2952, 0, __PYX_ERR(0, 2952, __pyx_L1_error));

  /* "cuda/cuda.pyx":2953
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['smCount :\n' + '\n'.join(['    ' + line for line in str(self.smCount).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2954
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['smCount :\n' + '\n'.join(['    ' + line for line in str(self.smCount).splitlines()])]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2955
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['smCount :\n' + '\n'.join(['    ' + line for line in str(self.smCount).splitlines()])]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2955, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_smCount_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2955, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2955, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2955, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2955, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2955, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr5__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2955, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 2955, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_line); __pyx_8genexpr5__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_line); __pyx_8genexpr5__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_smCount, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":2956
 *             str_list = []
 *             str_list += ['smCount :\n' + '\n'.join(['    ' + line for line in str(self.smCount).splitlines()])]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":2953
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['smCount :\n' + '\n'.join(['    ' + line for line in str(self.smCount).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":2958
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":2952
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2961
 * 
 *     @property
 *     def smCount(self):             # <<<<<<<<<<<<<<
 *         return self._smCount
 *     @smCount.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount___get__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount___get__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 2961, 0, __PYX_ERR(0, 2961, __pyx_L1_error));

  /* "cuda/cuda.pyx":2962
 *     @property
 *     def smCount(self):
 *         return self._smCount             # <<<<<<<<<<<<<<
 *     @smCount.setter
 *     def smCount(self, smCount not None : CUexecAffinitySmCount):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_smCount));
  __pyx_r = ((PyObject *)__pyx_v_self->_smCount);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":2961
 * 
 *     @property
 *     def smCount(self):             # <<<<<<<<<<<<<<
 *         return self._smCount
 *     @smCount.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.smCount.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2964
 *         return self._smCount
 *     @smCount.setter
 *     def smCount(self, smCount not None : CUexecAffinitySmCount):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(smCount):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_smCount); /*proto*/
static int __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_smCount) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_smCount), __pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount, 0, "smCount", 0))) __PYX_ERR(0, 2964, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_2__set__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *)__pyx_v_smCount));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_2__set__(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *__pyx_v_smCount) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 2964, 0, __PYX_ERR(0, 2964, __pyx_L1_error));

  /* "cuda/cuda.pyx":2966
 *     def smCount(self, smCount not None : CUexecAffinitySmCount):
 *         pass
 *         for _attr in dir(smCount):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_smCount)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2966, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2966, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2966, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 2966, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2966, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2966, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":2967
 *         pass
 *         for _attr in dir(smCount):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2967, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":2968
 *         for _attr in dir(smCount):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._smCount, _attr, getattr(smCount, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":2967
 *         pass
 *         for _attr in dir(smCount):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":2969
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._smCount, _attr, getattr(smCount, _attr))
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2969, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":2970
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._smCount, _attr, getattr(smCount, _attr))             # <<<<<<<<<<<<<<
 * 
 * cdef class CUexecAffinityParam_st:
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_smCount);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_smCount), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":2969
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._smCount, _attr, getattr(smCount, _attr))
 * 
 */
    }

    /* "cuda/cuda.pyx":2966
 *     def smCount(self, smCount not None : CUexecAffinitySmCount):
 *         pass
 *         for _attr in dir(smCount):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2964
 *         return self._smCount
 *     @smCount.setter
 *     def smCount(self, smCount not None : CUexecAffinitySmCount):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(smCount):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.smCount.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_8__reduce_cython__[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__187)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__188, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_10__setstate_cython__[] = "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__189)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__190, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2989
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2989, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2989, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2989, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 2989, 0, __PYX_ERR(0, 2989, __pyx_L1_error));

  /* "cuda/cuda.pyx":2990
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":2991
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":2992
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinityParam_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st))));

    /* "cuda/cuda.pyx":2993
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinityParam_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":2994
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinityParam_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 2994, __pyx_L1_error)

      /* "cuda/cuda.pyx":2993
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinityParam_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":2990
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>calloc(1, sizeof(ccuda.CUexecAffinityParam_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":2996
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUexecAffinityParam_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":2997
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":2989
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":2998
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2998, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 2998, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2998, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 2998, 0, __PYX_ERR(0, 2998, __pyx_L1_error));

  /* "cuda/cuda.pyx":2999
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 2999, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_param);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_param));
  __pyx_v_self->_param = ((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":2998
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUexecAffinityParam_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3000
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 3000, 0, __PYX_ERR(0, 3000, __pyx_L1_error));

  /* "cuda/cuda.pyx":3001
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3002
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":3001
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":3000
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._param = _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUexecAffinityParam_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":3004
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_6getPtr[] = "CUexecAffinityParam_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_22CUexecAffinityParam_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__191)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 3004, 0, __PYX_ERR(0, 3004, __pyx_L1_error));

  /* "cuda/cuda.pyx":3005
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3004
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3006
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_8genexpr6__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 3006, 0, __PYX_ERR(0, 3006, __pyx_L1_error));

  /* "cuda/cuda.pyx":3007
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3008
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['param :\n' + '\n'.join(['    ' + line for line in str(self.param).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3008, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3009
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]             # <<<<<<<<<<<<<<
 *             str_list += ['param :\n' + '\n'.join(['    ' + line for line in str(self.param).splitlines()])]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_type, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3010
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['param :\n' + '\n'.join(['    ' + line for line in str(self.param).splitlines()])]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3010, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_param_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3010, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3010, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3010, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3010, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3010, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr6__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr6__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3010, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 3010, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr6__pyx_v_line); __pyx_8genexpr6__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr6__pyx_v_line); __pyx_8genexpr6__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3010, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_param, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3010, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3010, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3010, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3011
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['param :\n' + '\n'.join(['    ' + line for line in str(self.param).splitlines()])]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":3007
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  }

  /* "cuda/cuda.pyx":3013
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":3006
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_8genexpr6__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3016
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUexecAffinityType(self._ptr[0].type)
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_4type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4type___get__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3016, 0, __PYX_ERR(0, 3016, __pyx_L1_error));

  /* "cuda/cuda.pyx":3017
 *     @property
 *     def type(self):
 *         return CUexecAffinityType(self._ptr[0].type)             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, type not None : CUexecAffinityType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUexecAffinityType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum((__pyx_v_self->_ptr[0]).type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3016
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUexecAffinityType(self._ptr[0].type)
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3019
 *         return CUexecAffinityType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUexecAffinityType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_type) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "type"); __PYX_ERR(0, 3019, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4type_2__set__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self), ((PyObject *)__pyx_v_type));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUexecAffinityType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3019, 0, __PYX_ERR(0, 3019, __pyx_L1_error));

  /* "cuda/cuda.pyx":3021
 *     def type(self, type not None : CUexecAffinityType):
 *         pass
 *         self._ptr[0].type = type.value             # <<<<<<<<<<<<<<
 *     @property
 *     def param(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).type = __pyx_t_2;

  /* "cuda/cuda.pyx":3019
 *         return CUexecAffinityType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUexecAffinityType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3023
 *         self._ptr[0].type = type.value
 *     @property
 *     def param(self):             # <<<<<<<<<<<<<<
 *         return self._param
 *     @param.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5param_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5param_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_5param___get__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_5param___get__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3023, 0, __PYX_ERR(0, 3023, __pyx_L1_error));

  /* "cuda/cuda.pyx":3024
 *     @property
 *     def param(self):
 *         return self._param             # <<<<<<<<<<<<<<
 *     @param.setter
 *     def param(self, param not None : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_param));
  __pyx_r = ((PyObject *)__pyx_v_self->_param);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3023
 *         self._ptr[0].type = type.value
 *     @property
 *     def param(self):             # <<<<<<<<<<<<<<
 *         return self._param
 *     @param.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.param.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3026
 *         return self._param
 *     @param.setter
 *     def param(self, param not None : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(param):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5param_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_param); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5param_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_param) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_param), __pyx_ptype_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, 0, "param", 0))) __PYX_ERR(0, 3026, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_5param_2__set__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)__pyx_v_param));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_5param_2__set__(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *__pyx_v_param) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3026, 0, __PYX_ERR(0, 3026, __pyx_L1_error));

  /* "cuda/cuda.pyx":3028
 *     def param(self, param not None : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u):
 *         pass
 *         for _attr in dir(param):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_param)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3028, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3028, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3028, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3028, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3028, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3028, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":3029
 *         pass
 *         for _attr in dir(param):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3029, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":3030
 *         for _attr in dir(param):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._param, _attr, getattr(param, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":3029
 *         pass
 *         for _attr in dir(param):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":3031
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._param, _attr, getattr(param, _attr))
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3031, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":3032
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._param, _attr, getattr(param, _attr))             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_MEMCPY2D_st:
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_param);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_param), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3032, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 3032, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":3031
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._param, _attr, getattr(param, _attr))
 * 
 */
    }

    /* "cuda/cuda.pyx":3028
 *     def param(self, param not None : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u):
 *         pass
 *         for _attr in dir(param):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3026
 *         return self._param
 *     @param.setter
 *     def param(self, param not None : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(param):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.param.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_10__reduce_cython__[] = "CUexecAffinityParam_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_22CUexecAffinityParam_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__192)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__193, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_12__setstate_cython__[] = "CUexecAffinityParam_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_22CUexecAffinityParam_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUexecAffinityParam_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__194)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__195, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUexecAffinityParam_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3079
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3079, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3079, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3079, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 3079, 0, __PYX_ERR(0, 3079, __pyx_L1_error));

  /* "cuda/cuda.pyx":3080
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3081
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":3082
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY2D_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st))));

    /* "cuda/cuda.pyx":3083
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY2D_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":3084
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY2D_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 3084, __pyx_L1_error)

      /* "cuda/cuda.pyx":3083
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY2D_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":3080
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY2D_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":3086
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY2D_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":3087
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":3079
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3088
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 3088, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3088, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3088, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 3088, 0, __PYX_ERR(0, 3088, __pyx_L1_error));

  /* "cuda/cuda.pyx":3089
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)             # <<<<<<<<<<<<<<
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcDevice))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3089, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_srcDevice);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcDevice));
  __pyx_v_self->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3090
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)             # <<<<<<<<<<<<<<
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcArray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_srcArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcArray));
  __pyx_v_self->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3091
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)             # <<<<<<<<<<<<<<
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstDevice))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3091, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_dstDevice);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstDevice));
  __pyx_v_self->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3092
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstArray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3092, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_dstArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstArray));
  __pyx_v_self->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3088
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY2D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3093
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 3093, 0, __PYX_ERR(0, 3093, __pyx_L1_error));

  /* "cuda/cuda.pyx":3094
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3095
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":3094
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":3093
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_MEMCPY2D_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":3097
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_6getPtr[] = "CUDA_MEMCPY2D_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY2D_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__196)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 3097, 0, __PYX_ERR(0, 3097, __pyx_L1_error));

  /* "cuda/cuda.pyx":3098
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3097
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3099
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 3099, 0, __PYX_ERR(0, 3099, __pyx_L1_error));

  /* "cuda/cuda.pyx":3100
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3101
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3102
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcXInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcXInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3103
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3104
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcMemoryType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcMemoryType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3105
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcHost_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_srcHost, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3106
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcDevice_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcDevice, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3107
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3108
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3109
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstXInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstXInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3110
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3111
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstMemoryType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstMemoryType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3112
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstHost_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_dstHost, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3113
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstDevice_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstDevice, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3114
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3115
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3116
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['Height : ' + str(self.Height)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_WidthInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_WidthInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3117
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3118
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":3100
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 */
  }

  /* "cuda/cuda.pyx":3120
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":3099
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3123
 * 
 *     @property
 *     def srcXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3123, 0, __PYX_ERR(0, 3123, __pyx_L1_error));

  /* "cuda/cuda.pyx":3124
 *     @property
 *     def srcXInBytes(self):
 *         return self._ptr[0].srcXInBytes             # <<<<<<<<<<<<<<
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcXInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3123
 * 
 *     @property
 *     def srcXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcXInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3126
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcXInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcXInBytes) {
  size_t __pyx_v_srcXInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcXInBytes); {
    __pyx_v_srcXInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_srcXInBytes); if (unlikely((__pyx_v_srcXInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3126, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_srcXInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_srcXInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3126, 0, __PYX_ERR(0, 3126, __pyx_L1_error));

  /* "cuda/cuda.pyx":3128
 *     def srcXInBytes(self, size_t srcXInBytes):
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def srcY(self):
 */
  (__pyx_v_self->_ptr[0]).srcXInBytes = __pyx_v_srcXInBytes;

  /* "cuda/cuda.pyx":3126
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3130
 *         self._ptr[0].srcXInBytes = srcXInBytes
 *     @property
 *     def srcY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcY
 *     @srcY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3130, 0, __PYX_ERR(0, 3130, __pyx_L1_error));

  /* "cuda/cuda.pyx":3131
 *     @property
 *     def srcY(self):
 *         return self._ptr[0].srcY             # <<<<<<<<<<<<<<
 *     @srcY.setter
 *     def srcY(self, size_t srcY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3130
 *         self._ptr[0].srcXInBytes = srcXInBytes
 *     @property
 *     def srcY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcY
 *     @srcY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3133
 *         return self._ptr[0].srcY
 *     @srcY.setter
 *     def srcY(self, size_t srcY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcY = srcY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcY); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcY) {
  size_t __pyx_v_srcY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcY); {
    __pyx_v_srcY = __Pyx_PyInt_As_size_t(__pyx_arg_srcY); if (unlikely((__pyx_v_srcY == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3133, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_srcY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_srcY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3133, 0, __PYX_ERR(0, 3133, __pyx_L1_error));

  /* "cuda/cuda.pyx":3135
 *     def srcY(self, size_t srcY):
 *         pass
 *         self._ptr[0].srcY = srcY             # <<<<<<<<<<<<<<
 *     @property
 *     def srcMemoryType(self):
 */
  (__pyx_v_self->_ptr[0]).srcY = __pyx_v_srcY;

  /* "cuda/cuda.pyx":3133
 *         return self._ptr[0].srcY
 *     @srcY.setter
 *     def srcY(self, size_t srcY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcY = srcY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3137
 *         self._ptr[0].srcY = srcY
 *     @property
 *     def srcMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3137, 0, __PYX_ERR(0, 3137, __pyx_L1_error));

  /* "cuda/cuda.pyx":3138
 *     @property
 *     def srcMemoryType(self):
 *         return CUmemorytype(self._ptr[0].srcMemoryType)             # <<<<<<<<<<<<<<
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemorytype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum((__pyx_v_self->_ptr[0]).srcMemoryType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3137
 *         self._ptr[0].srcY = srcY
 *     @property
 *     def srcMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcMemoryType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3140
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcMemoryType); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcMemoryType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_srcMemoryType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "srcMemoryType"); __PYX_ERR(0, 3140, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((PyObject *)__pyx_v_srcMemoryType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_srcMemoryType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemorytype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3140, 0, __PYX_ERR(0, 3140, __pyx_L1_error));

  /* "cuda/cuda.pyx":3142
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def srcHost(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_srcMemoryType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).srcMemoryType = __pyx_t_2;

  /* "cuda/cuda.pyx":3140
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcMemoryType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3144
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 *     @property
 *     def srcHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3144, 0, __PYX_ERR(0, 3144, __pyx_L1_error));

  /* "cuda/cuda.pyx":3145
 *     @property
 *     def srcHost(self):
 *         return <void_ptr>self._ptr[0].srcHost             # <<<<<<<<<<<<<<
 *     @srcHost.setter
 *     def srcHost(self, srcHost):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).srcHost)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3144
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 *     @property
 *     def srcHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcHost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3147
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 *     def srcHost(self, srcHost):             # <<<<<<<<<<<<<<
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcHost); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcHost) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((PyObject *)__pyx_v_srcHost));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_srcHost) {
  PyObject *__pyx_v__csrcHost = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3147, 0, __PYX_ERR(0, 3147, __pyx_L1_error));

  /* "cuda/cuda.pyx":3148
 *     @srcHost.setter
 *     def srcHost(self, srcHost):
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3149
 *     def srcHost(self, srcHost):
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def srcDevice(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3149, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).srcHost = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3147
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 *     def srcHost(self, srcHost):             # <<<<<<<<<<<<<<
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcHost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__csrcHost);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3151
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 *     def srcDevice(self):             # <<<<<<<<<<<<<<
 *         return self._srcDevice
 *     @srcDevice.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3151, 0, __PYX_ERR(0, 3151, __pyx_L1_error));

  /* "cuda/cuda.pyx":3152
 *     @property
 *     def srcDevice(self):
 *         return self._srcDevice             # <<<<<<<<<<<<<<
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcDevice));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcDevice);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3151
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 *     def srcDevice(self):             # <<<<<<<<<<<<<<
 *         return self._srcDevice
 *     @srcDevice.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcDevice.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3154
 *         return self._srcDevice
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcDevice); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcDevice) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "srcDevice", 0))) __PYX_ERR(0, 3154, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_srcDevice));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3154, 0, __PYX_ERR(0, 3154, __pyx_L1_error));

  /* "cuda/cuda.pyx":3156
 *     def srcDevice(self, srcDevice : CUdeviceptr):
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def srcArray(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcDevice), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3156, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3156, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcDevice->_ptr[0]);
  }
  (__pyx_v_self->_srcDevice->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3154
 *         return self._srcDevice
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcDevice.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3158
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 *     @property
 *     def srcArray(self):             # <<<<<<<<<<<<<<
 *         return self._srcArray
 *     @srcArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3158, 0, __PYX_ERR(0, 3158, __pyx_L1_error));

  /* "cuda/cuda.pyx":3159
 *     @property
 *     def srcArray(self):
 *         return self._srcArray             # <<<<<<<<<<<<<<
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3158
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 *     @property
 *     def srcArray(self):             # <<<<<<<<<<<<<<
 *         return self._srcArray
 *     @srcArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3161
 *         return self._srcArray
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "srcArray", 0))) __PYX_ERR(0, 3161, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_srcArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3161, 0, __PYX_ERR(0, 3161, __pyx_L1_error));

  /* "cuda/cuda.pyx":3163
 *     def srcArray(self, srcArray : CUarray):
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def srcPitch(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3163, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3163, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcArray->_ptr[0]);
  }
  (__pyx_v_self->_srcArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3161
 *         return self._srcArray
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3165
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 *     @property
 *     def srcPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3165, 0, __PYX_ERR(0, 3165, __pyx_L1_error));

  /* "cuda/cuda.pyx":3166
 *     @property
 *     def srcPitch(self):
 *         return self._ptr[0].srcPitch             # <<<<<<<<<<<<<<
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3165
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 *     @property
 *     def srcPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3168
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcPitch = srcPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcPitch) {
  size_t __pyx_v_srcPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcPitch); {
    __pyx_v_srcPitch = __Pyx_PyInt_As_size_t(__pyx_arg_srcPitch); if (unlikely((__pyx_v_srcPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3168, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_srcPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_srcPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3168, 0, __PYX_ERR(0, 3168, __pyx_L1_error));

  /* "cuda/cuda.pyx":3170
 *     def srcPitch(self, size_t srcPitch):
 *         pass
 *         self._ptr[0].srcPitch = srcPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def dstXInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).srcPitch = __pyx_v_srcPitch;

  /* "cuda/cuda.pyx":3168
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcPitch = srcPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.srcPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3172
 *         self._ptr[0].srcPitch = srcPitch
 *     @property
 *     def dstXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3172, 0, __PYX_ERR(0, 3172, __pyx_L1_error));

  /* "cuda/cuda.pyx":3173
 *     @property
 *     def dstXInBytes(self):
 *         return self._ptr[0].dstXInBytes             # <<<<<<<<<<<<<<
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstXInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3172
 *         self._ptr[0].srcPitch = srcPitch
 *     @property
 *     def dstXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstXInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3175
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstXInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstXInBytes) {
  size_t __pyx_v_dstXInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstXInBytes); {
    __pyx_v_dstXInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_dstXInBytes); if (unlikely((__pyx_v_dstXInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3175, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_dstXInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_dstXInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3175, 0, __PYX_ERR(0, 3175, __pyx_L1_error));

  /* "cuda/cuda.pyx":3177
 *     def dstXInBytes(self, size_t dstXInBytes):
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def dstY(self):
 */
  (__pyx_v_self->_ptr[0]).dstXInBytes = __pyx_v_dstXInBytes;

  /* "cuda/cuda.pyx":3175
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3179
 *         self._ptr[0].dstXInBytes = dstXInBytes
 *     @property
 *     def dstY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstY
 *     @dstY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3179, 0, __PYX_ERR(0, 3179, __pyx_L1_error));

  /* "cuda/cuda.pyx":3180
 *     @property
 *     def dstY(self):
 *         return self._ptr[0].dstY             # <<<<<<<<<<<<<<
 *     @dstY.setter
 *     def dstY(self, size_t dstY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3179
 *         self._ptr[0].dstXInBytes = dstXInBytes
 *     @property
 *     def dstY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstY
 *     @dstY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3182
 *         return self._ptr[0].dstY
 *     @dstY.setter
 *     def dstY(self, size_t dstY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstY = dstY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstY); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstY) {
  size_t __pyx_v_dstY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstY); {
    __pyx_v_dstY = __Pyx_PyInt_As_size_t(__pyx_arg_dstY); if (unlikely((__pyx_v_dstY == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3182, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_dstY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_dstY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3182, 0, __PYX_ERR(0, 3182, __pyx_L1_error));

  /* "cuda/cuda.pyx":3184
 *     def dstY(self, size_t dstY):
 *         pass
 *         self._ptr[0].dstY = dstY             # <<<<<<<<<<<<<<
 *     @property
 *     def dstMemoryType(self):
 */
  (__pyx_v_self->_ptr[0]).dstY = __pyx_v_dstY;

  /* "cuda/cuda.pyx":3182
 *         return self._ptr[0].dstY
 *     @dstY.setter
 *     def dstY(self, size_t dstY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstY = dstY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3186
 *         self._ptr[0].dstY = dstY
 *     @property
 *     def dstMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3186, 0, __PYX_ERR(0, 3186, __pyx_L1_error));

  /* "cuda/cuda.pyx":3187
 *     @property
 *     def dstMemoryType(self):
 *         return CUmemorytype(self._ptr[0].dstMemoryType)             # <<<<<<<<<<<<<<
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemorytype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum((__pyx_v_self->_ptr[0]).dstMemoryType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3186
 *         self._ptr[0].dstY = dstY
 *     @property
 *     def dstMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstMemoryType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3189
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstMemoryType); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstMemoryType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_dstMemoryType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dstMemoryType"); __PYX_ERR(0, 3189, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((PyObject *)__pyx_v_dstMemoryType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_dstMemoryType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemorytype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3189, 0, __PYX_ERR(0, 3189, __pyx_L1_error));

  /* "cuda/cuda.pyx":3191
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def dstHost(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dstMemoryType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3191, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).dstMemoryType = __pyx_t_2;

  /* "cuda/cuda.pyx":3189
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstMemoryType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3193
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 *     @property
 *     def dstHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3193, 0, __PYX_ERR(0, 3193, __pyx_L1_error));

  /* "cuda/cuda.pyx":3194
 *     @property
 *     def dstHost(self):
 *         return <void_ptr>self._ptr[0].dstHost             # <<<<<<<<<<<<<<
 *     @dstHost.setter
 *     def dstHost(self, dstHost):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).dstHost)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3193
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 *     @property
 *     def dstHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstHost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3196
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 *     def dstHost(self, dstHost):             # <<<<<<<<<<<<<<
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstHost); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstHost) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((PyObject *)__pyx_v_dstHost));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, PyObject *__pyx_v_dstHost) {
  PyObject *__pyx_v__cdstHost = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3196, 0, __PYX_ERR(0, 3196, __pyx_L1_error));

  /* "cuda/cuda.pyx":3197
 *     @dstHost.setter
 *     def dstHost(self, dstHost):
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3198
 *     def dstHost(self, dstHost):
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def dstDevice(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).dstHost = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3196
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 *     def dstHost(self, dstHost):             # <<<<<<<<<<<<<<
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstHost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cdstHost);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3200
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 *     def dstDevice(self):             # <<<<<<<<<<<<<<
 *         return self._dstDevice
 *     @dstDevice.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3200, 0, __PYX_ERR(0, 3200, __pyx_L1_error));

  /* "cuda/cuda.pyx":3201
 *     @property
 *     def dstDevice(self):
 *         return self._dstDevice             # <<<<<<<<<<<<<<
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstDevice));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstDevice);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3200
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 *     def dstDevice(self):             # <<<<<<<<<<<<<<
 *         return self._dstDevice
 *     @dstDevice.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstDevice.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3203
 *         return self._dstDevice
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstDevice); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstDevice) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "dstDevice", 0))) __PYX_ERR(0, 3203, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dstDevice));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3203, 0, __PYX_ERR(0, 3203, __pyx_L1_error));

  /* "cuda/cuda.pyx":3205
 *     def dstDevice(self, dstDevice : CUdeviceptr):
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def dstArray(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstDevice), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3205, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstDevice->_ptr[0]);
  }
  (__pyx_v_self->_dstDevice->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3203
 *         return self._dstDevice
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstDevice.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3207
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 *     @property
 *     def dstArray(self):             # <<<<<<<<<<<<<<
 *         return self._dstArray
 *     @dstArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3207, 0, __PYX_ERR(0, 3207, __pyx_L1_error));

  /* "cuda/cuda.pyx":3208
 *     @property
 *     def dstArray(self):
 *         return self._dstArray             # <<<<<<<<<<<<<<
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3207
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 *     @property
 *     def dstArray(self):             # <<<<<<<<<<<<<<
 *         return self._dstArray
 *     @dstArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3210
 *         return self._dstArray
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "dstArray", 0))) __PYX_ERR(0, 3210, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_dstArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3210, 0, __PYX_ERR(0, 3210, __pyx_L1_error));

  /* "cuda/cuda.pyx":3212
 *     def dstArray(self, dstArray : CUarray):
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def dstPitch(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3212, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstArray->_ptr[0]);
  }
  (__pyx_v_self->_dstArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3210
 *         return self._dstArray
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3214
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 *     @property
 *     def dstPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3214, 0, __PYX_ERR(0, 3214, __pyx_L1_error));

  /* "cuda/cuda.pyx":3215
 *     @property
 *     def dstPitch(self):
 *         return self._ptr[0].dstPitch             # <<<<<<<<<<<<<<
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3214
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 *     @property
 *     def dstPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3217
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstPitch = dstPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstPitch) {
  size_t __pyx_v_dstPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstPitch); {
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(__pyx_arg_dstPitch); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3217, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_dstPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_dstPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3217, 0, __PYX_ERR(0, 3217, __pyx_L1_error));

  /* "cuda/cuda.pyx":3219
 *     def dstPitch(self, size_t dstPitch):
 *         pass
 *         self._ptr[0].dstPitch = dstPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def WidthInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).dstPitch = __pyx_v_dstPitch;

  /* "cuda/cuda.pyx":3217
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstPitch = dstPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.dstPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3221
 *         self._ptr[0].dstPitch = dstPitch
 *     @property
 *     def WidthInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3221, 0, __PYX_ERR(0, 3221, __pyx_L1_error));

  /* "cuda/cuda.pyx":3222
 *     @property
 *     def WidthInBytes(self):
 *         return self._ptr[0].WidthInBytes             # <<<<<<<<<<<<<<
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).WidthInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3221
 *         self._ptr[0].dstPitch = dstPitch
 *     @property
 *     def WidthInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.WidthInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3224
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_WidthInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_WidthInBytes) {
  size_t __pyx_v_WidthInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_WidthInBytes); {
    __pyx_v_WidthInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_WidthInBytes); if (unlikely((__pyx_v_WidthInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3224, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.WidthInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_WidthInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_WidthInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3224, 0, __PYX_ERR(0, 3224, __pyx_L1_error));

  /* "cuda/cuda.pyx":3226
 *     def WidthInBytes(self, size_t WidthInBytes):
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def Height(self):
 */
  (__pyx_v_self->_ptr[0]).WidthInBytes = __pyx_v_WidthInBytes;

  /* "cuda/cuda.pyx":3224
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.WidthInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3228
 *         self._ptr[0].WidthInBytes = WidthInBytes
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3228, 0, __PYX_ERR(0, 3228, __pyx_L1_error));

  /* "cuda/cuda.pyx":3229
 *     @property
 *     def Height(self):
 *         return self._ptr[0].Height             # <<<<<<<<<<<<<<
 *     @Height.setter
 *     def Height(self, size_t Height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3228
 *         self._ptr[0].WidthInBytes = WidthInBytes
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.Height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3231
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height) {
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Height); {
    __pyx_v_Height = __Pyx_PyInt_As_size_t(__pyx_arg_Height); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3231, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((size_t)__pyx_v_Height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, size_t __pyx_v_Height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3231, 0, __PYX_ERR(0, 3231, __pyx_L1_error));

  /* "cuda/cuda.pyx":3233
 *     def Height(self, size_t Height):
 *         pass
 *         self._ptr[0].Height = Height             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_MEMCPY3D_st:
 */
  (__pyx_v_self->_ptr[0]).Height = __pyx_v_Height;

  /* "cuda/cuda.pyx":3231
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_10__reduce_cython__[] = "CUDA_MEMCPY2D_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY2D_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__197)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__198, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_12__setstate_cython__[] = "CUDA_MEMCPY2D_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY2D_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY2D_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__199)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__200, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY2D_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3299
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3299, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3299, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3299, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 3299, 0, __PYX_ERR(0, 3299, __pyx_L1_error));

  /* "cuda/cuda.pyx":3300
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3301
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":3302
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st))));

    /* "cuda/cuda.pyx":3303
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":3304
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 3304, __pyx_L1_error)

      /* "cuda/cuda.pyx":3303
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":3300
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":3306
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":3307
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":3299
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3308
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 3308, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3308, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3308, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 3308, 0, __PYX_ERR(0, 3308, __pyx_L1_error));

  /* "cuda/cuda.pyx":3309
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)             # <<<<<<<<<<<<<<
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcDevice))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3309, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_srcDevice);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcDevice));
  __pyx_v_self->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3310
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)             # <<<<<<<<<<<<<<
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcArray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_srcArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcArray));
  __pyx_v_self->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3311
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)             # <<<<<<<<<<<<<<
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstDevice))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3311, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_dstDevice);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstDevice));
  __pyx_v_self->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3312
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstArray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_dstArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstArray));
  __pyx_v_self->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3308
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3313
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 3313, 0, __PYX_ERR(0, 3313, __pyx_L1_error));

  /* "cuda/cuda.pyx":3314
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3315
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":3314
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":3313
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_MEMCPY3D_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":3317
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_6getPtr[] = "CUDA_MEMCPY3D_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY3D_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__201)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 3317, 0, __PYX_ERR(0, 3317, __pyx_L1_error));

  /* "cuda/cuda.pyx":3318
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3317
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3319
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 3319, 0, __PYX_ERR(0, 3319, __pyx_L1_error));

  /* "cuda/cuda.pyx":3320
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3321
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3322
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcXInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcXInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3323
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3324
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcZ : ' + str(self.srcZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3325
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcLOD_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcLOD, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3326
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcMemoryType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcMemoryType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3327
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcHost_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_srcHost, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3328
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['reserved0 : ' + hex(self.reserved0)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcDevice_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcDevice, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3329
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved0 : ' + hex(self.reserved0)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3330
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['reserved0 : ' + hex(self.reserved0)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved0_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_reserved0, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3331
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['reserved0 : ' + hex(self.reserved0)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3332
 *             str_list += ['reserved0 : ' + hex(self.reserved0)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcHeight_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcHeight, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3333
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstXInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstXInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3334
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3335
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstZ : ' + str(self.dstZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3336
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstLOD_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstLOD, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3337
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstMemoryType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstMemoryType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3338
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstHost_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_dstHost, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3339
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['reserved1 : ' + hex(self.reserved1)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstDevice_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstDevice, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3340
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved1 : ' + hex(self.reserved1)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3341
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['reserved1 : ' + hex(self.reserved1)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved1_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_reserved1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3342
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['reserved1 : ' + hex(self.reserved1)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3343
 *             str_list += ['reserved1 : ' + hex(self.reserved1)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]             # <<<<<<<<<<<<<<
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstHeight_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstHeight, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3344
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_WidthInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_WidthInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3345
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]             # <<<<<<<<<<<<<<
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3346
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Depth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Depth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3347
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":3320
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 */
  }

  /* "cuda/cuda.pyx":3349
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":3319
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3352
 * 
 *     @property
 *     def srcXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3352, 0, __PYX_ERR(0, 3352, __pyx_L1_error));

  /* "cuda/cuda.pyx":3353
 *     @property
 *     def srcXInBytes(self):
 *         return self._ptr[0].srcXInBytes             # <<<<<<<<<<<<<<
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcXInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3352
 * 
 *     @property
 *     def srcXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcXInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3355
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcXInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcXInBytes) {
  size_t __pyx_v_srcXInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcXInBytes); {
    __pyx_v_srcXInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_srcXInBytes); if (unlikely((__pyx_v_srcXInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3355, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_srcXInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcXInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3355, 0, __PYX_ERR(0, 3355, __pyx_L1_error));

  /* "cuda/cuda.pyx":3357
 *     def srcXInBytes(self, size_t srcXInBytes):
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def srcY(self):
 */
  (__pyx_v_self->_ptr[0]).srcXInBytes = __pyx_v_srcXInBytes;

  /* "cuda/cuda.pyx":3355
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3359
 *         self._ptr[0].srcXInBytes = srcXInBytes
 *     @property
 *     def srcY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcY
 *     @srcY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3359, 0, __PYX_ERR(0, 3359, __pyx_L1_error));

  /* "cuda/cuda.pyx":3360
 *     @property
 *     def srcY(self):
 *         return self._ptr[0].srcY             # <<<<<<<<<<<<<<
 *     @srcY.setter
 *     def srcY(self, size_t srcY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3359
 *         self._ptr[0].srcXInBytes = srcXInBytes
 *     @property
 *     def srcY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcY
 *     @srcY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3362
 *         return self._ptr[0].srcY
 *     @srcY.setter
 *     def srcY(self, size_t srcY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcY = srcY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcY); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcY) {
  size_t __pyx_v_srcY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcY); {
    __pyx_v_srcY = __Pyx_PyInt_As_size_t(__pyx_arg_srcY); if (unlikely((__pyx_v_srcY == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3362, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_srcY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3362, 0, __PYX_ERR(0, 3362, __pyx_L1_error));

  /* "cuda/cuda.pyx":3364
 *     def srcY(self, size_t srcY):
 *         pass
 *         self._ptr[0].srcY = srcY             # <<<<<<<<<<<<<<
 *     @property
 *     def srcZ(self):
 */
  (__pyx_v_self->_ptr[0]).srcY = __pyx_v_srcY;

  /* "cuda/cuda.pyx":3362
 *         return self._ptr[0].srcY
 *     @srcY.setter
 *     def srcY(self, size_t srcY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcY = srcY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3366
 *         self._ptr[0].srcY = srcY
 *     @property
 *     def srcZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3366, 0, __PYX_ERR(0, 3366, __pyx_L1_error));

  /* "cuda/cuda.pyx":3367
 *     @property
 *     def srcZ(self):
 *         return self._ptr[0].srcZ             # <<<<<<<<<<<<<<
 *     @srcZ.setter
 *     def srcZ(self, size_t srcZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3366
 *         self._ptr[0].srcY = srcY
 *     @property
 *     def srcZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3369
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 *     def srcZ(self, size_t srcZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcZ = srcZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcZ) {
  size_t __pyx_v_srcZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcZ); {
    __pyx_v_srcZ = __Pyx_PyInt_As_size_t(__pyx_arg_srcZ); if (unlikely((__pyx_v_srcZ == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3369, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_srcZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3369, 0, __PYX_ERR(0, 3369, __pyx_L1_error));

  /* "cuda/cuda.pyx":3371
 *     def srcZ(self, size_t srcZ):
 *         pass
 *         self._ptr[0].srcZ = srcZ             # <<<<<<<<<<<<<<
 *     @property
 *     def srcLOD(self):
 */
  (__pyx_v_self->_ptr[0]).srcZ = __pyx_v_srcZ;

  /* "cuda/cuda.pyx":3369
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 *     def srcZ(self, size_t srcZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcZ = srcZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3373
 *         self._ptr[0].srcZ = srcZ
 *     @property
 *     def srcLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3373, 0, __PYX_ERR(0, 3373, __pyx_L1_error));

  /* "cuda/cuda.pyx":3374
 *     @property
 *     def srcLOD(self):
 *         return self._ptr[0].srcLOD             # <<<<<<<<<<<<<<
 *     @srcLOD.setter
 *     def srcLOD(self, size_t srcLOD):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcLOD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3373
 *         self._ptr[0].srcZ = srcZ
 *     @property
 *     def srcLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcLOD.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3376
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 *     def srcLOD(self, size_t srcLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcLOD = srcLOD
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcLOD); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcLOD) {
  size_t __pyx_v_srcLOD;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcLOD); {
    __pyx_v_srcLOD = __Pyx_PyInt_As_size_t(__pyx_arg_srcLOD); if (unlikely((__pyx_v_srcLOD == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3376, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_srcLOD));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcLOD) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3376, 0, __PYX_ERR(0, 3376, __pyx_L1_error));

  /* "cuda/cuda.pyx":3378
 *     def srcLOD(self, size_t srcLOD):
 *         pass
 *         self._ptr[0].srcLOD = srcLOD             # <<<<<<<<<<<<<<
 *     @property
 *     def srcMemoryType(self):
 */
  (__pyx_v_self->_ptr[0]).srcLOD = __pyx_v_srcLOD;

  /* "cuda/cuda.pyx":3376
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 *     def srcLOD(self, size_t srcLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcLOD = srcLOD
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3380
 *         self._ptr[0].srcLOD = srcLOD
 *     @property
 *     def srcMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3380, 0, __PYX_ERR(0, 3380, __pyx_L1_error));

  /* "cuda/cuda.pyx":3381
 *     @property
 *     def srcMemoryType(self):
 *         return CUmemorytype(self._ptr[0].srcMemoryType)             # <<<<<<<<<<<<<<
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemorytype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum((__pyx_v_self->_ptr[0]).srcMemoryType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3380
 *         self._ptr[0].srcLOD = srcLOD
 *     @property
 *     def srcMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcMemoryType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3383
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcMemoryType); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcMemoryType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_srcMemoryType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "srcMemoryType"); __PYX_ERR(0, 3383, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v_srcMemoryType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_srcMemoryType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemorytype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3383, 0, __PYX_ERR(0, 3383, __pyx_L1_error));

  /* "cuda/cuda.pyx":3385
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def srcHost(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_srcMemoryType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3385, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).srcMemoryType = __pyx_t_2;

  /* "cuda/cuda.pyx":3383
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcMemoryType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3387
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 *     @property
 *     def srcHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3387, 0, __PYX_ERR(0, 3387, __pyx_L1_error));

  /* "cuda/cuda.pyx":3388
 *     @property
 *     def srcHost(self):
 *         return <void_ptr>self._ptr[0].srcHost             # <<<<<<<<<<<<<<
 *     @srcHost.setter
 *     def srcHost(self, srcHost):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).srcHost)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3387
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 *     @property
 *     def srcHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcHost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3390
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 *     def srcHost(self, srcHost):             # <<<<<<<<<<<<<<
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcHost); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcHost) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v_srcHost));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_srcHost) {
  PyObject *__pyx_v__csrcHost = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3390, 0, __PYX_ERR(0, 3390, __pyx_L1_error));

  /* "cuda/cuda.pyx":3391
 *     @srcHost.setter
 *     def srcHost(self, srcHost):
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3392
 *     def srcHost(self, srcHost):
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def srcDevice(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).srcHost = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3390
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 *     def srcHost(self, srcHost):             # <<<<<<<<<<<<<<
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcHost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__csrcHost);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3394
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 *     def srcDevice(self):             # <<<<<<<<<<<<<<
 *         return self._srcDevice
 *     @srcDevice.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3394, 0, __PYX_ERR(0, 3394, __pyx_L1_error));

  /* "cuda/cuda.pyx":3395
 *     @property
 *     def srcDevice(self):
 *         return self._srcDevice             # <<<<<<<<<<<<<<
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcDevice));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcDevice);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3394
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 *     def srcDevice(self):             # <<<<<<<<<<<<<<
 *         return self._srcDevice
 *     @srcDevice.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcDevice.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3397
 *         return self._srcDevice
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcDevice); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcDevice) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "srcDevice", 0))) __PYX_ERR(0, 3397, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_srcDevice));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3397, 0, __PYX_ERR(0, 3397, __pyx_L1_error));

  /* "cuda/cuda.pyx":3399
 *     def srcDevice(self, srcDevice : CUdeviceptr):
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def srcArray(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcDevice), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3399, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3399, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcDevice->_ptr[0]);
  }
  (__pyx_v_self->_srcDevice->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3397
 *         return self._srcDevice
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcDevice.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3401
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 *     @property
 *     def srcArray(self):             # <<<<<<<<<<<<<<
 *         return self._srcArray
 *     @srcArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3401, 0, __PYX_ERR(0, 3401, __pyx_L1_error));

  /* "cuda/cuda.pyx":3402
 *     @property
 *     def srcArray(self):
 *         return self._srcArray             # <<<<<<<<<<<<<<
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3401
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 *     @property
 *     def srcArray(self):             # <<<<<<<<<<<<<<
 *         return self._srcArray
 *     @srcArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3404
 *         return self._srcArray
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "srcArray", 0))) __PYX_ERR(0, 3404, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_srcArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3404, 0, __PYX_ERR(0, 3404, __pyx_L1_error));

  /* "cuda/cuda.pyx":3406
 *     def srcArray(self, srcArray : CUarray):
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved0(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3406, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcArray->_ptr[0]);
  }
  (__pyx_v_self->_srcArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3404
 *         return self._srcArray
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3408
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 *     @property
 *     def reserved0(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].reserved0
 *     @reserved0.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3408, 0, __PYX_ERR(0, 3408, __pyx_L1_error));

  /* "cuda/cuda.pyx":3409
 *     @property
 *     def reserved0(self):
 *         return <void_ptr>self._ptr[0].reserved0             # <<<<<<<<<<<<<<
 *     @reserved0.setter
 *     def reserved0(self, reserved0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).reserved0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3408
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 *     @property
 *     def reserved0(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].reserved0
 *     @reserved0.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.reserved0.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3411
 *         return <void_ptr>self._ptr[0].reserved0
 *     @reserved0.setter
 *     def reserved0(self, reserved0):             # <<<<<<<<<<<<<<
 *         _creserved0 = utils.HelperInputVoidPtr(reserved0)
 *         self._ptr[0].reserved0 = <void*><void_ptr>_creserved0.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved0); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved0) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_reserved0) {
  PyObject *__pyx_v__creserved0 = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3411, 0, __PYX_ERR(0, 3411, __pyx_L1_error));

  /* "cuda/cuda.pyx":3412
 *     @reserved0.setter
 *     def reserved0(self, reserved0):
 *         _creserved0 = utils.HelperInputVoidPtr(reserved0)             # <<<<<<<<<<<<<<
 *         self._ptr[0].reserved0 = <void*><void_ptr>_creserved0.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_reserved0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__creserved0 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3413
 *     def reserved0(self, reserved0):
 *         _creserved0 = utils.HelperInputVoidPtr(reserved0)
 *         self._ptr[0].reserved0 = <void*><void_ptr>_creserved0.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def srcPitch(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__creserved0, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).reserved0 = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3411
 *         return <void_ptr>self._ptr[0].reserved0
 *     @reserved0.setter
 *     def reserved0(self, reserved0):             # <<<<<<<<<<<<<<
 *         _creserved0 = utils.HelperInputVoidPtr(reserved0)
 *         self._ptr[0].reserved0 = <void*><void_ptr>_creserved0.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.reserved0.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__creserved0);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3415
 *         self._ptr[0].reserved0 = <void*><void_ptr>_creserved0.cptr
 *     @property
 *     def srcPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3415, 0, __PYX_ERR(0, 3415, __pyx_L1_error));

  /* "cuda/cuda.pyx":3416
 *     @property
 *     def srcPitch(self):
 *         return self._ptr[0].srcPitch             # <<<<<<<<<<<<<<
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3415
 *         self._ptr[0].reserved0 = <void*><void_ptr>_creserved0.cptr
 *     @property
 *     def srcPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3418
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcPitch = srcPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcPitch) {
  size_t __pyx_v_srcPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcPitch); {
    __pyx_v_srcPitch = __Pyx_PyInt_As_size_t(__pyx_arg_srcPitch); if (unlikely((__pyx_v_srcPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3418, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_srcPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3418, 0, __PYX_ERR(0, 3418, __pyx_L1_error));

  /* "cuda/cuda.pyx":3420
 *     def srcPitch(self, size_t srcPitch):
 *         pass
 *         self._ptr[0].srcPitch = srcPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def srcHeight(self):
 */
  (__pyx_v_self->_ptr[0]).srcPitch = __pyx_v_srcPitch;

  /* "cuda/cuda.pyx":3418
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcPitch = srcPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3422
 *         self._ptr[0].srcPitch = srcPitch
 *     @property
 *     def srcHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3422, 0, __PYX_ERR(0, 3422, __pyx_L1_error));

  /* "cuda/cuda.pyx":3423
 *     @property
 *     def srcHeight(self):
 *         return self._ptr[0].srcHeight             # <<<<<<<<<<<<<<
 *     @srcHeight.setter
 *     def srcHeight(self, size_t srcHeight):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3422
 *         self._ptr[0].srcPitch = srcPitch
 *     @property
 *     def srcHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3425
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 *     def srcHeight(self, size_t srcHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcHeight = srcHeight
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcHeight); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcHeight) {
  size_t __pyx_v_srcHeight;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcHeight); {
    __pyx_v_srcHeight = __Pyx_PyInt_As_size_t(__pyx_arg_srcHeight); if (unlikely((__pyx_v_srcHeight == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3425, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_srcHeight));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_srcHeight) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3425, 0, __PYX_ERR(0, 3425, __pyx_L1_error));

  /* "cuda/cuda.pyx":3427
 *     def srcHeight(self, size_t srcHeight):
 *         pass
 *         self._ptr[0].srcHeight = srcHeight             # <<<<<<<<<<<<<<
 *     @property
 *     def dstXInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).srcHeight = __pyx_v_srcHeight;

  /* "cuda/cuda.pyx":3425
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 *     def srcHeight(self, size_t srcHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcHeight = srcHeight
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.srcHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3429
 *         self._ptr[0].srcHeight = srcHeight
 *     @property
 *     def dstXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3429, 0, __PYX_ERR(0, 3429, __pyx_L1_error));

  /* "cuda/cuda.pyx":3430
 *     @property
 *     def dstXInBytes(self):
 *         return self._ptr[0].dstXInBytes             # <<<<<<<<<<<<<<
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstXInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3429
 *         self._ptr[0].srcHeight = srcHeight
 *     @property
 *     def dstXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstXInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3432
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstXInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstXInBytes) {
  size_t __pyx_v_dstXInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstXInBytes); {
    __pyx_v_dstXInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_dstXInBytes); if (unlikely((__pyx_v_dstXInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3432, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_dstXInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstXInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3432, 0, __PYX_ERR(0, 3432, __pyx_L1_error));

  /* "cuda/cuda.pyx":3434
 *     def dstXInBytes(self, size_t dstXInBytes):
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def dstY(self):
 */
  (__pyx_v_self->_ptr[0]).dstXInBytes = __pyx_v_dstXInBytes;

  /* "cuda/cuda.pyx":3432
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3436
 *         self._ptr[0].dstXInBytes = dstXInBytes
 *     @property
 *     def dstY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstY
 *     @dstY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3436, 0, __PYX_ERR(0, 3436, __pyx_L1_error));

  /* "cuda/cuda.pyx":3437
 *     @property
 *     def dstY(self):
 *         return self._ptr[0].dstY             # <<<<<<<<<<<<<<
 *     @dstY.setter
 *     def dstY(self, size_t dstY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3436
 *         self._ptr[0].dstXInBytes = dstXInBytes
 *     @property
 *     def dstY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstY
 *     @dstY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3439
 *         return self._ptr[0].dstY
 *     @dstY.setter
 *     def dstY(self, size_t dstY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstY = dstY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstY); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstY) {
  size_t __pyx_v_dstY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstY); {
    __pyx_v_dstY = __Pyx_PyInt_As_size_t(__pyx_arg_dstY); if (unlikely((__pyx_v_dstY == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3439, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_dstY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3439, 0, __PYX_ERR(0, 3439, __pyx_L1_error));

  /* "cuda/cuda.pyx":3441
 *     def dstY(self, size_t dstY):
 *         pass
 *         self._ptr[0].dstY = dstY             # <<<<<<<<<<<<<<
 *     @property
 *     def dstZ(self):
 */
  (__pyx_v_self->_ptr[0]).dstY = __pyx_v_dstY;

  /* "cuda/cuda.pyx":3439
 *         return self._ptr[0].dstY
 *     @dstY.setter
 *     def dstY(self, size_t dstY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstY = dstY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3443
 *         self._ptr[0].dstY = dstY
 *     @property
 *     def dstZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3443, 0, __PYX_ERR(0, 3443, __pyx_L1_error));

  /* "cuda/cuda.pyx":3444
 *     @property
 *     def dstZ(self):
 *         return self._ptr[0].dstZ             # <<<<<<<<<<<<<<
 *     @dstZ.setter
 *     def dstZ(self, size_t dstZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3443
 *         self._ptr[0].dstY = dstY
 *     @property
 *     def dstZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3446
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 *     def dstZ(self, size_t dstZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstZ = dstZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstZ) {
  size_t __pyx_v_dstZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstZ); {
    __pyx_v_dstZ = __Pyx_PyInt_As_size_t(__pyx_arg_dstZ); if (unlikely((__pyx_v_dstZ == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3446, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_dstZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3446, 0, __PYX_ERR(0, 3446, __pyx_L1_error));

  /* "cuda/cuda.pyx":3448
 *     def dstZ(self, size_t dstZ):
 *         pass
 *         self._ptr[0].dstZ = dstZ             # <<<<<<<<<<<<<<
 *     @property
 *     def dstLOD(self):
 */
  (__pyx_v_self->_ptr[0]).dstZ = __pyx_v_dstZ;

  /* "cuda/cuda.pyx":3446
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 *     def dstZ(self, size_t dstZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstZ = dstZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3450
 *         self._ptr[0].dstZ = dstZ
 *     @property
 *     def dstLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3450, 0, __PYX_ERR(0, 3450, __pyx_L1_error));

  /* "cuda/cuda.pyx":3451
 *     @property
 *     def dstLOD(self):
 *         return self._ptr[0].dstLOD             # <<<<<<<<<<<<<<
 *     @dstLOD.setter
 *     def dstLOD(self, size_t dstLOD):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstLOD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3450
 *         self._ptr[0].dstZ = dstZ
 *     @property
 *     def dstLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstLOD.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3453
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 *     def dstLOD(self, size_t dstLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstLOD = dstLOD
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstLOD); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstLOD) {
  size_t __pyx_v_dstLOD;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstLOD); {
    __pyx_v_dstLOD = __Pyx_PyInt_As_size_t(__pyx_arg_dstLOD); if (unlikely((__pyx_v_dstLOD == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3453, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_dstLOD));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstLOD) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3453, 0, __PYX_ERR(0, 3453, __pyx_L1_error));

  /* "cuda/cuda.pyx":3455
 *     def dstLOD(self, size_t dstLOD):
 *         pass
 *         self._ptr[0].dstLOD = dstLOD             # <<<<<<<<<<<<<<
 *     @property
 *     def dstMemoryType(self):
 */
  (__pyx_v_self->_ptr[0]).dstLOD = __pyx_v_dstLOD;

  /* "cuda/cuda.pyx":3453
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 *     def dstLOD(self, size_t dstLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstLOD = dstLOD
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3457
 *         self._ptr[0].dstLOD = dstLOD
 *     @property
 *     def dstMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3457, 0, __PYX_ERR(0, 3457, __pyx_L1_error));

  /* "cuda/cuda.pyx":3458
 *     @property
 *     def dstMemoryType(self):
 *         return CUmemorytype(self._ptr[0].dstMemoryType)             # <<<<<<<<<<<<<<
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemorytype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum((__pyx_v_self->_ptr[0]).dstMemoryType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3457
 *         self._ptr[0].dstLOD = dstLOD
 *     @property
 *     def dstMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstMemoryType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3460
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstMemoryType); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstMemoryType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_dstMemoryType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dstMemoryType"); __PYX_ERR(0, 3460, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v_dstMemoryType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_dstMemoryType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemorytype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3460, 0, __PYX_ERR(0, 3460, __pyx_L1_error));

  /* "cuda/cuda.pyx":3462
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def dstHost(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dstMemoryType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3462, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).dstMemoryType = __pyx_t_2;

  /* "cuda/cuda.pyx":3460
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstMemoryType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3464
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 *     @property
 *     def dstHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3464, 0, __PYX_ERR(0, 3464, __pyx_L1_error));

  /* "cuda/cuda.pyx":3465
 *     @property
 *     def dstHost(self):
 *         return <void_ptr>self._ptr[0].dstHost             # <<<<<<<<<<<<<<
 *     @dstHost.setter
 *     def dstHost(self, dstHost):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).dstHost)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3464
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 *     @property
 *     def dstHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstHost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3467
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 *     def dstHost(self, dstHost):             # <<<<<<<<<<<<<<
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstHost); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstHost) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v_dstHost));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_dstHost) {
  PyObject *__pyx_v__cdstHost = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3467, 0, __PYX_ERR(0, 3467, __pyx_L1_error));

  /* "cuda/cuda.pyx":3468
 *     @dstHost.setter
 *     def dstHost(self, dstHost):
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3469
 *     def dstHost(self, dstHost):
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def dstDevice(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).dstHost = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3467
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 *     def dstHost(self, dstHost):             # <<<<<<<<<<<<<<
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstHost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cdstHost);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3471
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 *     def dstDevice(self):             # <<<<<<<<<<<<<<
 *         return self._dstDevice
 *     @dstDevice.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3471, 0, __PYX_ERR(0, 3471, __pyx_L1_error));

  /* "cuda/cuda.pyx":3472
 *     @property
 *     def dstDevice(self):
 *         return self._dstDevice             # <<<<<<<<<<<<<<
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstDevice));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstDevice);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3471
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 *     def dstDevice(self):             # <<<<<<<<<<<<<<
 *         return self._dstDevice
 *     @dstDevice.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstDevice.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3474
 *         return self._dstDevice
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstDevice); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstDevice) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "dstDevice", 0))) __PYX_ERR(0, 3474, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dstDevice));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3474, 0, __PYX_ERR(0, 3474, __pyx_L1_error));

  /* "cuda/cuda.pyx":3476
 *     def dstDevice(self, dstDevice : CUdeviceptr):
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def dstArray(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstDevice), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3476, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3476, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstDevice->_ptr[0]);
  }
  (__pyx_v_self->_dstDevice->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3474
 *         return self._dstDevice
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstDevice.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3478
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 *     @property
 *     def dstArray(self):             # <<<<<<<<<<<<<<
 *         return self._dstArray
 *     @dstArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3478, 0, __PYX_ERR(0, 3478, __pyx_L1_error));

  /* "cuda/cuda.pyx":3479
 *     @property
 *     def dstArray(self):
 *         return self._dstArray             # <<<<<<<<<<<<<<
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3478
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 *     @property
 *     def dstArray(self):             # <<<<<<<<<<<<<<
 *         return self._dstArray
 *     @dstArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3481
 *         return self._dstArray
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "dstArray", 0))) __PYX_ERR(0, 3481, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_dstArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3481, 0, __PYX_ERR(0, 3481, __pyx_L1_error));

  /* "cuda/cuda.pyx":3483
 *     def dstArray(self, dstArray : CUarray):
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved1(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3483, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3483, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstArray->_ptr[0]);
  }
  (__pyx_v_self->_dstArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3481
 *         return self._dstArray
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3485
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 *     @property
 *     def reserved1(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].reserved1
 *     @reserved1.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3485, 0, __PYX_ERR(0, 3485, __pyx_L1_error));

  /* "cuda/cuda.pyx":3486
 *     @property
 *     def reserved1(self):
 *         return <void_ptr>self._ptr[0].reserved1             # <<<<<<<<<<<<<<
 *     @reserved1.setter
 *     def reserved1(self, reserved1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).reserved1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3485
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 *     @property
 *     def reserved1(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].reserved1
 *     @reserved1.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.reserved1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3488
 *         return <void_ptr>self._ptr[0].reserved1
 *     @reserved1.setter
 *     def reserved1(self, reserved1):             # <<<<<<<<<<<<<<
 *         _creserved1 = utils.HelperInputVoidPtr(reserved1)
 *         self._ptr[0].reserved1 = <void*><void_ptr>_creserved1.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved1); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved1) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved1));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, PyObject *__pyx_v_reserved1) {
  PyObject *__pyx_v__creserved1 = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3488, 0, __PYX_ERR(0, 3488, __pyx_L1_error));

  /* "cuda/cuda.pyx":3489
 *     @reserved1.setter
 *     def reserved1(self, reserved1):
 *         _creserved1 = utils.HelperInputVoidPtr(reserved1)             # <<<<<<<<<<<<<<
 *         self._ptr[0].reserved1 = <void*><void_ptr>_creserved1.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_reserved1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__creserved1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3490
 *     def reserved1(self, reserved1):
 *         _creserved1 = utils.HelperInputVoidPtr(reserved1)
 *         self._ptr[0].reserved1 = <void*><void_ptr>_creserved1.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def dstPitch(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__creserved1, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3490, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).reserved1 = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3488
 *         return <void_ptr>self._ptr[0].reserved1
 *     @reserved1.setter
 *     def reserved1(self, reserved1):             # <<<<<<<<<<<<<<
 *         _creserved1 = utils.HelperInputVoidPtr(reserved1)
 *         self._ptr[0].reserved1 = <void*><void_ptr>_creserved1.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.reserved1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__creserved1);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3492
 *         self._ptr[0].reserved1 = <void*><void_ptr>_creserved1.cptr
 *     @property
 *     def dstPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3492, 0, __PYX_ERR(0, 3492, __pyx_L1_error));

  /* "cuda/cuda.pyx":3493
 *     @property
 *     def dstPitch(self):
 *         return self._ptr[0].dstPitch             # <<<<<<<<<<<<<<
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3492
 *         self._ptr[0].reserved1 = <void*><void_ptr>_creserved1.cptr
 *     @property
 *     def dstPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3495
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstPitch = dstPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstPitch) {
  size_t __pyx_v_dstPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstPitch); {
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(__pyx_arg_dstPitch); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3495, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_dstPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3495, 0, __PYX_ERR(0, 3495, __pyx_L1_error));

  /* "cuda/cuda.pyx":3497
 *     def dstPitch(self, size_t dstPitch):
 *         pass
 *         self._ptr[0].dstPitch = dstPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def dstHeight(self):
 */
  (__pyx_v_self->_ptr[0]).dstPitch = __pyx_v_dstPitch;

  /* "cuda/cuda.pyx":3495
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstPitch = dstPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3499
 *         self._ptr[0].dstPitch = dstPitch
 *     @property
 *     def dstHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3499, 0, __PYX_ERR(0, 3499, __pyx_L1_error));

  /* "cuda/cuda.pyx":3500
 *     @property
 *     def dstHeight(self):
 *         return self._ptr[0].dstHeight             # <<<<<<<<<<<<<<
 *     @dstHeight.setter
 *     def dstHeight(self, size_t dstHeight):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3499
 *         self._ptr[0].dstPitch = dstPitch
 *     @property
 *     def dstHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3502
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 *     def dstHeight(self, size_t dstHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstHeight = dstHeight
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstHeight); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstHeight) {
  size_t __pyx_v_dstHeight;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstHeight); {
    __pyx_v_dstHeight = __Pyx_PyInt_As_size_t(__pyx_arg_dstHeight); if (unlikely((__pyx_v_dstHeight == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3502, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_dstHeight));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_dstHeight) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3502, 0, __PYX_ERR(0, 3502, __pyx_L1_error));

  /* "cuda/cuda.pyx":3504
 *     def dstHeight(self, size_t dstHeight):
 *         pass
 *         self._ptr[0].dstHeight = dstHeight             # <<<<<<<<<<<<<<
 *     @property
 *     def WidthInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).dstHeight = __pyx_v_dstHeight;

  /* "cuda/cuda.pyx":3502
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 *     def dstHeight(self, size_t dstHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstHeight = dstHeight
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.dstHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3506
 *         self._ptr[0].dstHeight = dstHeight
 *     @property
 *     def WidthInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3506, 0, __PYX_ERR(0, 3506, __pyx_L1_error));

  /* "cuda/cuda.pyx":3507
 *     @property
 *     def WidthInBytes(self):
 *         return self._ptr[0].WidthInBytes             # <<<<<<<<<<<<<<
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).WidthInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3506
 *         self._ptr[0].dstHeight = dstHeight
 *     @property
 *     def WidthInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.WidthInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3509
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_WidthInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_WidthInBytes) {
  size_t __pyx_v_WidthInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_WidthInBytes); {
    __pyx_v_WidthInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_WidthInBytes); if (unlikely((__pyx_v_WidthInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3509, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.WidthInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_WidthInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_WidthInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3509, 0, __PYX_ERR(0, 3509, __pyx_L1_error));

  /* "cuda/cuda.pyx":3511
 *     def WidthInBytes(self, size_t WidthInBytes):
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def Height(self):
 */
  (__pyx_v_self->_ptr[0]).WidthInBytes = __pyx_v_WidthInBytes;

  /* "cuda/cuda.pyx":3509
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.WidthInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3513
 *         self._ptr[0].WidthInBytes = WidthInBytes
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3513, 0, __PYX_ERR(0, 3513, __pyx_L1_error));

  /* "cuda/cuda.pyx":3514
 *     @property
 *     def Height(self):
 *         return self._ptr[0].Height             # <<<<<<<<<<<<<<
 *     @Height.setter
 *     def Height(self, size_t Height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3513
 *         self._ptr[0].WidthInBytes = WidthInBytes
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.Height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3516
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height) {
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Height); {
    __pyx_v_Height = __Pyx_PyInt_As_size_t(__pyx_arg_Height); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3516, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_Height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_Height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3516, 0, __PYX_ERR(0, 3516, __pyx_L1_error));

  /* "cuda/cuda.pyx":3518
 *     def Height(self, size_t Height):
 *         pass
 *         self._ptr[0].Height = Height             # <<<<<<<<<<<<<<
 *     @property
 *     def Depth(self):
 */
  (__pyx_v_self->_ptr[0]).Height = __pyx_v_Height;

  /* "cuda/cuda.pyx":3516
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3520
 *         self._ptr[0].Height = Height
 *     @property
 *     def Depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Depth
 *     @Depth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3520, 0, __PYX_ERR(0, 3520, __pyx_L1_error));

  /* "cuda/cuda.pyx":3521
 *     @property
 *     def Depth(self):
 *         return self._ptr[0].Depth             # <<<<<<<<<<<<<<
 *     @Depth.setter
 *     def Depth(self, size_t Depth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3520
 *         self._ptr[0].Height = Height
 *     @property
 *     def Depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Depth
 *     @Depth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.Depth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3523
 *         return self._ptr[0].Depth
 *     @Depth.setter
 *     def Depth(self, size_t Depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Depth = Depth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Depth); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Depth) {
  size_t __pyx_v_Depth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Depth); {
    __pyx_v_Depth = __Pyx_PyInt_As_size_t(__pyx_arg_Depth); if (unlikely((__pyx_v_Depth == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3523, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.Depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((size_t)__pyx_v_Depth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, size_t __pyx_v_Depth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3523, 0, __PYX_ERR(0, 3523, __pyx_L1_error));

  /* "cuda/cuda.pyx":3525
 *     def Depth(self, size_t Depth):
 *         pass
 *         self._ptr[0].Depth = Depth             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_MEMCPY3D_PEER_st:
 */
  (__pyx_v_self->_ptr[0]).Depth = __pyx_v_Depth;

  /* "cuda/cuda.pyx":3523
 *         return self._ptr[0].Depth
 *     @Depth.setter
 *     def Depth(self, size_t Depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Depth = Depth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.Depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_10__reduce_cython__[] = "CUDA_MEMCPY3D_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY3D_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__202)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__203, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_12__setstate_cython__[] = "CUDA_MEMCPY3D_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY3D_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUDA_MEMCPY3D_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__204)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__205, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3592
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3592, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3592, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3592, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 3592, 0, __PYX_ERR(0, 3592, __pyx_L1_error));

  /* "cuda/cuda.pyx":3593
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3594
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":3595
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st))));

    /* "cuda/cuda.pyx":3596
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":3597
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3597, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3597, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 3597, __pyx_L1_error)

      /* "cuda/cuda.pyx":3596
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":3593
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>calloc(1, sizeof(ccuda.CUDA_MEMCPY3D_PEER_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":3599
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":3600
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":3592
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3601
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 3601, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3601, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3601, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 3601, 0, __PYX_ERR(0, 3601, __pyx_L1_error));

  /* "cuda/cuda.pyx":3602
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)             # <<<<<<<<<<<<<<
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._srcContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].srcContext)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcDevice))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3602, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_srcDevice);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcDevice));
  __pyx_v_self->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3603
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)             # <<<<<<<<<<<<<<
 *         self._srcContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].srcContext)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcArray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_srcArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcArray));
  __pyx_v_self->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3604
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._srcContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].srcContext)             # <<<<<<<<<<<<<<
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).srcContext))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3604, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_srcContext);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_srcContext));
  __pyx_v_self->_srcContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3605
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 *         self._srcContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].srcContext)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)             # <<<<<<<<<<<<<<
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstDevice))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3605, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_dstDevice);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstDevice));
  __pyx_v_self->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3606
 *         self._srcContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].srcContext)
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)             # <<<<<<<<<<<<<<
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstArray))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 3606, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_dstArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstArray));
  __pyx_v_self->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":3607
 *         self._dstDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dstDevice)
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dstContext))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 3607, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_dstContext);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dstContext));
  __pyx_v_self->_dstContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3601
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEMCPY3D_PEER_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._srcDevice = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].srcDevice)
 *         self._srcArray = CUarray(_ptr=<void_ptr>&self._ptr[0].srcArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3608
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 3608, 0, __PYX_ERR(0, 3608, __pyx_L1_error));

  /* "cuda/cuda.pyx":3609
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3610
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":3609
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":3608
 *         self._dstArray = CUarray(_ptr=<void_ptr>&self._ptr[0].dstArray)
 *         self._dstContext = CUcontext(_ptr=<void_ptr>&self._ptr[0].dstContext)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":3612
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6getPtr[] = "CUDA_MEMCPY3D_PEER_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__206)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 3612, 0, __PYX_ERR(0, 3612, __pyx_L1_error));

  /* "cuda/cuda.pyx":3613
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3612
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3614
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 3614, 0, __PYX_ERR(0, 3614, __pyx_L1_error));

  /* "cuda/cuda.pyx":3615
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3616
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3616, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3617
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcXInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcXInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3618
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3619
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcZ : ' + str(self.srcZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3620
 *             str_list += ['srcY : ' + str(self.srcY)]
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcLOD_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcLOD, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3621
 *             str_list += ['srcZ : ' + str(self.srcZ)]
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcMemoryType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcMemoryType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3622
 *             str_list += ['srcLOD : ' + str(self.srcLOD)]
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcHost_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3622, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3622, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_srcHost, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3622, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3622, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3622, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3623
 *             str_list += ['srcMemoryType : ' + str(self.srcMemoryType)]
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['srcContext : ' + str(self.srcContext)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcDevice_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcDevice, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3624
 *             str_list += ['srcHost : ' + hex(self.srcHost)]
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcContext : ' + str(self.srcContext)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3624, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3624, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3624, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3624, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3624, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3625
 *             str_list += ['srcDevice : ' + str(self.srcDevice)]
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['srcContext : ' + str(self.srcContext)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcContext_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcContext, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3626
 *             str_list += ['srcArray : ' + str(self.srcArray)]
 *             str_list += ['srcContext : ' + str(self.srcContext)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3627
 *             str_list += ['srcContext : ' + str(self.srcContext)]
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_srcHeight_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_srcHeight, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3628
 *             str_list += ['srcPitch : ' + str(self.srcPitch)]
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstXInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstXInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3629
 *             str_list += ['srcHeight : ' + str(self.srcHeight)]
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3630
 *             str_list += ['dstXInBytes : ' + str(self.dstXInBytes)]
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstZ : ' + str(self.dstZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3631
 *             str_list += ['dstY : ' + str(self.dstY)]
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstLOD_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstLOD, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3632
 *             str_list += ['dstZ : ' + str(self.dstZ)]
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstMemoryType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstMemoryType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3633
 *             str_list += ['dstLOD : ' + str(self.dstLOD)]
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstHost_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_dstHost, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3634
 *             str_list += ['dstMemoryType : ' + str(self.dstMemoryType)]
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['dstContext : ' + str(self.dstContext)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstDevice_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstDevice, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3635
 *             str_list += ['dstHost : ' + hex(self.dstHost)]
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstContext : ' + str(self.dstContext)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3636
 *             str_list += ['dstDevice : ' + str(self.dstDevice)]
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['dstContext : ' + str(self.dstContext)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstContext_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstContext, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3637
 *             str_list += ['dstArray : ' + str(self.dstArray)]
 *             str_list += ['dstContext : ' + str(self.dstContext)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]             # <<<<<<<<<<<<<<
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstPitch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstPitch, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3638
 *             str_list += ['dstContext : ' + str(self.dstContext)]
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]             # <<<<<<<<<<<<<<
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dstHeight_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dstHeight, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3639
 *             str_list += ['dstPitch : ' + str(self.dstPitch)]
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_WidthInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_WidthInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3640
 *             str_list += ['dstHeight : ' + str(self.dstHeight)]
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]             # <<<<<<<<<<<<<<
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3641
 *             str_list += ['WidthInBytes : ' + str(self.WidthInBytes)]
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Depth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Depth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3642
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":3615
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['srcXInBytes : ' + str(self.srcXInBytes)]
 */
  }

  /* "cuda/cuda.pyx":3644
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":3614
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3647
 * 
 *     @property
 *     def srcXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3647, 0, __PYX_ERR(0, 3647, __pyx_L1_error));

  /* "cuda/cuda.pyx":3648
 *     @property
 *     def srcXInBytes(self):
 *         return self._ptr[0].srcXInBytes             # <<<<<<<<<<<<<<
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcXInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3647
 * 
 *     @property
 *     def srcXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcXInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3650
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcXInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcXInBytes) {
  size_t __pyx_v_srcXInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcXInBytes); {
    __pyx_v_srcXInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_srcXInBytes); if (unlikely((__pyx_v_srcXInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3650, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_srcXInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcXInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3650, 0, __PYX_ERR(0, 3650, __pyx_L1_error));

  /* "cuda/cuda.pyx":3652
 *     def srcXInBytes(self, size_t srcXInBytes):
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def srcY(self):
 */
  (__pyx_v_self->_ptr[0]).srcXInBytes = __pyx_v_srcXInBytes;

  /* "cuda/cuda.pyx":3650
 *         return self._ptr[0].srcXInBytes
 *     @srcXInBytes.setter
 *     def srcXInBytes(self, size_t srcXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcXInBytes = srcXInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3654
 *         self._ptr[0].srcXInBytes = srcXInBytes
 *     @property
 *     def srcY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcY
 *     @srcY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3654, 0, __PYX_ERR(0, 3654, __pyx_L1_error));

  /* "cuda/cuda.pyx":3655
 *     @property
 *     def srcY(self):
 *         return self._ptr[0].srcY             # <<<<<<<<<<<<<<
 *     @srcY.setter
 *     def srcY(self, size_t srcY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3654
 *         self._ptr[0].srcXInBytes = srcXInBytes
 *     @property
 *     def srcY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcY
 *     @srcY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3657
 *         return self._ptr[0].srcY
 *     @srcY.setter
 *     def srcY(self, size_t srcY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcY = srcY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcY); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcY) {
  size_t __pyx_v_srcY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcY); {
    __pyx_v_srcY = __Pyx_PyInt_As_size_t(__pyx_arg_srcY); if (unlikely((__pyx_v_srcY == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3657, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_srcY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3657, 0, __PYX_ERR(0, 3657, __pyx_L1_error));

  /* "cuda/cuda.pyx":3659
 *     def srcY(self, size_t srcY):
 *         pass
 *         self._ptr[0].srcY = srcY             # <<<<<<<<<<<<<<
 *     @property
 *     def srcZ(self):
 */
  (__pyx_v_self->_ptr[0]).srcY = __pyx_v_srcY;

  /* "cuda/cuda.pyx":3657
 *         return self._ptr[0].srcY
 *     @srcY.setter
 *     def srcY(self, size_t srcY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcY = srcY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3661
 *         self._ptr[0].srcY = srcY
 *     @property
 *     def srcZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3661, 0, __PYX_ERR(0, 3661, __pyx_L1_error));

  /* "cuda/cuda.pyx":3662
 *     @property
 *     def srcZ(self):
 *         return self._ptr[0].srcZ             # <<<<<<<<<<<<<<
 *     @srcZ.setter
 *     def srcZ(self, size_t srcZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3661
 *         self._ptr[0].srcY = srcY
 *     @property
 *     def srcZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3664
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 *     def srcZ(self, size_t srcZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcZ = srcZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcZ) {
  size_t __pyx_v_srcZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcZ); {
    __pyx_v_srcZ = __Pyx_PyInt_As_size_t(__pyx_arg_srcZ); if (unlikely((__pyx_v_srcZ == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3664, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_srcZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3664, 0, __PYX_ERR(0, 3664, __pyx_L1_error));

  /* "cuda/cuda.pyx":3666
 *     def srcZ(self, size_t srcZ):
 *         pass
 *         self._ptr[0].srcZ = srcZ             # <<<<<<<<<<<<<<
 *     @property
 *     def srcLOD(self):
 */
  (__pyx_v_self->_ptr[0]).srcZ = __pyx_v_srcZ;

  /* "cuda/cuda.pyx":3664
 *         return self._ptr[0].srcZ
 *     @srcZ.setter
 *     def srcZ(self, size_t srcZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcZ = srcZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3668
 *         self._ptr[0].srcZ = srcZ
 *     @property
 *     def srcLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3668, 0, __PYX_ERR(0, 3668, __pyx_L1_error));

  /* "cuda/cuda.pyx":3669
 *     @property
 *     def srcLOD(self):
 *         return self._ptr[0].srcLOD             # <<<<<<<<<<<<<<
 *     @srcLOD.setter
 *     def srcLOD(self, size_t srcLOD):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcLOD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3668
 *         self._ptr[0].srcZ = srcZ
 *     @property
 *     def srcLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcLOD.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3671
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 *     def srcLOD(self, size_t srcLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcLOD = srcLOD
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcLOD); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcLOD) {
  size_t __pyx_v_srcLOD;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcLOD); {
    __pyx_v_srcLOD = __Pyx_PyInt_As_size_t(__pyx_arg_srcLOD); if (unlikely((__pyx_v_srcLOD == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3671, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_srcLOD));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcLOD) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3671, 0, __PYX_ERR(0, 3671, __pyx_L1_error));

  /* "cuda/cuda.pyx":3673
 *     def srcLOD(self, size_t srcLOD):
 *         pass
 *         self._ptr[0].srcLOD = srcLOD             # <<<<<<<<<<<<<<
 *     @property
 *     def srcMemoryType(self):
 */
  (__pyx_v_self->_ptr[0]).srcLOD = __pyx_v_srcLOD;

  /* "cuda/cuda.pyx":3671
 *         return self._ptr[0].srcLOD
 *     @srcLOD.setter
 *     def srcLOD(self, size_t srcLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcLOD = srcLOD
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3675
 *         self._ptr[0].srcLOD = srcLOD
 *     @property
 *     def srcMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3675, 0, __PYX_ERR(0, 3675, __pyx_L1_error));

  /* "cuda/cuda.pyx":3676
 *     @property
 *     def srcMemoryType(self):
 *         return CUmemorytype(self._ptr[0].srcMemoryType)             # <<<<<<<<<<<<<<
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemorytype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum((__pyx_v_self->_ptr[0]).srcMemoryType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3675
 *         self._ptr[0].srcLOD = srcLOD
 *     @property
 *     def srcMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcMemoryType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3678
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcMemoryType); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcMemoryType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_srcMemoryType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "srcMemoryType"); __PYX_ERR(0, 3678, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((PyObject *)__pyx_v_srcMemoryType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_srcMemoryType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemorytype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3678, 0, __PYX_ERR(0, 3678, __pyx_L1_error));

  /* "cuda/cuda.pyx":3680
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def srcHost(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_srcMemoryType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3680, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).srcMemoryType = __pyx_t_2;

  /* "cuda/cuda.pyx":3678
 *         return CUmemorytype(self._ptr[0].srcMemoryType)
 *     @srcMemoryType.setter
 *     def srcMemoryType(self, srcMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcMemoryType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3682
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 *     @property
 *     def srcHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3682, 0, __PYX_ERR(0, 3682, __pyx_L1_error));

  /* "cuda/cuda.pyx":3683
 *     @property
 *     def srcHost(self):
 *         return <void_ptr>self._ptr[0].srcHost             # <<<<<<<<<<<<<<
 *     @srcHost.setter
 *     def srcHost(self, srcHost):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).srcHost)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3682
 *         self._ptr[0].srcMemoryType = srcMemoryType.value
 *     @property
 *     def srcHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcHost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3685
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 *     def srcHost(self, srcHost):             # <<<<<<<<<<<<<<
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcHost); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcHost) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((PyObject *)__pyx_v_srcHost));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_srcHost) {
  PyObject *__pyx_v__csrcHost = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3685, 0, __PYX_ERR(0, 3685, __pyx_L1_error));

  /* "cuda/cuda.pyx":3686
 *     @srcHost.setter
 *     def srcHost(self, srcHost):
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3687
 *     def srcHost(self, srcHost):
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def srcDevice(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).srcHost = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3685
 *         return <void_ptr>self._ptr[0].srcHost
 *     @srcHost.setter
 *     def srcHost(self, srcHost):             # <<<<<<<<<<<<<<
 *         _csrcHost = utils.HelperInputVoidPtr(srcHost)
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcHost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__csrcHost);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3689
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 *     def srcDevice(self):             # <<<<<<<<<<<<<<
 *         return self._srcDevice
 *     @srcDevice.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3689, 0, __PYX_ERR(0, 3689, __pyx_L1_error));

  /* "cuda/cuda.pyx":3690
 *     @property
 *     def srcDevice(self):
 *         return self._srcDevice             # <<<<<<<<<<<<<<
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcDevice));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcDevice);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3689
 *         self._ptr[0].srcHost = <void*><void_ptr>_csrcHost.cptr
 *     @property
 *     def srcDevice(self):             # <<<<<<<<<<<<<<
 *         return self._srcDevice
 *     @srcDevice.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcDevice.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3692
 *         return self._srcDevice
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcDevice); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcDevice) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "srcDevice", 0))) __PYX_ERR(0, 3692, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_srcDevice));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3692, 0, __PYX_ERR(0, 3692, __pyx_L1_error));

  /* "cuda/cuda.pyx":3694
 *     def srcDevice(self, srcDevice : CUdeviceptr):
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def srcArray(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcDevice), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3694, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3694, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcDevice->_ptr[0]);
  }
  (__pyx_v_self->_srcDevice->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3692
 *         return self._srcDevice
 *     @srcDevice.setter
 *     def srcDevice(self, srcDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcDevice.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3696
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 *     @property
 *     def srcArray(self):             # <<<<<<<<<<<<<<
 *         return self._srcArray
 *     @srcArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3696, 0, __PYX_ERR(0, 3696, __pyx_L1_error));

  /* "cuda/cuda.pyx":3697
 *     @property
 *     def srcArray(self):
 *         return self._srcArray             # <<<<<<<<<<<<<<
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3696
 *         self._srcDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if srcDevice == None else (<CUdeviceptr>srcDevice)._ptr[0]
 *     @property
 *     def srcArray(self):             # <<<<<<<<<<<<<<
 *         return self._srcArray
 *     @srcArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3699
 *         return self._srcArray
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "srcArray", 0))) __PYX_ERR(0, 3699, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_srcArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3699, 0, __PYX_ERR(0, 3699, __pyx_L1_error));

  /* "cuda/cuda.pyx":3701
 *     def srcArray(self, srcArray : CUarray):
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def srcContext(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3701, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcArray->_ptr[0]);
  }
  (__pyx_v_self->_srcArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3699
 *         return self._srcArray
 *     @srcArray.setter
 *     def srcArray(self, srcArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3703
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 *     @property
 *     def srcContext(self):             # <<<<<<<<<<<<<<
 *         return self._srcContext
 *     @srcContext.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3703, 0, __PYX_ERR(0, 3703, __pyx_L1_error));

  /* "cuda/cuda.pyx":3704
 *     @property
 *     def srcContext(self):
 *         return self._srcContext             # <<<<<<<<<<<<<<
 *     @srcContext.setter
 *     def srcContext(self, srcContext : CUcontext):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_srcContext));
  __pyx_r = ((PyObject *)__pyx_v_self->_srcContext);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3703
 *         self._srcArray._ptr[0] = <ccuda.CUarray> NULL if srcArray == None else (<CUarray>srcArray)._ptr[0]
 *     @property
 *     def srcContext(self):             # <<<<<<<<<<<<<<
 *         return self._srcContext
 *     @srcContext.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcContext.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3706
 *         return self._srcContext
 *     @srcContext.setter
 *     def srcContext(self, srcContext : CUcontext):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcContext._ptr[0] = <ccuda.CUcontext> NULL if srcContext == None else (<CUcontext>srcContext)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcContext); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_srcContext) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcContext), __pyx_ptype_4cuda_4cuda_CUcontext, 1, "srcContext", 0))) __PYX_ERR(0, 3706, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_srcContext));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUcontext __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3706, 0, __PYX_ERR(0, 3706, __pyx_L1_error));

  /* "cuda/cuda.pyx":3708
 *     def srcContext(self, srcContext : CUcontext):
 *         pass
 *         self._srcContext._ptr[0] = <ccuda.CUcontext> NULL if srcContext == None else (<CUcontext>srcContext)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def srcPitch(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_srcContext), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3708, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3708, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUcontext)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_srcContext->_ptr[0]);
  }
  (__pyx_v_self->_srcContext->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3706
 *         return self._srcContext
 *     @srcContext.setter
 *     def srcContext(self, srcContext : CUcontext):             # <<<<<<<<<<<<<<
 *         pass
 *         self._srcContext._ptr[0] = <ccuda.CUcontext> NULL if srcContext == None else (<CUcontext>srcContext)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcContext.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3710
 *         self._srcContext._ptr[0] = <ccuda.CUcontext> NULL if srcContext == None else (<CUcontext>srcContext)._ptr[0]
 *     @property
 *     def srcPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3710, 0, __PYX_ERR(0, 3710, __pyx_L1_error));

  /* "cuda/cuda.pyx":3711
 *     @property
 *     def srcPitch(self):
 *         return self._ptr[0].srcPitch             # <<<<<<<<<<<<<<
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3710
 *         self._srcContext._ptr[0] = <ccuda.CUcontext> NULL if srcContext == None else (<CUcontext>srcContext)._ptr[0]
 *     @property
 *     def srcPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3713
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcPitch = srcPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcPitch) {
  size_t __pyx_v_srcPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcPitch); {
    __pyx_v_srcPitch = __Pyx_PyInt_As_size_t(__pyx_arg_srcPitch); if (unlikely((__pyx_v_srcPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3713, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_srcPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3713, 0, __PYX_ERR(0, 3713, __pyx_L1_error));

  /* "cuda/cuda.pyx":3715
 *     def srcPitch(self, size_t srcPitch):
 *         pass
 *         self._ptr[0].srcPitch = srcPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def srcHeight(self):
 */
  (__pyx_v_self->_ptr[0]).srcPitch = __pyx_v_srcPitch;

  /* "cuda/cuda.pyx":3713
 *         return self._ptr[0].srcPitch
 *     @srcPitch.setter
 *     def srcPitch(self, size_t srcPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcPitch = srcPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3717
 *         self._ptr[0].srcPitch = srcPitch
 *     @property
 *     def srcHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3717, 0, __PYX_ERR(0, 3717, __pyx_L1_error));

  /* "cuda/cuda.pyx":3718
 *     @property
 *     def srcHeight(self):
 *         return self._ptr[0].srcHeight             # <<<<<<<<<<<<<<
 *     @srcHeight.setter
 *     def srcHeight(self, size_t srcHeight):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).srcHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3717
 *         self._ptr[0].srcPitch = srcPitch
 *     @property
 *     def srcHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3720
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 *     def srcHeight(self, size_t srcHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcHeight = srcHeight
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcHeight); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_srcHeight) {
  size_t __pyx_v_srcHeight;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_srcHeight); {
    __pyx_v_srcHeight = __Pyx_PyInt_As_size_t(__pyx_arg_srcHeight); if (unlikely((__pyx_v_srcHeight == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3720, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_srcHeight));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_srcHeight) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3720, 0, __PYX_ERR(0, 3720, __pyx_L1_error));

  /* "cuda/cuda.pyx":3722
 *     def srcHeight(self, size_t srcHeight):
 *         pass
 *         self._ptr[0].srcHeight = srcHeight             # <<<<<<<<<<<<<<
 *     @property
 *     def dstXInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).srcHeight = __pyx_v_srcHeight;

  /* "cuda/cuda.pyx":3720
 *         return self._ptr[0].srcHeight
 *     @srcHeight.setter
 *     def srcHeight(self, size_t srcHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].srcHeight = srcHeight
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.srcHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3724
 *         self._ptr[0].srcHeight = srcHeight
 *     @property
 *     def dstXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3724, 0, __PYX_ERR(0, 3724, __pyx_L1_error));

  /* "cuda/cuda.pyx":3725
 *     @property
 *     def dstXInBytes(self):
 *         return self._ptr[0].dstXInBytes             # <<<<<<<<<<<<<<
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstXInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3724
 *         self._ptr[0].srcHeight = srcHeight
 *     @property
 *     def dstXInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstXInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3727
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstXInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstXInBytes) {
  size_t __pyx_v_dstXInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstXInBytes); {
    __pyx_v_dstXInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_dstXInBytes); if (unlikely((__pyx_v_dstXInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3727, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_dstXInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstXInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3727, 0, __PYX_ERR(0, 3727, __pyx_L1_error));

  /* "cuda/cuda.pyx":3729
 *     def dstXInBytes(self, size_t dstXInBytes):
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def dstY(self):
 */
  (__pyx_v_self->_ptr[0]).dstXInBytes = __pyx_v_dstXInBytes;

  /* "cuda/cuda.pyx":3727
 *         return self._ptr[0].dstXInBytes
 *     @dstXInBytes.setter
 *     def dstXInBytes(self, size_t dstXInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstXInBytes = dstXInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstXInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3731
 *         self._ptr[0].dstXInBytes = dstXInBytes
 *     @property
 *     def dstY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstY
 *     @dstY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3731, 0, __PYX_ERR(0, 3731, __pyx_L1_error));

  /* "cuda/cuda.pyx":3732
 *     @property
 *     def dstY(self):
 *         return self._ptr[0].dstY             # <<<<<<<<<<<<<<
 *     @dstY.setter
 *     def dstY(self, size_t dstY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3731
 *         self._ptr[0].dstXInBytes = dstXInBytes
 *     @property
 *     def dstY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstY
 *     @dstY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3734
 *         return self._ptr[0].dstY
 *     @dstY.setter
 *     def dstY(self, size_t dstY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstY = dstY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstY); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstY) {
  size_t __pyx_v_dstY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstY); {
    __pyx_v_dstY = __Pyx_PyInt_As_size_t(__pyx_arg_dstY); if (unlikely((__pyx_v_dstY == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3734, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_dstY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3734, 0, __PYX_ERR(0, 3734, __pyx_L1_error));

  /* "cuda/cuda.pyx":3736
 *     def dstY(self, size_t dstY):
 *         pass
 *         self._ptr[0].dstY = dstY             # <<<<<<<<<<<<<<
 *     @property
 *     def dstZ(self):
 */
  (__pyx_v_self->_ptr[0]).dstY = __pyx_v_dstY;

  /* "cuda/cuda.pyx":3734
 *         return self._ptr[0].dstY
 *     @dstY.setter
 *     def dstY(self, size_t dstY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstY = dstY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3738
 *         self._ptr[0].dstY = dstY
 *     @property
 *     def dstZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3738, 0, __PYX_ERR(0, 3738, __pyx_L1_error));

  /* "cuda/cuda.pyx":3739
 *     @property
 *     def dstZ(self):
 *         return self._ptr[0].dstZ             # <<<<<<<<<<<<<<
 *     @dstZ.setter
 *     def dstZ(self, size_t dstZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3738
 *         self._ptr[0].dstY = dstY
 *     @property
 *     def dstZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3741
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 *     def dstZ(self, size_t dstZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstZ = dstZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstZ) {
  size_t __pyx_v_dstZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstZ); {
    __pyx_v_dstZ = __Pyx_PyInt_As_size_t(__pyx_arg_dstZ); if (unlikely((__pyx_v_dstZ == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3741, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_dstZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3741, 0, __PYX_ERR(0, 3741, __pyx_L1_error));

  /* "cuda/cuda.pyx":3743
 *     def dstZ(self, size_t dstZ):
 *         pass
 *         self._ptr[0].dstZ = dstZ             # <<<<<<<<<<<<<<
 *     @property
 *     def dstLOD(self):
 */
  (__pyx_v_self->_ptr[0]).dstZ = __pyx_v_dstZ;

  /* "cuda/cuda.pyx":3741
 *         return self._ptr[0].dstZ
 *     @dstZ.setter
 *     def dstZ(self, size_t dstZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstZ = dstZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3745
 *         self._ptr[0].dstZ = dstZ
 *     @property
 *     def dstLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3745, 0, __PYX_ERR(0, 3745, __pyx_L1_error));

  /* "cuda/cuda.pyx":3746
 *     @property
 *     def dstLOD(self):
 *         return self._ptr[0].dstLOD             # <<<<<<<<<<<<<<
 *     @dstLOD.setter
 *     def dstLOD(self, size_t dstLOD):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstLOD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3745
 *         self._ptr[0].dstZ = dstZ
 *     @property
 *     def dstLOD(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstLOD.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3748
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 *     def dstLOD(self, size_t dstLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstLOD = dstLOD
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstLOD); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstLOD) {
  size_t __pyx_v_dstLOD;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstLOD); {
    __pyx_v_dstLOD = __Pyx_PyInt_As_size_t(__pyx_arg_dstLOD); if (unlikely((__pyx_v_dstLOD == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3748, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_dstLOD));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstLOD) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3748, 0, __PYX_ERR(0, 3748, __pyx_L1_error));

  /* "cuda/cuda.pyx":3750
 *     def dstLOD(self, size_t dstLOD):
 *         pass
 *         self._ptr[0].dstLOD = dstLOD             # <<<<<<<<<<<<<<
 *     @property
 *     def dstMemoryType(self):
 */
  (__pyx_v_self->_ptr[0]).dstLOD = __pyx_v_dstLOD;

  /* "cuda/cuda.pyx":3748
 *         return self._ptr[0].dstLOD
 *     @dstLOD.setter
 *     def dstLOD(self, size_t dstLOD):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstLOD = dstLOD
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstLOD.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3752
 *         self._ptr[0].dstLOD = dstLOD
 *     @property
 *     def dstMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3752, 0, __PYX_ERR(0, 3752, __pyx_L1_error));

  /* "cuda/cuda.pyx":3753
 *     @property
 *     def dstMemoryType(self):
 *         return CUmemorytype(self._ptr[0].dstMemoryType)             # <<<<<<<<<<<<<<
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemorytype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum((__pyx_v_self->_ptr[0]).dstMemoryType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3752
 *         self._ptr[0].dstLOD = dstLOD
 *     @property
 *     def dstMemoryType(self):             # <<<<<<<<<<<<<<
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstMemoryType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3755
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstMemoryType); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstMemoryType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_dstMemoryType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dstMemoryType"); __PYX_ERR(0, 3755, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((PyObject *)__pyx_v_dstMemoryType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_dstMemoryType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemorytype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3755, 0, __PYX_ERR(0, 3755, __pyx_L1_error));

  /* "cuda/cuda.pyx":3757
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def dstHost(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dstMemoryType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).dstMemoryType = __pyx_t_2;

  /* "cuda/cuda.pyx":3755
 *         return CUmemorytype(self._ptr[0].dstMemoryType)
 *     @dstMemoryType.setter
 *     def dstMemoryType(self, dstMemoryType not None : CUmemorytype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstMemoryType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3759
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 *     @property
 *     def dstHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3759, 0, __PYX_ERR(0, 3759, __pyx_L1_error));

  /* "cuda/cuda.pyx":3760
 *     @property
 *     def dstHost(self):
 *         return <void_ptr>self._ptr[0].dstHost             # <<<<<<<<<<<<<<
 *     @dstHost.setter
 *     def dstHost(self, dstHost):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).dstHost)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3759
 *         self._ptr[0].dstMemoryType = dstMemoryType.value
 *     @property
 *     def dstHost(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstHost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3762
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 *     def dstHost(self, dstHost):             # <<<<<<<<<<<<<<
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstHost); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstHost) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((PyObject *)__pyx_v_dstHost));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, PyObject *__pyx_v_dstHost) {
  PyObject *__pyx_v__cdstHost = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3762, 0, __PYX_ERR(0, 3762, __pyx_L1_error));

  /* "cuda/cuda.pyx":3763
 *     @dstHost.setter
 *     def dstHost(self, dstHost):
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3764
 *     def dstHost(self, dstHost):
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def dstDevice(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3764, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).dstHost = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":3762
 *         return <void_ptr>self._ptr[0].dstHost
 *     @dstHost.setter
 *     def dstHost(self, dstHost):             # <<<<<<<<<<<<<<
 *         _cdstHost = utils.HelperInputVoidPtr(dstHost)
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstHost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cdstHost);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3766
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 *     def dstDevice(self):             # <<<<<<<<<<<<<<
 *         return self._dstDevice
 *     @dstDevice.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3766, 0, __PYX_ERR(0, 3766, __pyx_L1_error));

  /* "cuda/cuda.pyx":3767
 *     @property
 *     def dstDevice(self):
 *         return self._dstDevice             # <<<<<<<<<<<<<<
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstDevice));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstDevice);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3766
 *         self._ptr[0].dstHost = <void*><void_ptr>_cdstHost.cptr
 *     @property
 *     def dstDevice(self):             # <<<<<<<<<<<<<<
 *         return self._dstDevice
 *     @dstDevice.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstDevice.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3769
 *         return self._dstDevice
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstDevice); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstDevice) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "dstDevice", 0))) __PYX_ERR(0, 3769, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dstDevice));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3769, 0, __PYX_ERR(0, 3769, __pyx_L1_error));

  /* "cuda/cuda.pyx":3771
 *     def dstDevice(self, dstDevice : CUdeviceptr):
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def dstArray(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstDevice), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3771, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstDevice->_ptr[0]);
  }
  (__pyx_v_self->_dstDevice->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3769
 *         return self._dstDevice
 *     @dstDevice.setter
 *     def dstDevice(self, dstDevice : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstDevice.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3773
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 *     @property
 *     def dstArray(self):             # <<<<<<<<<<<<<<
 *         return self._dstArray
 *     @dstArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3773, 0, __PYX_ERR(0, 3773, __pyx_L1_error));

  /* "cuda/cuda.pyx":3774
 *     @property
 *     def dstArray(self):
 *         return self._dstArray             # <<<<<<<<<<<<<<
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3773
 *         self._dstDevice._ptr[0] = <ccuda.CUdeviceptr> NULL if dstDevice == None else (<CUdeviceptr>dstDevice)._ptr[0]
 *     @property
 *     def dstArray(self):             # <<<<<<<<<<<<<<
 *         return self._dstArray
 *     @dstArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3776
 *         return self._dstArray
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "dstArray", 0))) __PYX_ERR(0, 3776, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_dstArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3776, 0, __PYX_ERR(0, 3776, __pyx_L1_error));

  /* "cuda/cuda.pyx":3778
 *     def dstArray(self, dstArray : CUarray):
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def dstContext(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3778, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstArray->_ptr[0]);
  }
  (__pyx_v_self->_dstArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3776
 *         return self._dstArray
 *     @dstArray.setter
 *     def dstArray(self, dstArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3780
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 *     @property
 *     def dstContext(self):             # <<<<<<<<<<<<<<
 *         return self._dstContext
 *     @dstContext.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3780, 0, __PYX_ERR(0, 3780, __pyx_L1_error));

  /* "cuda/cuda.pyx":3781
 *     @property
 *     def dstContext(self):
 *         return self._dstContext             # <<<<<<<<<<<<<<
 *     @dstContext.setter
 *     def dstContext(self, dstContext : CUcontext):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dstContext));
  __pyx_r = ((PyObject *)__pyx_v_self->_dstContext);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3780
 *         self._dstArray._ptr[0] = <ccuda.CUarray> NULL if dstArray == None else (<CUarray>dstArray)._ptr[0]
 *     @property
 *     def dstContext(self):             # <<<<<<<<<<<<<<
 *         return self._dstContext
 *     @dstContext.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstContext.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3783
 *         return self._dstContext
 *     @dstContext.setter
 *     def dstContext(self, dstContext : CUcontext):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstContext._ptr[0] = <ccuda.CUcontext> NULL if dstContext == None else (<CUcontext>dstContext)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstContext); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dstContext) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstContext), __pyx_ptype_4cuda_4cuda_CUcontext, 1, "dstContext", 0))) __PYX_ERR(0, 3783, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_dstContext));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUcontext __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3783, 0, __PYX_ERR(0, 3783, __pyx_L1_error));

  /* "cuda/cuda.pyx":3785
 *     def dstContext(self, dstContext : CUcontext):
 *         pass
 *         self._dstContext._ptr[0] = <ccuda.CUcontext> NULL if dstContext == None else (<CUcontext>dstContext)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def dstPitch(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dstContext), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3785, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3785, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUcontext)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dstContext->_ptr[0]);
  }
  (__pyx_v_self->_dstContext->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":3783
 *         return self._dstContext
 *     @dstContext.setter
 *     def dstContext(self, dstContext : CUcontext):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dstContext._ptr[0] = <ccuda.CUcontext> NULL if dstContext == None else (<CUcontext>dstContext)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstContext.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3787
 *         self._dstContext._ptr[0] = <ccuda.CUcontext> NULL if dstContext == None else (<CUcontext>dstContext)._ptr[0]
 *     @property
 *     def dstPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3787, 0, __PYX_ERR(0, 3787, __pyx_L1_error));

  /* "cuda/cuda.pyx":3788
 *     @property
 *     def dstPitch(self):
 *         return self._ptr[0].dstPitch             # <<<<<<<<<<<<<<
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstPitch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3787
 *         self._dstContext._ptr[0] = <ccuda.CUcontext> NULL if dstContext == None else (<CUcontext>dstContext)._ptr[0]
 *     @property
 *     def dstPitch(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstPitch.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3790
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstPitch = dstPitch
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstPitch); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstPitch) {
  size_t __pyx_v_dstPitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstPitch); {
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(__pyx_arg_dstPitch); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3790, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_dstPitch));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstPitch) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3790, 0, __PYX_ERR(0, 3790, __pyx_L1_error));

  /* "cuda/cuda.pyx":3792
 *     def dstPitch(self, size_t dstPitch):
 *         pass
 *         self._ptr[0].dstPitch = dstPitch             # <<<<<<<<<<<<<<
 *     @property
 *     def dstHeight(self):
 */
  (__pyx_v_self->_ptr[0]).dstPitch = __pyx_v_dstPitch;

  /* "cuda/cuda.pyx":3790
 *         return self._ptr[0].dstPitch
 *     @dstPitch.setter
 *     def dstPitch(self, size_t dstPitch):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstPitch = dstPitch
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstPitch.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3794
 *         self._ptr[0].dstPitch = dstPitch
 *     @property
 *     def dstHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3794, 0, __PYX_ERR(0, 3794, __pyx_L1_error));

  /* "cuda/cuda.pyx":3795
 *     @property
 *     def dstHeight(self):
 *         return self._ptr[0].dstHeight             # <<<<<<<<<<<<<<
 *     @dstHeight.setter
 *     def dstHeight(self, size_t dstHeight):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).dstHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3794
 *         self._ptr[0].dstPitch = dstPitch
 *     @property
 *     def dstHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3797
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 *     def dstHeight(self, size_t dstHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstHeight = dstHeight
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstHeight); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_dstHeight) {
  size_t __pyx_v_dstHeight;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_dstHeight); {
    __pyx_v_dstHeight = __Pyx_PyInt_As_size_t(__pyx_arg_dstHeight); if (unlikely((__pyx_v_dstHeight == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3797, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_dstHeight));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_dstHeight) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3797, 0, __PYX_ERR(0, 3797, __pyx_L1_error));

  /* "cuda/cuda.pyx":3799
 *     def dstHeight(self, size_t dstHeight):
 *         pass
 *         self._ptr[0].dstHeight = dstHeight             # <<<<<<<<<<<<<<
 *     @property
 *     def WidthInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).dstHeight = __pyx_v_dstHeight;

  /* "cuda/cuda.pyx":3797
 *         return self._ptr[0].dstHeight
 *     @dstHeight.setter
 *     def dstHeight(self, size_t dstHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].dstHeight = dstHeight
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.dstHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3801
 *         self._ptr[0].dstHeight = dstHeight
 *     @property
 *     def WidthInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3801, 0, __PYX_ERR(0, 3801, __pyx_L1_error));

  /* "cuda/cuda.pyx":3802
 *     @property
 *     def WidthInBytes(self):
 *         return self._ptr[0].WidthInBytes             # <<<<<<<<<<<<<<
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).WidthInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3801
 *         self._ptr[0].dstHeight = dstHeight
 *     @property
 *     def WidthInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.WidthInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3804
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_WidthInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_WidthInBytes) {
  size_t __pyx_v_WidthInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_WidthInBytes); {
    __pyx_v_WidthInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_WidthInBytes); if (unlikely((__pyx_v_WidthInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3804, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.WidthInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_WidthInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_WidthInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3804, 0, __PYX_ERR(0, 3804, __pyx_L1_error));

  /* "cuda/cuda.pyx":3806
 *     def WidthInBytes(self, size_t WidthInBytes):
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def Height(self):
 */
  (__pyx_v_self->_ptr[0]).WidthInBytes = __pyx_v_WidthInBytes;

  /* "cuda/cuda.pyx":3804
 *         return self._ptr[0].WidthInBytes
 *     @WidthInBytes.setter
 *     def WidthInBytes(self, size_t WidthInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].WidthInBytes = WidthInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.WidthInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3808
 *         self._ptr[0].WidthInBytes = WidthInBytes
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3808, 0, __PYX_ERR(0, 3808, __pyx_L1_error));

  /* "cuda/cuda.pyx":3809
 *     @property
 *     def Height(self):
 *         return self._ptr[0].Height             # <<<<<<<<<<<<<<
 *     @Height.setter
 *     def Height(self, size_t Height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3808
 *         self._ptr[0].WidthInBytes = WidthInBytes
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.Height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3811
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height) {
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Height); {
    __pyx_v_Height = __Pyx_PyInt_As_size_t(__pyx_arg_Height); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3811, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_Height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_Height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3811, 0, __PYX_ERR(0, 3811, __pyx_L1_error));

  /* "cuda/cuda.pyx":3813
 *     def Height(self, size_t Height):
 *         pass
 *         self._ptr[0].Height = Height             # <<<<<<<<<<<<<<
 *     @property
 *     def Depth(self):
 */
  (__pyx_v_self->_ptr[0]).Height = __pyx_v_Height;

  /* "cuda/cuda.pyx":3811
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3815
 *         self._ptr[0].Height = Height
 *     @property
 *     def Depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Depth
 *     @Depth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3815, 0, __PYX_ERR(0, 3815, __pyx_L1_error));

  /* "cuda/cuda.pyx":3816
 *     @property
 *     def Depth(self):
 *         return self._ptr[0].Depth             # <<<<<<<<<<<<<<
 *     @Depth.setter
 *     def Depth(self, size_t Depth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3815
 *         self._ptr[0].Height = Height
 *     @property
 *     def Depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Depth
 *     @Depth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.Depth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3818
 *         return self._ptr[0].Depth
 *     @Depth.setter
 *     def Depth(self, size_t Depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Depth = Depth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Depth); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Depth) {
  size_t __pyx_v_Depth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Depth); {
    __pyx_v_Depth = __Pyx_PyInt_As_size_t(__pyx_arg_Depth); if (unlikely((__pyx_v_Depth == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3818, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.Depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((size_t)__pyx_v_Depth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, size_t __pyx_v_Depth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3818, 0, __PYX_ERR(0, 3818, __pyx_L1_error));

  /* "cuda/cuda.pyx":3820
 *     def Depth(self, size_t Depth):
 *         pass
 *         self._ptr[0].Depth = Depth             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_ARRAY_DESCRIPTOR_st:
 */
  (__pyx_v_self->_ptr[0]).Depth = __pyx_v_Depth;

  /* "cuda/cuda.pyx":3818
 *         return self._ptr[0].Depth
 *     @Depth.setter
 *     def Depth(self, size_t Depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Depth = Depth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.Depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10__reduce_cython__[] = "CUDA_MEMCPY3D_PEER_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__207)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__208, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12__setstate_cython__[] = "CUDA_MEMCPY3D_PEER_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__209)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__210, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEMCPY3D_PEER_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3843
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3843, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3843, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3843, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 3843, 0, __PYX_ERR(0, 3843, __pyx_L1_error));

  /* "cuda/cuda.pyx":3844
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3845
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":3846
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st))));

    /* "cuda/cuda.pyx":3847
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":3848
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 3848, __pyx_L1_error)

      /* "cuda/cuda.pyx":3847
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":3844
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":3850
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":3851
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":3843
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3852
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY_DESCRIPTOR_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 3852, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3852, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3852, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 3852, 0, __PYX_ERR(0, 3852, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3854
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 3854, 0, __PYX_ERR(0, 3854, __pyx_L1_error));

  /* "cuda/cuda.pyx":3855
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3856
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":3855
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":3854
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":3858
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6getPtr[] = "CUDA_ARRAY_DESCRIPTOR_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__211)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 3858, 0, __PYX_ERR(0, 3858, __pyx_L1_error));

  /* "cuda/cuda.pyx":3859
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3858
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3860
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 3860, 0, __PYX_ERR(0, 3860, __pyx_L1_error));

  /* "cuda/cuda.pyx":3861
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3862
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['Width : ' + str(self.Width)]
 *             str_list += ['Height : ' + str(self.Height)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3862, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3863
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]             # <<<<<<<<<<<<<<
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Format : ' + str(self.Format)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3863, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3863, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Width, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3863, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3863, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3863, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3864
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]
 *             str_list += ['Height : ' + str(self.Height)]             # <<<<<<<<<<<<<<
 *             str_list += ['Format : ' + str(self.Format)]
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3865
 *             str_list += ['Width : ' + str(self.Width)]
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Format : ' + str(self.Format)]             # <<<<<<<<<<<<<<
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3865, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3865, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Format, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3865, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3865, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3865, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3866
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Format : ' + str(self.Format)]
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_NumChannels_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_NumChannels, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3867
 *             str_list += ['Format : ' + str(self.Format)]
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3867, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":3861
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]
 */
  }

  /* "cuda/cuda.pyx":3869
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":3860
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3872
 * 
 *     @property
 *     def Width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Width
 *     @Width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3872, 0, __PYX_ERR(0, 3872, __pyx_L1_error));

  /* "cuda/cuda.pyx":3873
 *     @property
 *     def Width(self):
 *         return self._ptr[0].Width             # <<<<<<<<<<<<<<
 *     @Width.setter
 *     def Width(self, size_t Width):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Width); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3872
 * 
 *     @property
 *     def Width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Width
 *     @Width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3875
 *         return self._ptr[0].Width
 *     @Width.setter
 *     def Width(self, size_t Width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Width = Width
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Width); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Width) {
  size_t __pyx_v_Width;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Width); {
    __pyx_v_Width = __Pyx_PyInt_As_size_t(__pyx_arg_Width); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3875, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), ((size_t)__pyx_v_Width));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Width) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3875, 0, __PYX_ERR(0, 3875, __pyx_L1_error));

  /* "cuda/cuda.pyx":3877
 *     def Width(self, size_t Width):
 *         pass
 *         self._ptr[0].Width = Width             # <<<<<<<<<<<<<<
 *     @property
 *     def Height(self):
 */
  (__pyx_v_self->_ptr[0]).Width = __pyx_v_Width;

  /* "cuda/cuda.pyx":3875
 *         return self._ptr[0].Width
 *     @Width.setter
 *     def Width(self, size_t Width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Width = Width
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3879
 *         self._ptr[0].Width = Width
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3879, 0, __PYX_ERR(0, 3879, __pyx_L1_error));

  /* "cuda/cuda.pyx":3880
 *     @property
 *     def Height(self):
 *         return self._ptr[0].Height             # <<<<<<<<<<<<<<
 *     @Height.setter
 *     def Height(self, size_t Height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3879
 *         self._ptr[0].Width = Width
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3882
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height) {
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Height); {
    __pyx_v_Height = __Pyx_PyInt_As_size_t(__pyx_arg_Height); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3882, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), ((size_t)__pyx_v_Height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3882, 0, __PYX_ERR(0, 3882, __pyx_L1_error));

  /* "cuda/cuda.pyx":3884
 *     def Height(self, size_t Height):
 *         pass
 *         self._ptr[0].Height = Height             # <<<<<<<<<<<<<<
 *     @property
 *     def Format(self):
 */
  (__pyx_v_self->_ptr[0]).Height = __pyx_v_Height;

  /* "cuda/cuda.pyx":3882
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3886
 *         self._ptr[0].Height = Height
 *     @property
 *     def Format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3886, 0, __PYX_ERR(0, 3886, __pyx_L1_error));

  /* "cuda/cuda.pyx":3887
 *     @property
 *     def Format(self):
 *         return CUarray_format(self._ptr[0].Format)             # <<<<<<<<<<<<<<
 *     @Format.setter
 *     def Format(self, Format not None : CUarray_format):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum((__pyx_v_self->_ptr[0]).Format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3886
 *         self._ptr[0].Height = Height
 *     @property
 *     def Format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Format.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3889
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 *     def Format(self, Format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Format = Format.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_Format); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_Format) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_Format) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "Format"); __PYX_ERR(0, 3889, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), ((PyObject *)__pyx_v_Format));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, PyObject *__pyx_v_Format) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3889, 0, __PYX_ERR(0, 3889, __pyx_L1_error));

  /* "cuda/cuda.pyx":3891
 *     def Format(self, Format not None : CUarray_format):
 *         pass
 *         self._ptr[0].Format = Format.value             # <<<<<<<<<<<<<<
 *     @property
 *     def NumChannels(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Format, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3891, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).Format = __pyx_t_2;

  /* "cuda/cuda.pyx":3889
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 *     def Format(self, Format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Format = Format.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.Format.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3893
 *         self._ptr[0].Format = Format.value
 *     @property
 *     def NumChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3893, 0, __PYX_ERR(0, 3893, __pyx_L1_error));

  /* "cuda/cuda.pyx":3894
 *     @property
 *     def NumChannels(self):
 *         return self._ptr[0].NumChannels             # <<<<<<<<<<<<<<
 *     @NumChannels.setter
 *     def NumChannels(self, unsigned int NumChannels):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).NumChannels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3893
 *         self._ptr[0].Format = Format.value
 *     @property
 *     def NumChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.NumChannels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3896
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 *     def NumChannels(self, unsigned int NumChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].NumChannels = NumChannels
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_NumChannels); /*proto*/
static int __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_NumChannels) {
  unsigned int __pyx_v_NumChannels;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_NumChannels); {
    __pyx_v_NumChannels = __Pyx_PyInt_As_unsigned_int(__pyx_arg_NumChannels); if (unlikely((__pyx_v_NumChannels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3896, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.NumChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), ((unsigned int)__pyx_v_NumChannels));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, unsigned int __pyx_v_NumChannels) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3896, 0, __PYX_ERR(0, 3896, __pyx_L1_error));

  /* "cuda/cuda.pyx":3898
 *     def NumChannels(self, unsigned int NumChannels):
 *         pass
 *         self._ptr[0].NumChannels = NumChannels             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_ARRAY3D_DESCRIPTOR_st:
 */
  (__pyx_v_self->_ptr[0]).NumChannels = __pyx_v_NumChannels;

  /* "cuda/cuda.pyx":3896
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 *     def NumChannels(self, unsigned int NumChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].NumChannels = NumChannels
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.NumChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_10__reduce_cython__[] = "CUDA_ARRAY_DESCRIPTOR_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__212)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__213, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_12__setstate_cython__[] = "CUDA_ARRAY_DESCRIPTOR_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__214)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__215, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3925
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3925, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3925, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3925, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 3925, 0, __PYX_ERR(0, 3925, __pyx_L1_error));

  /* "cuda/cuda.pyx":3926
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3927
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":3928
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st))));

    /* "cuda/cuda.pyx":3929
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":3930
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3930, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3930, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3930, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3930, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 3930, __pyx_L1_error)

      /* "cuda/cuda.pyx":3929
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":3926
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":3932
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":3933
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":3925
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3934
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY3D_DESCRIPTOR_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 3934, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 3934, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3934, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 3934, 0, __PYX_ERR(0, 3934, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3936
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 3936, 0, __PYX_ERR(0, 3936, __pyx_L1_error));

  /* "cuda/cuda.pyx":3937
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3938
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":3937
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":3936
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":3940
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6getPtr[] = "CUDA_ARRAY3D_DESCRIPTOR_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__216)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 3940, 0, __PYX_ERR(0, 3940, __pyx_L1_error));

  /* "cuda/cuda.pyx":3941
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3940
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3942
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 3942, 0, __PYX_ERR(0, 3942, __pyx_L1_error));

  /* "cuda/cuda.pyx":3943
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":3944
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['Width : ' + str(self.Width)]
 *             str_list += ['Height : ' + str(self.Height)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3945
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]             # <<<<<<<<<<<<<<
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Width, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3946
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]
 *             str_list += ['Height : ' + str(self.Height)]             # <<<<<<<<<<<<<<
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             str_list += ['Format : ' + str(self.Format)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3947
 *             str_list += ['Width : ' + str(self.Width)]
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]             # <<<<<<<<<<<<<<
 *             str_list += ['Format : ' + str(self.Format)]
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Depth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3947, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3947, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Depth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3947, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3947, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3947, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3948
 *             str_list += ['Height : ' + str(self.Height)]
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             str_list += ['Format : ' + str(self.Format)]             # <<<<<<<<<<<<<<
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 *             str_list += ['Flags : ' + str(self.Flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Format, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3949
 *             str_list += ['Depth : ' + str(self.Depth)]
 *             str_list += ['Format : ' + str(self.Format)]
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]             # <<<<<<<<<<<<<<
 *             str_list += ['Flags : ' + str(self.Flags)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_NumChannels_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_NumChannels, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3950
 *             str_list += ['Format : ' + str(self.Format)]
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 *             str_list += ['Flags : ' + str(self.Flags)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":3951
 *             str_list += ['NumChannels : ' + str(self.NumChannels)]
 *             str_list += ['Flags : ' + str(self.Flags)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3951, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":3943
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['Width : ' + str(self.Width)]
 */
  }

  /* "cuda/cuda.pyx":3953
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":3942
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3956
 * 
 *     @property
 *     def Width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Width
 *     @Width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3956, 0, __PYX_ERR(0, 3956, __pyx_L1_error));

  /* "cuda/cuda.pyx":3957
 *     @property
 *     def Width(self):
 *         return self._ptr[0].Width             # <<<<<<<<<<<<<<
 *     @Width.setter
 *     def Width(self, size_t Width):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Width); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3956
 * 
 *     @property
 *     def Width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Width
 *     @Width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3959
 *         return self._ptr[0].Width
 *     @Width.setter
 *     def Width(self, size_t Width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Width = Width
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Width); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Width) {
  size_t __pyx_v_Width;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Width); {
    __pyx_v_Width = __Pyx_PyInt_As_size_t(__pyx_arg_Width); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3959, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((size_t)__pyx_v_Width));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Width) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3959, 0, __PYX_ERR(0, 3959, __pyx_L1_error));

  /* "cuda/cuda.pyx":3961
 *     def Width(self, size_t Width):
 *         pass
 *         self._ptr[0].Width = Width             # <<<<<<<<<<<<<<
 *     @property
 *     def Height(self):
 */
  (__pyx_v_self->_ptr[0]).Width = __pyx_v_Width;

  /* "cuda/cuda.pyx":3959
 *         return self._ptr[0].Width
 *     @Width.setter
 *     def Width(self, size_t Width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Width = Width
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3963
 *         self._ptr[0].Width = Width
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3963, 0, __PYX_ERR(0, 3963, __pyx_L1_error));

  /* "cuda/cuda.pyx":3964
 *     @property
 *     def Height(self):
 *         return self._ptr[0].Height             # <<<<<<<<<<<<<<
 *     @Height.setter
 *     def Height(self, size_t Height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3963
 *         self._ptr[0].Width = Width
 *     @property
 *     def Height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Height
 *     @Height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3966
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Height) {
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Height); {
    __pyx_v_Height = __Pyx_PyInt_As_size_t(__pyx_arg_Height); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3966, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((size_t)__pyx_v_Height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3966, 0, __PYX_ERR(0, 3966, __pyx_L1_error));

  /* "cuda/cuda.pyx":3968
 *     def Height(self, size_t Height):
 *         pass
 *         self._ptr[0].Height = Height             # <<<<<<<<<<<<<<
 *     @property
 *     def Depth(self):
 */
  (__pyx_v_self->_ptr[0]).Height = __pyx_v_Height;

  /* "cuda/cuda.pyx":3966
 *         return self._ptr[0].Height
 *     @Height.setter
 *     def Height(self, size_t Height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Height = Height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3970
 *         self._ptr[0].Height = Height
 *     @property
 *     def Depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Depth
 *     @Depth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3970, 0, __PYX_ERR(0, 3970, __pyx_L1_error));

  /* "cuda/cuda.pyx":3971
 *     @property
 *     def Depth(self):
 *         return self._ptr[0].Depth             # <<<<<<<<<<<<<<
 *     @Depth.setter
 *     def Depth(self, size_t Depth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).Depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3970
 *         self._ptr[0].Height = Height
 *     @property
 *     def Depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Depth
 *     @Depth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Depth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3973
 *         return self._ptr[0].Depth
 *     @Depth.setter
 *     def Depth(self, size_t Depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Depth = Depth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Depth); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Depth) {
  size_t __pyx_v_Depth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Depth); {
    __pyx_v_Depth = __Pyx_PyInt_As_size_t(__pyx_arg_Depth); if (unlikely((__pyx_v_Depth == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3973, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((size_t)__pyx_v_Depth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, size_t __pyx_v_Depth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3973, 0, __PYX_ERR(0, 3973, __pyx_L1_error));

  /* "cuda/cuda.pyx":3975
 *     def Depth(self, size_t Depth):
 *         pass
 *         self._ptr[0].Depth = Depth             # <<<<<<<<<<<<<<
 *     @property
 *     def Format(self):
 */
  (__pyx_v_self->_ptr[0]).Depth = __pyx_v_Depth;

  /* "cuda/cuda.pyx":3973
 *         return self._ptr[0].Depth
 *     @Depth.setter
 *     def Depth(self, size_t Depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Depth = Depth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3977
 *         self._ptr[0].Depth = Depth
 *     @property
 *     def Format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3977, 0, __PYX_ERR(0, 3977, __pyx_L1_error));

  /* "cuda/cuda.pyx":3978
 *     @property
 *     def Format(self):
 *         return CUarray_format(self._ptr[0].Format)             # <<<<<<<<<<<<<<
 *     @Format.setter
 *     def Format(self, Format not None : CUarray_format):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum((__pyx_v_self->_ptr[0]).Format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3977
 *         self._ptr[0].Depth = Depth
 *     @property
 *     def Format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Format.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3980
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 *     def Format(self, Format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Format = Format.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_Format); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_Format) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_Format) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "Format"); __PYX_ERR(0, 3980, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((PyObject *)__pyx_v_Format));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, PyObject *__pyx_v_Format) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3980, 0, __PYX_ERR(0, 3980, __pyx_L1_error));

  /* "cuda/cuda.pyx":3982
 *     def Format(self, Format not None : CUarray_format):
 *         pass
 *         self._ptr[0].Format = Format.value             # <<<<<<<<<<<<<<
 *     @property
 *     def NumChannels(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Format, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).Format = __pyx_t_2;

  /* "cuda/cuda.pyx":3980
 *         return CUarray_format(self._ptr[0].Format)
 *     @Format.setter
 *     def Format(self, Format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Format = Format.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Format.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3984
 *         self._ptr[0].Format = Format.value
 *     @property
 *     def NumChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3984, 0, __PYX_ERR(0, 3984, __pyx_L1_error));

  /* "cuda/cuda.pyx":3985
 *     @property
 *     def NumChannels(self):
 *         return self._ptr[0].NumChannels             # <<<<<<<<<<<<<<
 *     @NumChannels.setter
 *     def NumChannels(self, unsigned int NumChannels):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).NumChannels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3984
 *         self._ptr[0].Format = Format.value
 *     @property
 *     def NumChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.NumChannels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3987
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 *     def NumChannels(self, unsigned int NumChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].NumChannels = NumChannels
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_NumChannels); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_NumChannels) {
  unsigned int __pyx_v_NumChannels;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_NumChannels); {
    __pyx_v_NumChannels = __Pyx_PyInt_As_unsigned_int(__pyx_arg_NumChannels); if (unlikely((__pyx_v_NumChannels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3987, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.NumChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((unsigned int)__pyx_v_NumChannels));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, unsigned int __pyx_v_NumChannels) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3987, 0, __PYX_ERR(0, 3987, __pyx_L1_error));

  /* "cuda/cuda.pyx":3989
 *     def NumChannels(self, unsigned int NumChannels):
 *         pass
 *         self._ptr[0].NumChannels = NumChannels             # <<<<<<<<<<<<<<
 *     @property
 *     def Flags(self):
 */
  (__pyx_v_self->_ptr[0]).NumChannels = __pyx_v_NumChannels;

  /* "cuda/cuda.pyx":3987
 *         return self._ptr[0].NumChannels
 *     @NumChannels.setter
 *     def NumChannels(self, unsigned int NumChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].NumChannels = NumChannels
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.NumChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3991
 *         self._ptr[0].NumChannels = NumChannels
 *     @property
 *     def Flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Flags
 *     @Flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 3991, 0, __PYX_ERR(0, 3991, __pyx_L1_error));

  /* "cuda/cuda.pyx":3992
 *     @property
 *     def Flags(self):
 *         return self._ptr[0].Flags             # <<<<<<<<<<<<<<
 *     @Flags.setter
 *     def Flags(self, unsigned int Flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).Flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":3991
 *         self._ptr[0].NumChannels = NumChannels
 *     @property
 *     def Flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].Flags
 *     @Flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":3994
 *         return self._ptr[0].Flags
 *     @Flags.setter
 *     def Flags(self, unsigned int Flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Flags = Flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_Flags) {
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_Flags); {
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_Flags); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3994, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((unsigned int)__pyx_v_Flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, unsigned int __pyx_v_Flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 3994, 0, __PYX_ERR(0, 3994, __pyx_L1_error));

  /* "cuda/cuda.pyx":3996
 *     def Flags(self, unsigned int Flags):
 *         pass
 *         self._ptr[0].Flags = Flags             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s:
 */
  (__pyx_v_self->_ptr[0]).Flags = __pyx_v_Flags;

  /* "cuda/cuda.pyx":3994
 *         return self._ptr[0].Flags
 *     @Flags.setter
 *     def Flags(self, unsigned int Flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].Flags = Flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.Flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_10__reduce_cython__[] = "CUDA_ARRAY3D_DESCRIPTOR_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__217)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__218, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_12__setstate_cython__[] = "CUDA_ARRAY3D_DESCRIPTOR_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__219)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__220, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4016
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4016, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4016, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4016, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4016, 0, __PYX_ERR(0, 4016, __pyx_L1_error));

  /* "cuda/cuda.pyx":4017
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4016
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4018
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4018, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4018, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4018, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4018, 0, __PYX_ERR(0, 4018, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4020
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_4getPtr[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__221)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4020, 0, __PYX_ERR(0, 4020, __pyx_L1_error));

  /* "cuda/cuda.pyx":4021
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4020
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4022
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4022, 0, __PYX_ERR(0, 4022, __pyx_L1_error));

  /* "cuda/cuda.pyx":4023
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['width : ' + str(self.width)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4024
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4025
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['width : ' + str(self.width)]             # <<<<<<<<<<<<<<
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['depth : ' + str(self.depth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_width, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4026
 *             str_list = []
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]             # <<<<<<<<<<<<<<
 *             str_list += ['depth : ' + str(self.depth)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4027
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['depth : ' + str(self.depth)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_depth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_depth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4028
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['depth : ' + str(self.depth)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4023
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['width : ' + str(self.width)]
 */
  }

  /* "cuda/cuda.pyx":4030
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4022
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4033
 * 
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].tileExtent.width
 *     @width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width___get__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4033, 0, __PYX_ERR(0, 4033, __pyx_L1_error));

  /* "cuda/cuda.pyx":4034
 *     @property
 *     def width(self):
 *         return self._ptr[0].tileExtent.width             # <<<<<<<<<<<<<<
 *     @width.setter
 *     def width(self, unsigned int width):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).tileExtent.width); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4033
 * 
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].tileExtent.width
 *     @width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4036
 *         return self._ptr[0].tileExtent.width
 *     @width.setter
 *     def width(self, unsigned int width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].tileExtent.width = width
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width); /*proto*/
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width) {
  unsigned int __pyx_v_width;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_width); {
    __pyx_v_width = __Pyx_PyInt_As_unsigned_int(__pyx_arg_width); if (unlikely((__pyx_v_width == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4036, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self), ((unsigned int)__pyx_v_width));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, unsigned int __pyx_v_width) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4036, 0, __PYX_ERR(0, 4036, __pyx_L1_error));

  /* "cuda/cuda.pyx":4038
 *     def width(self, unsigned int width):
 *         pass
 *         self._ptr[0].tileExtent.width = width             # <<<<<<<<<<<<<<
 *     @property
 *     def height(self):
 */
  (__pyx_v_self->_ptr[0]).tileExtent.width = __pyx_v_width;

  /* "cuda/cuda.pyx":4036
 *         return self._ptr[0].tileExtent.width
 *     @width.setter
 *     def width(self, unsigned int width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].tileExtent.width = width
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4040
 *         self._ptr[0].tileExtent.width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].tileExtent.height
 *     @height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height___get__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4040, 0, __PYX_ERR(0, 4040, __pyx_L1_error));

  /* "cuda/cuda.pyx":4041
 *     @property
 *     def height(self):
 *         return self._ptr[0].tileExtent.height             # <<<<<<<<<<<<<<
 *     @height.setter
 *     def height(self, unsigned int height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).tileExtent.height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4040
 *         self._ptr[0].tileExtent.width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].tileExtent.height
 *     @height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4043
 *         return self._ptr[0].tileExtent.height
 *     @height.setter
 *     def height(self, unsigned int height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].tileExtent.height = height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height); /*proto*/
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height) {
  unsigned int __pyx_v_height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_height); {
    __pyx_v_height = __Pyx_PyInt_As_unsigned_int(__pyx_arg_height); if (unlikely((__pyx_v_height == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4043, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self), ((unsigned int)__pyx_v_height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, unsigned int __pyx_v_height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4043, 0, __PYX_ERR(0, 4043, __pyx_L1_error));

  /* "cuda/cuda.pyx":4045
 *     def height(self, unsigned int height):
 *         pass
 *         self._ptr[0].tileExtent.height = height             # <<<<<<<<<<<<<<
 *     @property
 *     def depth(self):
 */
  (__pyx_v_self->_ptr[0]).tileExtent.height = __pyx_v_height;

  /* "cuda/cuda.pyx":4043
 *         return self._ptr[0].tileExtent.height
 *     @height.setter
 *     def height(self, unsigned int height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].tileExtent.height = height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4047
 *         self._ptr[0].tileExtent.height = height
 *     @property
 *     def depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].tileExtent.depth
 *     @depth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth___get__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4047, 0, __PYX_ERR(0, 4047, __pyx_L1_error));

  /* "cuda/cuda.pyx":4048
 *     @property
 *     def depth(self):
 *         return self._ptr[0].tileExtent.depth             # <<<<<<<<<<<<<<
 *     @depth.setter
 *     def depth(self, unsigned int depth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).tileExtent.depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4047
 *         self._ptr[0].tileExtent.height = height
 *     @property
 *     def depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].tileExtent.depth
 *     @depth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.depth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4050
 *         return self._ptr[0].tileExtent.depth
 *     @depth.setter
 *     def depth(self, unsigned int depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].tileExtent.depth = depth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_depth); /*proto*/
static int __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_depth) {
  unsigned int __pyx_v_depth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_depth); {
    __pyx_v_depth = __Pyx_PyInt_As_unsigned_int(__pyx_arg_depth); if (unlikely((__pyx_v_depth == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4050, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self), ((unsigned int)__pyx_v_depth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, unsigned int __pyx_v_depth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4050, 0, __PYX_ERR(0, 4050, __pyx_L1_error));

  /* "cuda/cuda.pyx":4052
 *     def depth(self, unsigned int depth):
 *         pass
 *         self._ptr[0].tileExtent.depth = depth             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_ARRAY_SPARSE_PROPERTIES_st:
 */
  (__pyx_v_self->_ptr[0]).tileExtent.depth = __pyx_v_depth;

  /* "cuda/cuda.pyx":4050
 *         return self._ptr[0].tileExtent.depth
 *     @depth.setter
 *     def depth(self, unsigned int depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].tileExtent.depth = depth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_8__reduce_cython__[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__222)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__223, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_10__setstate_cython__[] = "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__224)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__225, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4078
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4078, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4078, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4078, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4078, 0, __PYX_ERR(0, 4078, __pyx_L1_error));

  /* "cuda/cuda.pyx":4079
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4080
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":4081
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st))));

    /* "cuda/cuda.pyx":4082
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":4083
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4083, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4083, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4083, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4083, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 4083, __pyx_L1_error)

      /* "cuda/cuda.pyx":4082
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":4079
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>calloc(1, sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":4085
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":4086
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":4078
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4087
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4087, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4087, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4087, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4087, 0, __PYX_ERR(0, 4087, __pyx_L1_error));

  /* "cuda/cuda.pyx":4088
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4088, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_tileExtent);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_tileExtent));
  __pyx_v_self->_tileExtent = ((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4087
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4089
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 4089, 0, __PYX_ERR(0, 4089, __pyx_L1_error));

  /* "cuda/cuda.pyx":4090
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4091
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":4090
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":4089
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._tileExtent = _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":4093
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_6getPtr[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__226)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4093, 0, __PYX_ERR(0, 4093, __pyx_L1_error));

  /* "cuda/cuda.pyx":4094
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4093
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4095
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_8genexpr7__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4095, 0, __PYX_ERR(0, 4095, __pyx_L1_error));

  /* "cuda/cuda.pyx":4096
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['tileExtent :\n' + '\n'.join(['    ' + line for line in str(self.tileExtent).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4097
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['tileExtent :\n' + '\n'.join(['    ' + line for line in str(self.tileExtent).splitlines()])]
 *             str_list += ['miptailFirstLevel : ' + str(self.miptailFirstLevel)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4097, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4098
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['tileExtent :\n' + '\n'.join(['    ' + line for line in str(self.tileExtent).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['miptailFirstLevel : ' + str(self.miptailFirstLevel)]
 *             str_list += ['miptailSize : ' + str(self.miptailSize)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4098, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_tileExtent_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4098, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4098, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4098, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4098, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4098, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr7__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr7__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4098, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4098, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr7__pyx_v_line); __pyx_8genexpr7__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr7__pyx_v_line); __pyx_8genexpr7__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_tileExtent, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4099
 *             str_list = []
 *             str_list += ['tileExtent :\n' + '\n'.join(['    ' + line for line in str(self.tileExtent).splitlines()])]
 *             str_list += ['miptailFirstLevel : ' + str(self.miptailFirstLevel)]             # <<<<<<<<<<<<<<
 *             str_list += ['miptailSize : ' + str(self.miptailSize)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_miptailFirstLevel_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_miptailFirstLevel, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4100
 *             str_list += ['tileExtent :\n' + '\n'.join(['    ' + line for line in str(self.tileExtent).splitlines()])]
 *             str_list += ['miptailFirstLevel : ' + str(self.miptailFirstLevel)]
 *             str_list += ['miptailSize : ' + str(self.miptailSize)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_miptailSize_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_miptailSize, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4101
 *             str_list += ['miptailFirstLevel : ' + str(self.miptailFirstLevel)]
 *             str_list += ['miptailSize : ' + str(self.miptailSize)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4102
 *             str_list += ['miptailSize : ' + str(self.miptailSize)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4103
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4096
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['tileExtent :\n' + '\n'.join(['    ' + line for line in str(self.tileExtent).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":4105
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4095
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_8genexpr7__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4108
 * 
 *     @property
 *     def tileExtent(self):             # <<<<<<<<<<<<<<
 *         return self._tileExtent
 *     @tileExtent.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4108, 0, __PYX_ERR(0, 4108, __pyx_L1_error));

  /* "cuda/cuda.pyx":4109
 *     @property
 *     def tileExtent(self):
 *         return self._tileExtent             # <<<<<<<<<<<<<<
 *     @tileExtent.setter
 *     def tileExtent(self, tileExtent not None : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_tileExtent));
  __pyx_r = ((PyObject *)__pyx_v_self->_tileExtent);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4108
 * 
 *     @property
 *     def tileExtent(self):             # <<<<<<<<<<<<<<
 *         return self._tileExtent
 *     @tileExtent.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.tileExtent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4111
 *         return self._tileExtent
 *     @tileExtent.setter
 *     def tileExtent(self, tileExtent not None : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(tileExtent):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_tileExtent); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_tileExtent) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tileExtent), __pyx_ptype_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s, 0, "tileExtent", 0))) __PYX_ERR(0, 4111, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)__pyx_v_tileExtent));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *__pyx_v_tileExtent) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4111, 0, __PYX_ERR(0, 4111, __pyx_L1_error));

  /* "cuda/cuda.pyx":4113
 *     def tileExtent(self, tileExtent not None : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s):
 *         pass
 *         for _attr in dir(tileExtent):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_tileExtent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4113, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4113, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4113, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4113, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4114
 *         pass
 *         for _attr in dir(tileExtent):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4114, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4115
 *         for _attr in dir(tileExtent):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._tileExtent, _attr, getattr(tileExtent, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4114
 *         pass
 *         for _attr in dir(tileExtent):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4116
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._tileExtent, _attr, getattr(tileExtent, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4117
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._tileExtent, _attr, getattr(tileExtent, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def miptailFirstLevel(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_tileExtent);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_tileExtent), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4117, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4116
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._tileExtent, _attr, getattr(tileExtent, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":4113
 *     def tileExtent(self, tileExtent not None : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s):
 *         pass
 *         for _attr in dir(tileExtent):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4111
 *         return self._tileExtent
 *     @tileExtent.setter
 *     def tileExtent(self, tileExtent not None : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(tileExtent):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.tileExtent.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4119
 *                 setattr(self._tileExtent, _attr, getattr(tileExtent, _attr))
 *     @property
 *     def miptailFirstLevel(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].miptailFirstLevel
 *     @miptailFirstLevel.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4119, 0, __PYX_ERR(0, 4119, __pyx_L1_error));

  /* "cuda/cuda.pyx":4120
 *     @property
 *     def miptailFirstLevel(self):
 *         return self._ptr[0].miptailFirstLevel             # <<<<<<<<<<<<<<
 *     @miptailFirstLevel.setter
 *     def miptailFirstLevel(self, unsigned int miptailFirstLevel):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).miptailFirstLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4119
 *                 setattr(self._tileExtent, _attr, getattr(tileExtent, _attr))
 *     @property
 *     def miptailFirstLevel(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].miptailFirstLevel
 *     @miptailFirstLevel.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.miptailFirstLevel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4122
 *         return self._ptr[0].miptailFirstLevel
 *     @miptailFirstLevel.setter
 *     def miptailFirstLevel(self, unsigned int miptailFirstLevel):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].miptailFirstLevel = miptailFirstLevel
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_miptailFirstLevel); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_miptailFirstLevel) {
  unsigned int __pyx_v_miptailFirstLevel;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_miptailFirstLevel); {
    __pyx_v_miptailFirstLevel = __Pyx_PyInt_As_unsigned_int(__pyx_arg_miptailFirstLevel); if (unlikely((__pyx_v_miptailFirstLevel == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4122, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.miptailFirstLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), ((unsigned int)__pyx_v_miptailFirstLevel));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, unsigned int __pyx_v_miptailFirstLevel) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4122, 0, __PYX_ERR(0, 4122, __pyx_L1_error));

  /* "cuda/cuda.pyx":4124
 *     def miptailFirstLevel(self, unsigned int miptailFirstLevel):
 *         pass
 *         self._ptr[0].miptailFirstLevel = miptailFirstLevel             # <<<<<<<<<<<<<<
 *     @property
 *     def miptailSize(self):
 */
  (__pyx_v_self->_ptr[0]).miptailFirstLevel = __pyx_v_miptailFirstLevel;

  /* "cuda/cuda.pyx":4122
 *         return self._ptr[0].miptailFirstLevel
 *     @miptailFirstLevel.setter
 *     def miptailFirstLevel(self, unsigned int miptailFirstLevel):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].miptailFirstLevel = miptailFirstLevel
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.miptailFirstLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4126
 *         self._ptr[0].miptailFirstLevel = miptailFirstLevel
 *     @property
 *     def miptailSize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].miptailSize
 *     @miptailSize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4126, 0, __PYX_ERR(0, 4126, __pyx_L1_error));

  /* "cuda/cuda.pyx":4127
 *     @property
 *     def miptailSize(self):
 *         return self._ptr[0].miptailSize             # <<<<<<<<<<<<<<
 *     @miptailSize.setter
 *     def miptailSize(self, unsigned long long miptailSize):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).miptailSize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4126
 *         self._ptr[0].miptailFirstLevel = miptailFirstLevel
 *     @property
 *     def miptailSize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].miptailSize
 *     @miptailSize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.miptailSize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4129
 *         return self._ptr[0].miptailSize
 *     @miptailSize.setter
 *     def miptailSize(self, unsigned long long miptailSize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].miptailSize = miptailSize
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_miptailSize); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_miptailSize) {
  unsigned PY_LONG_LONG __pyx_v_miptailSize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_miptailSize); {
    __pyx_v_miptailSize = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_miptailSize); if (unlikely((__pyx_v_miptailSize == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4129, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.miptailSize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_miptailSize));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_miptailSize) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4129, 0, __PYX_ERR(0, 4129, __pyx_L1_error));

  /* "cuda/cuda.pyx":4131
 *     def miptailSize(self, unsigned long long miptailSize):
 *         pass
 *         self._ptr[0].miptailSize = miptailSize             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  (__pyx_v_self->_ptr[0]).miptailSize = __pyx_v_miptailSize;

  /* "cuda/cuda.pyx":4129
 *         return self._ptr[0].miptailSize
 *     @miptailSize.setter
 *     def miptailSize(self, unsigned long long miptailSize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].miptailSize = miptailSize
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.miptailSize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4133
 *         self._ptr[0].miptailSize = miptailSize
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4133, 0, __PYX_ERR(0, 4133, __pyx_L1_error));

  /* "cuda/cuda.pyx":4134
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4133
 *         self._ptr[0].miptailSize = miptailSize
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4136
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4136, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4136, 0, __PYX_ERR(0, 4136, __pyx_L1_error));

  /* "cuda/cuda.pyx":4138
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":4136
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4140
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4140, 0, __PYX_ERR(0, 4140, __pyx_L1_error));

  /* "cuda/cuda.pyx":4141
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4140
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4143
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[4];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4143, 0, __PYX_ERR(0, 4143, __pyx_L1_error));

  /* "cuda/cuda.pyx":4145
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 4) < 0)) __PYX_ERR(0, 4145, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (4));

  /* "cuda/cuda.pyx":4143
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10__reduce_cython__[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__227)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__228, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_12__setstate_cython__[] = "CUDA_ARRAY_SPARSE_PROPERTIES_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__229)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__230, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4161
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4161, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4161, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4161, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4161, 0, __PYX_ERR(0, 4161, __pyx_L1_error));

  /* "cuda/cuda.pyx":4162
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4161
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4163
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4163, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4163, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4163, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4163, 0, __PYX_ERR(0, 4163, __pyx_L1_error));

  /* "cuda/cuda.pyx":4164
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).res.array.hArray))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_hArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_hArray));
  __pyx_v_self->_hArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4163
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4165
 *     def __init__(self, void_ptr _ptr):
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_4getPtr[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__231)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4165, 0, __PYX_ERR(0, 4165, __pyx_L1_error));

  /* "cuda/cuda.pyx":4166
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4165
 *     def __init__(self, void_ptr _ptr):
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4167
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4167, 0, __PYX_ERR(0, 4167, __pyx_L1_error));

  /* "cuda/cuda.pyx":4168
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['hArray : ' + str(self.hArray)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4169
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['hArray : ' + str(self.hArray)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4170
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['hArray : ' + str(self.hArray)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_hArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4171
 *             str_list = []
 *             str_list += ['hArray : ' + str(self.hArray)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4168
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['hArray : ' + str(self.hArray)]
 */
  }

  /* "cuda/cuda.pyx":4173
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4167
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4176
 * 
 *     @property
 *     def hArray(self):             # <<<<<<<<<<<<<<
 *         return self._hArray
 *     @hArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4176, 0, __PYX_ERR(0, 4176, __pyx_L1_error));

  /* "cuda/cuda.pyx":4177
 *     @property
 *     def hArray(self):
 *         return self._hArray             # <<<<<<<<<<<<<<
 *     @hArray.setter
 *     def hArray(self, hArray : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_hArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_hArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4176
 * 
 *     @property
 *     def hArray(self):             # <<<<<<<<<<<<<<
 *         return self._hArray
 *     @hArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.hArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4179
 *         return self._hArray
 *     @hArray.setter
 *     def hArray(self, hArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._hArray._ptr[0] = <ccuda.CUarray> NULL if hArray == None else (<CUarray>hArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 1, "hArray", 0))) __PYX_ERR(0, 4179, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_hArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4179, 0, __PYX_ERR(0, 4179, __pyx_L1_error));

  /* "cuda/cuda.pyx":4181
 *     def hArray(self, hArray : CUarray):
 *         pass
 *         self._hArray._ptr[0] = <ccuda.CUarray> NULL if hArray == None else (<CUarray>hArray)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_hArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4181, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_hArray->_ptr[0]);
  }
  (__pyx_v_self->_hArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":4179
 *         return self._hArray
 *     @hArray.setter
 *     def hArray(self, hArray : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._hArray._ptr[0] = <ccuda.CUarray> NULL if hArray == None else (<CUarray>hArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.hArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_8__reduce_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__232)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__233, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_10__setstate_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__234)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__235, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4197
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4197, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4197, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4197, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4197, 0, __PYX_ERR(0, 4197, __pyx_L1_error));

  /* "cuda/cuda.pyx":4198
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4197
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4199
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4199, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4199, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4199, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4199, 0, __PYX_ERR(0, 4199, __pyx_L1_error));

  /* "cuda/cuda.pyx":4200
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).res.mipmap.hMipmappedArray))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_hMipmappedArray);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_hMipmappedArray));
  __pyx_v_self->_hMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4199
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4201
 *     def __init__(self, void_ptr _ptr):
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_4getPtr[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__236)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4201, 0, __PYX_ERR(0, 4201, __pyx_L1_error));

  /* "cuda/cuda.pyx":4202
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4201
 *     def __init__(self, void_ptr _ptr):
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4203
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4203, 0, __PYX_ERR(0, 4203, __pyx_L1_error));

  /* "cuda/cuda.pyx":4204
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['hMipmappedArray : ' + str(self.hMipmappedArray)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4205
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['hMipmappedArray : ' + str(self.hMipmappedArray)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4206
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['hMipmappedArray : ' + str(self.hMipmappedArray)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hMipmappedArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_hMipmappedArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4207
 *             str_list = []
 *             str_list += ['hMipmappedArray : ' + str(self.hMipmappedArray)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4204
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['hMipmappedArray : ' + str(self.hMipmappedArray)]
 */
  }

  /* "cuda/cuda.pyx":4209
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4203
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4212
 * 
 *     @property
 *     def hMipmappedArray(self):             # <<<<<<<<<<<<<<
 *         return self._hMipmappedArray
 *     @hMipmappedArray.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4212, 0, __PYX_ERR(0, 4212, __pyx_L1_error));

  /* "cuda/cuda.pyx":4213
 *     @property
 *     def hMipmappedArray(self):
 *         return self._hMipmappedArray             # <<<<<<<<<<<<<<
 *     @hMipmappedArray.setter
 *     def hMipmappedArray(self, hMipmappedArray : CUmipmappedArray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_hMipmappedArray));
  __pyx_r = ((PyObject *)__pyx_v_self->_hMipmappedArray);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4212
 * 
 *     @property
 *     def hMipmappedArray(self):             # <<<<<<<<<<<<<<
 *         return self._hMipmappedArray
 *     @hMipmappedArray.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.hMipmappedArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4215
 *         return self._hMipmappedArray
 *     @hMipmappedArray.setter
 *     def hMipmappedArray(self, hMipmappedArray : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._hMipmappedArray._ptr[0] = <ccuda.CUmipmappedArray> NULL if hMipmappedArray == None else (<CUmipmappedArray>hMipmappedArray)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hMipmappedArray); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hMipmappedArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hMipmappedArray), __pyx_ptype_4cuda_4cuda_CUmipmappedArray, 1, "hMipmappedArray", 0))) __PYX_ERR(0, 4215, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_hMipmappedArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUmipmappedArray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4215, 0, __PYX_ERR(0, 4215, __pyx_L1_error));

  /* "cuda/cuda.pyx":4217
 *     def hMipmappedArray(self, hMipmappedArray : CUmipmappedArray):
 *         pass
 *         self._hMipmappedArray._ptr[0] = <ccuda.CUmipmappedArray> NULL if hMipmappedArray == None else (<CUmipmappedArray>hMipmappedArray)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_hMipmappedArray), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUmipmappedArray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_hMipmappedArray->_ptr[0]);
  }
  (__pyx_v_self->_hMipmappedArray->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":4215
 *         return self._hMipmappedArray
 *     @hMipmappedArray.setter
 *     def hMipmappedArray(self, hMipmappedArray : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._hMipmappedArray._ptr[0] = <ccuda.CUmipmappedArray> NULL if hMipmappedArray == None else (<CUmipmappedArray>hMipmappedArray)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.hMipmappedArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_8__reduce_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__237)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__238, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_10__setstate_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__239)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__240, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4239
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4239, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4239, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4239, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4239, 0, __PYX_ERR(0, 4239, __pyx_L1_error));

  /* "cuda/cuda.pyx":4240
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4239
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4241
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4241, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4241, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4241, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4241, 0, __PYX_ERR(0, 4241, __pyx_L1_error));

  /* "cuda/cuda.pyx":4242
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).res.linear.devPtr))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_devPtr);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_devPtr));
  __pyx_v_self->_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4241
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4243
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_4getPtr[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__241)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4243, 0, __PYX_ERR(0, 4243, __pyx_L1_error));

  /* "cuda/cuda.pyx":4244
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4243
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4245
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4245, 0, __PYX_ERR(0, 4245, __pyx_L1_error));

  /* "cuda/cuda.pyx":4246
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4247
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 *             str_list += ['format : ' + str(self.format)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4248
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]             # <<<<<<<<<<<<<<
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_devPtr_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_devPtr, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4249
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 *             str_list += ['format : ' + str(self.format)]             # <<<<<<<<<<<<<<
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 *             str_list += ['sizeInBytes : ' + str(self.sizeInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_format, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4250
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['numChannels : ' + str(self.numChannels)]             # <<<<<<<<<<<<<<
 *             str_list += ['sizeInBytes : ' + str(self.sizeInBytes)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_numChannels_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_numChannels, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4251
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 *             str_list += ['sizeInBytes : ' + str(self.sizeInBytes)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_sizeInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_sizeInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4252
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 *             str_list += ['sizeInBytes : ' + str(self.sizeInBytes)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4246
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 */
  }

  /* "cuda/cuda.pyx":4254
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4245
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4257
 * 
 *     @property
 *     def devPtr(self):             # <<<<<<<<<<<<<<
 *         return self._devPtr
 *     @devPtr.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4257, 0, __PYX_ERR(0, 4257, __pyx_L1_error));

  /* "cuda/cuda.pyx":4258
 *     @property
 *     def devPtr(self):
 *         return self._devPtr             # <<<<<<<<<<<<<<
 *     @devPtr.setter
 *     def devPtr(self, devPtr : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_devPtr));
  __pyx_r = ((PyObject *)__pyx_v_self->_devPtr);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4257
 * 
 *     @property
 *     def devPtr(self):             # <<<<<<<<<<<<<<
 *         return self._devPtr
 *     @devPtr.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.devPtr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4260
 *         return self._devPtr
 *     @devPtr.setter
 *     def devPtr(self, devPtr : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_devPtr); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_devPtr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_devPtr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "devPtr", 0))) __PYX_ERR(0, 4260, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_devPtr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4260, 0, __PYX_ERR(0, 4260, __pyx_L1_error));

  /* "cuda/cuda.pyx":4262
 *     def devPtr(self, devPtr : CUdeviceptr):
 *         pass
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def format(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_devPtr), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4262, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4262, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_devPtr->_ptr[0]);
  }
  (__pyx_v_self->_devPtr->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":4260
 *         return self._devPtr
 *     @devPtr.setter
 *     def devPtr(self, devPtr : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.devPtr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4264
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 *     @property
 *     def format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].res.linear.format)
 *     @format.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4264, 0, __PYX_ERR(0, 4264, __pyx_L1_error));

  /* "cuda/cuda.pyx":4265
 *     @property
 *     def format(self):
 *         return CUarray_format(self._ptr[0].res.linear.format)             # <<<<<<<<<<<<<<
 *     @format.setter
 *     def format(self, format not None : CUarray_format):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum((__pyx_v_self->_ptr[0]).res.linear.format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4264
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 *     @property
 *     def format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].res.linear.format)
 *     @format.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.format.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4267
 *         return CUarray_format(self._ptr[0].res.linear.format)
 *     @format.setter
 *     def format(self, format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.linear.format = format.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_format); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_format) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(0, 4267, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), ((PyObject *)__pyx_v_format));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, PyObject *__pyx_v_format) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4267, 0, __PYX_ERR(0, 4267, __pyx_L1_error));

  /* "cuda/cuda.pyx":4269
 *     def format(self, format not None : CUarray_format):
 *         pass
 *         self._ptr[0].res.linear.format = format.value             # <<<<<<<<<<<<<<
 *     @property
 *     def numChannels(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4269, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).res.linear.format = __pyx_t_2;

  /* "cuda/cuda.pyx":4267
 *         return CUarray_format(self._ptr[0].res.linear.format)
 *     @format.setter
 *     def format(self, format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.linear.format = format.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.format.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4271
 *         self._ptr[0].res.linear.format = format.value
 *     @property
 *     def numChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.linear.numChannels
 *     @numChannels.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4271, 0, __PYX_ERR(0, 4271, __pyx_L1_error));

  /* "cuda/cuda.pyx":4272
 *     @property
 *     def numChannels(self):
 *         return self._ptr[0].res.linear.numChannels             # <<<<<<<<<<<<<<
 *     @numChannels.setter
 *     def numChannels(self, unsigned int numChannels):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).res.linear.numChannels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4271
 *         self._ptr[0].res.linear.format = format.value
 *     @property
 *     def numChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.linear.numChannels
 *     @numChannels.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.numChannels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4274
 *         return self._ptr[0].res.linear.numChannels
 *     @numChannels.setter
 *     def numChannels(self, unsigned int numChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.linear.numChannels = numChannels
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numChannels); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numChannels) {
  unsigned int __pyx_v_numChannels;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_numChannels); {
    __pyx_v_numChannels = __Pyx_PyInt_As_unsigned_int(__pyx_arg_numChannels); if (unlikely((__pyx_v_numChannels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4274, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.numChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), ((unsigned int)__pyx_v_numChannels));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, unsigned int __pyx_v_numChannels) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4274, 0, __PYX_ERR(0, 4274, __pyx_L1_error));

  /* "cuda/cuda.pyx":4276
 *     def numChannels(self, unsigned int numChannels):
 *         pass
 *         self._ptr[0].res.linear.numChannels = numChannels             # <<<<<<<<<<<<<<
 *     @property
 *     def sizeInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).res.linear.numChannels = __pyx_v_numChannels;

  /* "cuda/cuda.pyx":4274
 *         return self._ptr[0].res.linear.numChannels
 *     @numChannels.setter
 *     def numChannels(self, unsigned int numChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.linear.numChannels = numChannels
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.numChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4278
 *         self._ptr[0].res.linear.numChannels = numChannels
 *     @property
 *     def sizeInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.linear.sizeInBytes
 *     @sizeInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4278, 0, __PYX_ERR(0, 4278, __pyx_L1_error));

  /* "cuda/cuda.pyx":4279
 *     @property
 *     def sizeInBytes(self):
 *         return self._ptr[0].res.linear.sizeInBytes             # <<<<<<<<<<<<<<
 *     @sizeInBytes.setter
 *     def sizeInBytes(self, size_t sizeInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).res.linear.sizeInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4278
 *         self._ptr[0].res.linear.numChannels = numChannels
 *     @property
 *     def sizeInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.linear.sizeInBytes
 *     @sizeInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.sizeInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4281
 *         return self._ptr[0].res.linear.sizeInBytes
 *     @sizeInBytes.setter
 *     def sizeInBytes(self, size_t sizeInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.linear.sizeInBytes = sizeInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sizeInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sizeInBytes) {
  size_t __pyx_v_sizeInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_sizeInBytes); {
    __pyx_v_sizeInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_sizeInBytes); if (unlikely((__pyx_v_sizeInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4281, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.sizeInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), ((size_t)__pyx_v_sizeInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, size_t __pyx_v_sizeInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4281, 0, __PYX_ERR(0, 4281, __pyx_L1_error));

  /* "cuda/cuda.pyx":4283
 *     def sizeInBytes(self, size_t sizeInBytes):
 *         pass
 *         self._ptr[0].res.linear.sizeInBytes = sizeInBytes             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s:
 */
  (__pyx_v_self->_ptr[0]).res.linear.sizeInBytes = __pyx_v_sizeInBytes;

  /* "cuda/cuda.pyx":4281
 *         return self._ptr[0].res.linear.sizeInBytes
 *     @sizeInBytes.setter
 *     def sizeInBytes(self, size_t sizeInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.linear.sizeInBytes = sizeInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.sizeInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_8__reduce_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__242)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__243, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_10__setstate_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__244)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__245, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4309
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4309, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4309, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4309, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4309, 0, __PYX_ERR(0, 4309, __pyx_L1_error));

  /* "cuda/cuda.pyx":4310
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4309
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4311
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4311, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4311, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4311, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4311, 0, __PYX_ERR(0, 4311, __pyx_L1_error));

  /* "cuda/cuda.pyx":4312
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).res.pitch2D.devPtr))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_devPtr);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_devPtr));
  __pyx_v_self->_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4311
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4313
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_4getPtr[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__246)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4313, 0, __PYX_ERR(0, 4313, __pyx_L1_error));

  /* "cuda/cuda.pyx":4314
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4313
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4315
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4315, 0, __PYX_ERR(0, 4315, __pyx_L1_error));

  /* "cuda/cuda.pyx":4316
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4317
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 *             str_list += ['format : ' + str(self.format)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4318
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]             # <<<<<<<<<<<<<<
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_devPtr_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_devPtr, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4319
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 *             str_list += ['format : ' + str(self.format)]             # <<<<<<<<<<<<<<
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 *             str_list += ['width : ' + str(self.width)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_format, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4320
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['numChannels : ' + str(self.numChannels)]             # <<<<<<<<<<<<<<
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_numChannels_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_numChannels, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4321
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 *             str_list += ['width : ' + str(self.width)]             # <<<<<<<<<<<<<<
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['pitchInBytes : ' + str(self.pitchInBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_width, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4322
 *             str_list += ['numChannels : ' + str(self.numChannels)]
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]             # <<<<<<<<<<<<<<
 *             str_list += ['pitchInBytes : ' + str(self.pitchInBytes)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4323
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['pitchInBytes : ' + str(self.pitchInBytes)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pitchInBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_pitchInBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4324
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['pitchInBytes : ' + str(self.pitchInBytes)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4316
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['devPtr : ' + str(self.devPtr)]
 */
  }

  /* "cuda/cuda.pyx":4326
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4315
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4329
 * 
 *     @property
 *     def devPtr(self):             # <<<<<<<<<<<<<<
 *         return self._devPtr
 *     @devPtr.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4329, 0, __PYX_ERR(0, 4329, __pyx_L1_error));

  /* "cuda/cuda.pyx":4330
 *     @property
 *     def devPtr(self):
 *         return self._devPtr             # <<<<<<<<<<<<<<
 *     @devPtr.setter
 *     def devPtr(self, devPtr : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_devPtr));
  __pyx_r = ((PyObject *)__pyx_v_self->_devPtr);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4329
 * 
 *     @property
 *     def devPtr(self):             # <<<<<<<<<<<<<<
 *         return self._devPtr
 *     @devPtr.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.devPtr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4332
 *         return self._devPtr
 *     @devPtr.setter
 *     def devPtr(self, devPtr : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_devPtr); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_devPtr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_devPtr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "devPtr", 0))) __PYX_ERR(0, 4332, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_devPtr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4332, 0, __PYX_ERR(0, 4332, __pyx_L1_error));

  /* "cuda/cuda.pyx":4334
 *     def devPtr(self, devPtr : CUdeviceptr):
 *         pass
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def format(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_devPtr), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4334, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_devPtr->_ptr[0]);
  }
  (__pyx_v_self->_devPtr->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":4332
 *         return self._devPtr
 *     @devPtr.setter
 *     def devPtr(self, devPtr : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.devPtr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4336
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 *     @property
 *     def format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].res.pitch2D.format)
 *     @format.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4336, 0, __PYX_ERR(0, 4336, __pyx_L1_error));

  /* "cuda/cuda.pyx":4337
 *     @property
 *     def format(self):
 *         return CUarray_format(self._ptr[0].res.pitch2D.format)             # <<<<<<<<<<<<<<
 *     @format.setter
 *     def format(self, format not None : CUarray_format):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum((__pyx_v_self->_ptr[0]).res.pitch2D.format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4336
 *         self._devPtr._ptr[0] = <ccuda.CUdeviceptr> NULL if devPtr == None else (<CUdeviceptr>devPtr)._ptr[0]
 *     @property
 *     def format(self):             # <<<<<<<<<<<<<<
 *         return CUarray_format(self._ptr[0].res.pitch2D.format)
 *     @format.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.format.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4339
 *         return CUarray_format(self._ptr[0].res.pitch2D.format)
 *     @format.setter
 *     def format(self, format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.format = format.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_format); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_format) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(0, 4339, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((PyObject *)__pyx_v_format));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, PyObject *__pyx_v_format) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4339, 0, __PYX_ERR(0, 4339, __pyx_L1_error));

  /* "cuda/cuda.pyx":4341
 *     def format(self, format not None : CUarray_format):
 *         pass
 *         self._ptr[0].res.pitch2D.format = format.value             # <<<<<<<<<<<<<<
 *     @property
 *     def numChannels(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).res.pitch2D.format = __pyx_t_2;

  /* "cuda/cuda.pyx":4339
 *         return CUarray_format(self._ptr[0].res.pitch2D.format)
 *     @format.setter
 *     def format(self, format not None : CUarray_format):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.format = format.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.format.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4343
 *         self._ptr[0].res.pitch2D.format = format.value
 *     @property
 *     def numChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.numChannels
 *     @numChannels.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4343, 0, __PYX_ERR(0, 4343, __pyx_L1_error));

  /* "cuda/cuda.pyx":4344
 *     @property
 *     def numChannels(self):
 *         return self._ptr[0].res.pitch2D.numChannels             # <<<<<<<<<<<<<<
 *     @numChannels.setter
 *     def numChannels(self, unsigned int numChannels):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).res.pitch2D.numChannels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4343
 *         self._ptr[0].res.pitch2D.format = format.value
 *     @property
 *     def numChannels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.numChannels
 *     @numChannels.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.numChannels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4346
 *         return self._ptr[0].res.pitch2D.numChannels
 *     @numChannels.setter
 *     def numChannels(self, unsigned int numChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.numChannels = numChannels
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numChannels); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numChannels) {
  unsigned int __pyx_v_numChannels;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_numChannels); {
    __pyx_v_numChannels = __Pyx_PyInt_As_unsigned_int(__pyx_arg_numChannels); if (unlikely((__pyx_v_numChannels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4346, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.numChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((unsigned int)__pyx_v_numChannels));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, unsigned int __pyx_v_numChannels) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4346, 0, __PYX_ERR(0, 4346, __pyx_L1_error));

  /* "cuda/cuda.pyx":4348
 *     def numChannels(self, unsigned int numChannels):
 *         pass
 *         self._ptr[0].res.pitch2D.numChannels = numChannels             # <<<<<<<<<<<<<<
 *     @property
 *     def width(self):
 */
  (__pyx_v_self->_ptr[0]).res.pitch2D.numChannels = __pyx_v_numChannels;

  /* "cuda/cuda.pyx":4346
 *         return self._ptr[0].res.pitch2D.numChannels
 *     @numChannels.setter
 *     def numChannels(self, unsigned int numChannels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.numChannels = numChannels
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.numChannels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4350
 *         self._ptr[0].res.pitch2D.numChannels = numChannels
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.width
 *     @width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4350, 0, __PYX_ERR(0, 4350, __pyx_L1_error));

  /* "cuda/cuda.pyx":4351
 *     @property
 *     def width(self):
 *         return self._ptr[0].res.pitch2D.width             # <<<<<<<<<<<<<<
 *     @width.setter
 *     def width(self, size_t width):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).res.pitch2D.width); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4350
 *         self._ptr[0].res.pitch2D.numChannels = numChannels
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.width
 *     @width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4353
 *         return self._ptr[0].res.pitch2D.width
 *     @width.setter
 *     def width(self, size_t width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.width = width
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width) {
  size_t __pyx_v_width;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_width); {
    __pyx_v_width = __Pyx_PyInt_As_size_t(__pyx_arg_width); if (unlikely((__pyx_v_width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4353, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((size_t)__pyx_v_width));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, size_t __pyx_v_width) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4353, 0, __PYX_ERR(0, 4353, __pyx_L1_error));

  /* "cuda/cuda.pyx":4355
 *     def width(self, size_t width):
 *         pass
 *         self._ptr[0].res.pitch2D.width = width             # <<<<<<<<<<<<<<
 *     @property
 *     def height(self):
 */
  (__pyx_v_self->_ptr[0]).res.pitch2D.width = __pyx_v_width;

  /* "cuda/cuda.pyx":4353
 *         return self._ptr[0].res.pitch2D.width
 *     @width.setter
 *     def width(self, size_t width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.width = width
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4357
 *         self._ptr[0].res.pitch2D.width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.height
 *     @height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4357, 0, __PYX_ERR(0, 4357, __pyx_L1_error));

  /* "cuda/cuda.pyx":4358
 *     @property
 *     def height(self):
 *         return self._ptr[0].res.pitch2D.height             # <<<<<<<<<<<<<<
 *     @height.setter
 *     def height(self, size_t height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).res.pitch2D.height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4357
 *         self._ptr[0].res.pitch2D.width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.height
 *     @height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4360
 *         return self._ptr[0].res.pitch2D.height
 *     @height.setter
 *     def height(self, size_t height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.height = height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height) {
  size_t __pyx_v_height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_height); {
    __pyx_v_height = __Pyx_PyInt_As_size_t(__pyx_arg_height); if (unlikely((__pyx_v_height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4360, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((size_t)__pyx_v_height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, size_t __pyx_v_height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4360, 0, __PYX_ERR(0, 4360, __pyx_L1_error));

  /* "cuda/cuda.pyx":4362
 *     def height(self, size_t height):
 *         pass
 *         self._ptr[0].res.pitch2D.height = height             # <<<<<<<<<<<<<<
 *     @property
 *     def pitchInBytes(self):
 */
  (__pyx_v_self->_ptr[0]).res.pitch2D.height = __pyx_v_height;

  /* "cuda/cuda.pyx":4360
 *         return self._ptr[0].res.pitch2D.height
 *     @height.setter
 *     def height(self, size_t height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.height = height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4364
 *         self._ptr[0].res.pitch2D.height = height
 *     @property
 *     def pitchInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.pitchInBytes
 *     @pitchInBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4364, 0, __PYX_ERR(0, 4364, __pyx_L1_error));

  /* "cuda/cuda.pyx":4365
 *     @property
 *     def pitchInBytes(self):
 *         return self._ptr[0].res.pitch2D.pitchInBytes             # <<<<<<<<<<<<<<
 *     @pitchInBytes.setter
 *     def pitchInBytes(self, size_t pitchInBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).res.pitch2D.pitchInBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4364
 *         self._ptr[0].res.pitch2D.height = height
 *     @property
 *     def pitchInBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.pitch2D.pitchInBytes
 *     @pitchInBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.pitchInBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4367
 *         return self._ptr[0].res.pitch2D.pitchInBytes
 *     @pitchInBytes.setter
 *     def pitchInBytes(self, size_t pitchInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.pitchInBytes = pitchInBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_pitchInBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_pitchInBytes) {
  size_t __pyx_v_pitchInBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_pitchInBytes); {
    __pyx_v_pitchInBytes = __Pyx_PyInt_As_size_t(__pyx_arg_pitchInBytes); if (unlikely((__pyx_v_pitchInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4367, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.pitchInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((size_t)__pyx_v_pitchInBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, size_t __pyx_v_pitchInBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4367, 0, __PYX_ERR(0, 4367, __pyx_L1_error));

  /* "cuda/cuda.pyx":4369
 *     def pitchInBytes(self, size_t pitchInBytes):
 *         pass
 *         self._ptr[0].res.pitch2D.pitchInBytes = pitchInBytes             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s:
 */
  (__pyx_v_self->_ptr[0]).res.pitch2D.pitchInBytes = __pyx_v_pitchInBytes;

  /* "cuda/cuda.pyx":4367
 *         return self._ptr[0].res.pitch2D.pitchInBytes
 *     @pitchInBytes.setter
 *     def pitchInBytes(self, size_t pitchInBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.pitch2D.pitchInBytes = pitchInBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.pitchInBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_8__reduce_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__247)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__248, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_10__setstate_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__249)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__250, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4385
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4385, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4385, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4385, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4385, 0, __PYX_ERR(0, 4385, __pyx_L1_error));

  /* "cuda/cuda.pyx":4386
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4385
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4387
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4387, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4387, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4387, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4387, 0, __PYX_ERR(0, 4387, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4389
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_4getPtr[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__251)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4389, 0, __PYX_ERR(0, 4389, __pyx_L1_error));

  /* "cuda/cuda.pyx":4390
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4389
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4391
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4391, 0, __PYX_ERR(0, 4391, __pyx_L1_error));

  /* "cuda/cuda.pyx":4392
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4393
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4394
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4395
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4392
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  }

  /* "cuda/cuda.pyx":4397
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4391
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4400
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.reserved.reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4400, 0, __PYX_ERR(0, 4400, __pyx_L1_error));

  /* "cuda/cuda.pyx":4401
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].res.reserved.reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_int((__pyx_v_self->_ptr[0]).res.reserved.reserved, 32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4400
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].res.reserved.reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4403
 *         return self._ptr[0].res.reserved.reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.reserved.reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1[32];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4403, 0, __PYX_ERR(0, 4403, __pyx_L1_error));

  /* "cuda/cuda.pyx":4405
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].res.reserved.reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u:
 */
  if (unlikely(__Pyx_carray_from_py_int(__pyx_v_reserved, __pyx_t_1, 32) < 0)) __PYX_ERR(0, 4405, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).res.reserved.reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).res.reserved.reserved[0]) * (32));

  /* "cuda/cuda.pyx":4403
 *         return self._ptr[0].res.reserved.reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].res.reserved.reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8__reduce_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__252)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__253, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_10__setstate_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__254)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__255, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4429
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4429, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4429, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4429, 0, __PYX_ERR(0, 4429, __pyx_L1_error));

  /* "cuda/cuda.pyx":4430
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._array = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":4429
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4431
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._array = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(_ptr=<void_ptr>self._ptr)
 *         self._mipmap = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(_ptr=<void_ptr>self._ptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4431, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4431, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4431, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4431, 0, __PYX_ERR(0, 4431, __pyx_L1_error));

  /* "cuda/cuda.pyx":4432
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._array = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._mipmap = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(_ptr=<void_ptr>self._ptr)
 *         self._linear = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4432, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_array);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_array));
  __pyx_v_self->_array = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4433
 *     def __init__(self, void_ptr _ptr):
 *         self._array = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(_ptr=<void_ptr>self._ptr)
 *         self._mipmap = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._linear = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(_ptr=<void_ptr>self._ptr)
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 4433, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_mipmap);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_mipmap));
  __pyx_v_self->_mipmap = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4434
 *         self._array = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(_ptr=<void_ptr>self._ptr)
 *         self._mipmap = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(_ptr=<void_ptr>self._ptr)
 *         self._linear = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4434, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_linear);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_linear));
  __pyx_v_self->_linear = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4435
 *         self._mipmap = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(_ptr=<void_ptr>self._ptr)
 *         self._linear = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(_ptr=<void_ptr>self._ptr)
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 4435, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_pitch2D);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_pitch2D));
  __pyx_v_self->_pitch2D = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4436
 *         self._linear = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(_ptr=<void_ptr>self._ptr)
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_reserved);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_reserved));
  __pyx_v_self->_reserved = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4431
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._array = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(_ptr=<void_ptr>self._ptr)
 *         self._mipmap = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(_ptr=<void_ptr>self._ptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4437
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_4getPtr[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__256)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4437, 0, __PYX_ERR(0, 4437, __pyx_L1_error));

  /* "cuda/cuda.pyx":4438
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4437
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4439
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_8genexpr8__pyx_v_line = NULL;
  PyObject *__pyx_8genexpr9__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr10__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr11__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr12__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4439, 0, __PYX_ERR(0, 4439, __pyx_L1_error));

  /* "cuda/cuda.pyx":4440
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['array :\n' + '\n'.join(['    ' + line for line in str(self.array).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4441
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['array :\n' + '\n'.join(['    ' + line for line in str(self.array).splitlines()])]
 *             str_list += ['mipmap :\n' + '\n'.join(['    ' + line for line in str(self.mipmap).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4441, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4442
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['array :\n' + '\n'.join(['    ' + line for line in str(self.array).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['mipmap :\n' + '\n'.join(['    ' + line for line in str(self.mipmap).splitlines()])]
 *             str_list += ['linear :\n' + '\n'.join(['    ' + line for line in str(self.linear).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4442, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_array_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4442, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4442, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4442, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4442, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4442, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr8__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr8__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4442, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4442, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr8__pyx_v_line); __pyx_8genexpr8__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr8__pyx_v_line); __pyx_8genexpr8__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_array, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4443
 *             str_list = []
 *             str_list += ['array :\n' + '\n'.join(['    ' + line for line in str(self.array).splitlines()])]
 *             str_list += ['mipmap :\n' + '\n'.join(['    ' + line for line in str(self.mipmap).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['linear :\n' + '\n'.join(['    ' + line for line in str(self.linear).splitlines()])]
 *             str_list += ['pitch2D :\n' + '\n'.join(['    ' + line for line in str(self.pitch2D).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4443, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mipmap_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4443, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4443, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4443, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4443, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4443, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr9__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_8genexpr9__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4443, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 4443, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_8genexpr9__pyx_v_line); __pyx_8genexpr9__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_8genexpr9__pyx_v_line); __pyx_8genexpr9__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_mipmap, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4444
 *             str_list += ['array :\n' + '\n'.join(['    ' + line for line in str(self.array).splitlines()])]
 *             str_list += ['mipmap :\n' + '\n'.join(['    ' + line for line in str(self.mipmap).splitlines()])]
 *             str_list += ['linear :\n' + '\n'.join(['    ' + line for line in str(self.linear).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['pitch2D :\n' + '\n'.join(['    ' + line for line in str(self.pitch2D).splitlines()])]
 *             str_list += ['reserved :\n' + '\n'.join(['    ' + line for line in str(self.reserved).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4444, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_linear_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4444, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4444, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4444, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4444, __pyx_L18_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4444, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr10__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr10__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4444, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4444, __pyx_L18_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr10__pyx_v_line); __pyx_9genexpr10__pyx_v_line = 0;
      goto __pyx_L21_exit_scope;
      __pyx_L18_error:;
      __Pyx_XDECREF(__pyx_9genexpr10__pyx_v_line); __pyx_9genexpr10__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L21_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_linear, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4445
 *             str_list += ['mipmap :\n' + '\n'.join(['    ' + line for line in str(self.mipmap).splitlines()])]
 *             str_list += ['linear :\n' + '\n'.join(['    ' + line for line in str(self.linear).splitlines()])]
 *             str_list += ['pitch2D :\n' + '\n'.join(['    ' + line for line in str(self.pitch2D).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved :\n' + '\n'.join(['    ' + line for line in str(self.reserved).splitlines()])]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4445, __pyx_L24_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pitch2D_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4445, __pyx_L24_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4445, __pyx_L24_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4445, __pyx_L24_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4445, __pyx_L24_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4445, __pyx_L24_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr11__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr11__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4445, __pyx_L24_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 4445, __pyx_L24_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_9genexpr11__pyx_v_line); __pyx_9genexpr11__pyx_v_line = 0;
      goto __pyx_L27_exit_scope;
      __pyx_L24_error:;
      __Pyx_XDECREF(__pyx_9genexpr11__pyx_v_line); __pyx_9genexpr11__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L27_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_pitch2D, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4446
 *             str_list += ['linear :\n' + '\n'.join(['    ' + line for line in str(self.linear).splitlines()])]
 *             str_list += ['pitch2D :\n' + '\n'.join(['    ' + line for line in str(self.pitch2D).splitlines()])]
 *             str_list += ['reserved :\n' + '\n'.join(['    ' + line for line in str(self.reserved).splitlines()])]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4446, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4446, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4446, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4446, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4446, __pyx_L30_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4446, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr12__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr12__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4446, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4446, __pyx_L30_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr12__pyx_v_line); __pyx_9genexpr12__pyx_v_line = 0;
      goto __pyx_L33_exit_scope;
      __pyx_L30_error:;
      __Pyx_XDECREF(__pyx_9genexpr12__pyx_v_line); __pyx_9genexpr12__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L33_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4447
 *             str_list += ['pitch2D :\n' + '\n'.join(['    ' + line for line in str(self.pitch2D).splitlines()])]
 *             str_list += ['reserved :\n' + '\n'.join(['    ' + line for line in str(self.reserved).splitlines()])]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4440
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['array :\n' + '\n'.join(['    ' + line for line in str(self.array).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":4449
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4439
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_8genexpr8__pyx_v_line);
  __Pyx_XDECREF(__pyx_8genexpr9__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr10__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr11__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr12__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4452
 * 
 *     @property
 *     def array(self):             # <<<<<<<<<<<<<<
 *         return self._array
 *     @array.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4452, 0, __PYX_ERR(0, 4452, __pyx_L1_error));

  /* "cuda/cuda.pyx":4453
 *     @property
 *     def array(self):
 *         return self._array             # <<<<<<<<<<<<<<
 *     @array.setter
 *     def array(self, array not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_array));
  __pyx_r = ((PyObject *)__pyx_v_self->_array);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4452
 * 
 *     @property
 *     def array(self):             # <<<<<<<<<<<<<<
 *         return self._array
 *     @array.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.array.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4455
 *         return self._array
 *     @array.setter
 *     def array(self, array not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(array):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_array); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_array) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_array), __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, 0, "array", 0))) __PYX_ERR(0, 4455, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)__pyx_v_array));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *__pyx_v_array) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4455, 0, __PYX_ERR(0, 4455, __pyx_L1_error));

  /* "cuda/cuda.pyx":4457
 *     def array(self, array not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s):
 *         pass
 *         for _attr in dir(array):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_array)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4457, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4457, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4457, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4457, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4457, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4457, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4458
 *         pass
 *         for _attr in dir(array):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4458, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4459
 *         for _attr in dir(array):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._array, _attr, getattr(array, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4458
 *         pass
 *         for _attr in dir(array):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4460
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._array, _attr, getattr(array, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4460, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4461
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._array, _attr, getattr(array, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def mipmap(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_array);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_array), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4461, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4460
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._array, _attr, getattr(array, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":4457
 *     def array(self, array not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s):
 *         pass
 *         for _attr in dir(array):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4455
 *         return self._array
 *     @array.setter
 *     def array(self, array not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(array):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.array.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4463
 *                 setattr(self._array, _attr, getattr(array, _attr))
 *     @property
 *     def mipmap(self):             # <<<<<<<<<<<<<<
 *         return self._mipmap
 *     @mipmap.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4463, 0, __PYX_ERR(0, 4463, __pyx_L1_error));

  /* "cuda/cuda.pyx":4464
 *     @property
 *     def mipmap(self):
 *         return self._mipmap             # <<<<<<<<<<<<<<
 *     @mipmap.setter
 *     def mipmap(self, mipmap not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_mipmap));
  __pyx_r = ((PyObject *)__pyx_v_self->_mipmap);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4463
 *                 setattr(self._array, _attr, getattr(array, _attr))
 *     @property
 *     def mipmap(self):             # <<<<<<<<<<<<<<
 *         return self._mipmap
 *     @mipmap.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.mipmap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4466
 *         return self._mipmap
 *     @mipmap.setter
 *     def mipmap(self, mipmap not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(mipmap):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mipmap); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mipmap) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mipmap), __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, 0, "mipmap", 0))) __PYX_ERR(0, 4466, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)__pyx_v_mipmap));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *__pyx_v_mipmap) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4466, 0, __PYX_ERR(0, 4466, __pyx_L1_error));

  /* "cuda/cuda.pyx":4468
 *     def mipmap(self, mipmap not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s):
 *         pass
 *         for _attr in dir(mipmap):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_mipmap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4468, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4468, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4468, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4468, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4468, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4468, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4469
 *         pass
 *         for _attr in dir(mipmap):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4469, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4470
 *         for _attr in dir(mipmap):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._mipmap, _attr, getattr(mipmap, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4469
 *         pass
 *         for _attr in dir(mipmap):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4471
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._mipmap, _attr, getattr(mipmap, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4471, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4472
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._mipmap, _attr, getattr(mipmap, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def linear(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_mipmap);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_mipmap), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4472, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4471
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._mipmap, _attr, getattr(mipmap, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":4468
 *     def mipmap(self, mipmap not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s):
 *         pass
 *         for _attr in dir(mipmap):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4466
 *         return self._mipmap
 *     @mipmap.setter
 *     def mipmap(self, mipmap not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(mipmap):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.mipmap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4474
 *                 setattr(self._mipmap, _attr, getattr(mipmap, _attr))
 *     @property
 *     def linear(self):             # <<<<<<<<<<<<<<
 *         return self._linear
 *     @linear.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4474, 0, __PYX_ERR(0, 4474, __pyx_L1_error));

  /* "cuda/cuda.pyx":4475
 *     @property
 *     def linear(self):
 *         return self._linear             # <<<<<<<<<<<<<<
 *     @linear.setter
 *     def linear(self, linear not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_linear));
  __pyx_r = ((PyObject *)__pyx_v_self->_linear);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4474
 *                 setattr(self._mipmap, _attr, getattr(mipmap, _attr))
 *     @property
 *     def linear(self):             # <<<<<<<<<<<<<<
 *         return self._linear
 *     @linear.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.linear.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4477
 *         return self._linear
 *     @linear.setter
 *     def linear(self, linear not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(linear):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_linear); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_linear) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_linear), __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, 0, "linear", 0))) __PYX_ERR(0, 4477, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)__pyx_v_linear));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *__pyx_v_linear) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4477, 0, __PYX_ERR(0, 4477, __pyx_L1_error));

  /* "cuda/cuda.pyx":4479
 *     def linear(self, linear not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s):
 *         pass
 *         for _attr in dir(linear):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_linear)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4479, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4479, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4479, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4479, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4479, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4479, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4480
 *         pass
 *         for _attr in dir(linear):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4480, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4481
 *         for _attr in dir(linear):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._linear, _attr, getattr(linear, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4480
 *         pass
 *         for _attr in dir(linear):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4482
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._linear, _attr, getattr(linear, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4482, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4482, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4482, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4483
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._linear, _attr, getattr(linear, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def pitch2D(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_linear);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_linear), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4483, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4482
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._linear, _attr, getattr(linear, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":4479
 *     def linear(self, linear not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s):
 *         pass
 *         for _attr in dir(linear):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4477
 *         return self._linear
 *     @linear.setter
 *     def linear(self, linear not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(linear):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.linear.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4485
 *                 setattr(self._linear, _attr, getattr(linear, _attr))
 *     @property
 *     def pitch2D(self):             # <<<<<<<<<<<<<<
 *         return self._pitch2D
 *     @pitch2D.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4485, 0, __PYX_ERR(0, 4485, __pyx_L1_error));

  /* "cuda/cuda.pyx":4486
 *     @property
 *     def pitch2D(self):
 *         return self._pitch2D             # <<<<<<<<<<<<<<
 *     @pitch2D.setter
 *     def pitch2D(self, pitch2D not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_pitch2D));
  __pyx_r = ((PyObject *)__pyx_v_self->_pitch2D);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4485
 *                 setattr(self._linear, _attr, getattr(linear, _attr))
 *     @property
 *     def pitch2D(self):             # <<<<<<<<<<<<<<
 *         return self._pitch2D
 *     @pitch2D.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.pitch2D.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4488
 *         return self._pitch2D
 *     @pitch2D.setter
 *     def pitch2D(self, pitch2D not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(pitch2D):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_pitch2D); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_pitch2D) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pitch2D), __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, 0, "pitch2D", 0))) __PYX_ERR(0, 4488, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)__pyx_v_pitch2D));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *__pyx_v_pitch2D) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4488, 0, __PYX_ERR(0, 4488, __pyx_L1_error));

  /* "cuda/cuda.pyx":4490
 *     def pitch2D(self, pitch2D not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s):
 *         pass
 *         for _attr in dir(pitch2D):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_pitch2D)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4490, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4490, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4490, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4490, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4490, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4490, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4491
 *         pass
 *         for _attr in dir(pitch2D):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4491, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4492
 *         for _attr in dir(pitch2D):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._pitch2D, _attr, getattr(pitch2D, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4491
 *         pass
 *         for _attr in dir(pitch2D):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4493
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._pitch2D, _attr, getattr(pitch2D, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4493, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4494
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._pitch2D, _attr, getattr(pitch2D, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_pitch2D);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_pitch2D), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4494, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4494, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4493
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._pitch2D, _attr, getattr(pitch2D, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":4490
 *     def pitch2D(self, pitch2D not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s):
 *         pass
 *         for _attr in dir(pitch2D):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4488
 *         return self._pitch2D
 *     @pitch2D.setter
 *     def pitch2D(self, pitch2D not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(pitch2D):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.pitch2D.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4496
 *                 setattr(self._pitch2D, _attr, getattr(pitch2D, _attr))
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4496, 0, __PYX_ERR(0, 4496, __pyx_L1_error));

  /* "cuda/cuda.pyx":4497
 *     @property
 *     def reserved(self):
 *         return self._reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_reserved));
  __pyx_r = ((PyObject *)__pyx_v_self->_reserved);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4496
 *                 setattr(self._pitch2D, _attr, getattr(pitch2D, _attr))
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4499
 *         return self._reserved
 *     @reserved.setter
 *     def reserved(self, reserved not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(reserved):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_reserved), __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s, 0, "reserved", 0))) __PYX_ERR(0, 4499, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)__pyx_v_reserved));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *__pyx_v_reserved) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4499, 0, __PYX_ERR(0, 4499, __pyx_L1_error));

  /* "cuda/cuda.pyx":4501
 *     def reserved(self, reserved not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s):
 *         pass
 *         for _attr in dir(reserved):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_reserved)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4501, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4501, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4501, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4501, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4502
 *         pass
 *         for _attr in dir(reserved):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4502, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4503
 *         for _attr in dir(reserved):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._reserved, _attr, getattr(reserved, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4502
 *         pass
 *         for _attr in dir(reserved):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4504
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._reserved, _attr, getattr(reserved, _attr))
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4504, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4505
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._reserved, _attr, getattr(reserved, _attr))             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_RESOURCE_DESC_st:
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_reserved);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_reserved), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4505, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4505, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4504
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._reserved, _attr, getattr(reserved, _attr))
 * 
 */
    }

    /* "cuda/cuda.pyx":4501
 *     def reserved(self, reserved not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s):
 *         pass
 *         for _attr in dir(reserved):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4499
 *         return self._reserved
 *     @reserved.setter
 *     def reserved(self, reserved not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(reserved):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8__reduce_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__257)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__258, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_10__setstate_cython__[] = "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__259)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__260, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4526
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4526, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4526, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4526, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4526, 0, __PYX_ERR(0, 4526, __pyx_L1_error));

  /* "cuda/cuda.pyx":4527
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4528
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":4529
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st))));

    /* "cuda/cuda.pyx":4530
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":4531
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4531, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4531, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4531, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4531, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 4531, __pyx_L1_error)

      /* "cuda/cuda.pyx":4530
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":4527
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":4533
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":4534
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":4526
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4535
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4535, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4535, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4535, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4535, 0, __PYX_ERR(0, 4535, __pyx_L1_error));

  /* "cuda/cuda.pyx":4536
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4536, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_res);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_res));
  __pyx_v_self->_res = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4535
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_RESOURCE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4537
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 4537, 0, __PYX_ERR(0, 4537, __pyx_L1_error));

  /* "cuda/cuda.pyx":4538
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4539
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":4538
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":4537
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._res = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_RESOURCE_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":4541
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_6getPtr[] = "CUDA_RESOURCE_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__261)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4541, 0, __PYX_ERR(0, 4541, __pyx_L1_error));

  /* "cuda/cuda.pyx":4542
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4541
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4543
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr13__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4543, 0, __PYX_ERR(0, 4543, __pyx_L1_error));

  /* "cuda/cuda.pyx":4544
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['resType : ' + str(self.resType)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4545
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['resType : ' + str(self.resType)]
 *             str_list += ['res :\n' + '\n'.join(['    ' + line for line in str(self.res).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4546
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['resType : ' + str(self.resType)]             # <<<<<<<<<<<<<<
 *             str_list += ['res :\n' + '\n'.join(['    ' + line for line in str(self.res).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_resType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4547
 *             str_list = []
 *             str_list += ['resType : ' + str(self.resType)]
 *             str_list += ['res :\n' + '\n'.join(['    ' + line for line in str(self.res).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4547, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_res_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4547, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4547, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4547, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4547, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4547, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr13__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr13__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4547, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4547, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr13__pyx_v_line); __pyx_9genexpr13__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr13__pyx_v_line); __pyx_9genexpr13__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_res, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4548
 *             str_list += ['resType : ' + str(self.resType)]
 *             str_list += ['res :\n' + '\n'.join(['    ' + line for line in str(self.res).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4549
 *             str_list += ['res :\n' + '\n'.join(['    ' + line for line in str(self.res).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4544
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['resType : ' + str(self.resType)]
 */
  }

  /* "cuda/cuda.pyx":4551
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4543
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr13__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4554
 * 
 *     @property
 *     def resType(self):             # <<<<<<<<<<<<<<
 *         return CUresourcetype(self._ptr[0].resType)
 *     @resType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4554, 0, __PYX_ERR(0, 4554, __pyx_L1_error));

  /* "cuda/cuda.pyx":4555
 *     @property
 *     def resType(self):
 *         return CUresourcetype(self._ptr[0].resType)             # <<<<<<<<<<<<<<
 *     @resType.setter
 *     def resType(self, resType not None : CUresourcetype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresourcetype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum((__pyx_v_self->_ptr[0]).resType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4554
 * 
 *     @property
 *     def resType(self):             # <<<<<<<<<<<<<<
 *         return CUresourcetype(self._ptr[0].resType)
 *     @resType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.resType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4557
 *         return CUresourcetype(self._ptr[0].resType)
 *     @resType.setter
 *     def resType(self, resType not None : CUresourcetype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].resType = resType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_resType); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_resType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_resType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "resType"); __PYX_ERR(0, 4557, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_resType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, PyObject *__pyx_v_resType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresourcetype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4557, 0, __PYX_ERR(0, 4557, __pyx_L1_error));

  /* "cuda/cuda.pyx":4559
 *     def resType(self, resType not None : CUresourcetype):
 *         pass
 *         self._ptr[0].resType = resType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def res(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_resType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).resType = __pyx_t_2;

  /* "cuda/cuda.pyx":4557
 *         return CUresourcetype(self._ptr[0].resType)
 *     @resType.setter
 *     def resType(self, resType not None : CUresourcetype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].resType = resType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.resType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4561
 *         self._ptr[0].resType = resType.value
 *     @property
 *     def res(self):             # <<<<<<<<<<<<<<
 *         return self._res
 *     @res.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4561, 0, __PYX_ERR(0, 4561, __pyx_L1_error));

  /* "cuda/cuda.pyx":4562
 *     @property
 *     def res(self):
 *         return self._res             # <<<<<<<<<<<<<<
 *     @res.setter
 *     def res(self, res not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_res));
  __pyx_r = ((PyObject *)__pyx_v_self->_res);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4561
 *         self._ptr[0].resType = resType.value
 *     @property
 *     def res(self):             # <<<<<<<<<<<<<<
 *         return self._res
 *     @res.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.res.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4564
 *         return self._res
 *     @res.setter
 *     def res(self, res not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(res):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_res); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_res) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, 0, "res", 0))) __PYX_ERR(0, 4564, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)__pyx_v_res));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *__pyx_v_res) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4564, 0, __PYX_ERR(0, 4564, __pyx_L1_error));

  /* "cuda/cuda.pyx":4566
 *     def res(self, res not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u):
 *         pass
 *         for _attr in dir(res):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_res)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4566, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4566, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4566, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4566, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4566, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4566, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":4567
 *         pass
 *         for _attr in dir(res):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4567, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":4568
 *         for _attr in dir(res):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._res, _attr, getattr(res, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":4567
 *         pass
 *         for _attr in dir(res):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":4569
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._res, _attr, getattr(res, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4569, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4569, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4569, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":4570
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._res, _attr, getattr(res, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_res);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_res), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4570, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4570, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":4569
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._res, _attr, getattr(res, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":4566
 *     def res(self, res not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u):
 *         pass
 *         for _attr in dir(res):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4564
 *         return self._res
 *     @res.setter
 *     def res(self, res not None : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(res):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.res.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4572
 *                 setattr(self._res, _attr, getattr(res, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4572, 0, __PYX_ERR(0, 4572, __pyx_L1_error));

  /* "cuda/cuda.pyx":4573
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4572
 *                 setattr(self._res, _attr, getattr(res, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4575
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4575, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4575, 0, __PYX_ERR(0, 4575, __pyx_L1_error));

  /* "cuda/cuda.pyx":4577
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_TEXTURE_DESC_st:
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":4575
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_10__reduce_cython__[] = "CUDA_RESOURCE_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__262)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__263, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_12__setstate_cython__[] = "CUDA_RESOURCE_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__264)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__265, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4612
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4612, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4612, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4612, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4612, 0, __PYX_ERR(0, 4612, __pyx_L1_error));

  /* "cuda/cuda.pyx":4613
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4614
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":4615
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_TEXTURE_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st))));

    /* "cuda/cuda.pyx":4616
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_TEXTURE_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":4617
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_TEXTURE_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 4617, __pyx_L1_error)

      /* "cuda/cuda.pyx":4616
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_TEXTURE_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":4613
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_TEXTURE_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":4619
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_TEXTURE_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":4620
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":4612
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4621
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_TEXTURE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4621, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4621, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4621, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4621, 0, __PYX_ERR(0, 4621, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4623
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 4623, 0, __PYX_ERR(0, 4623, __pyx_L1_error));

  /* "cuda/cuda.pyx":4624
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4625
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":4624
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":4623
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_TEXTURE_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":4627
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_6getPtr[] = "CUDA_TEXTURE_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__266)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4627, 0, __PYX_ERR(0, 4627, __pyx_L1_error));

  /* "cuda/cuda.pyx":4628
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4627
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4629
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4629, 0, __PYX_ERR(0, 4629, __pyx_L1_error));

  /* "cuda/cuda.pyx":4630
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['addressMode : ' + str(self.addressMode)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4631
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['addressMode : ' + str(self.addressMode)]
 *             str_list += ['filterMode : ' + str(self.filterMode)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4632
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['addressMode : ' + str(self.addressMode)]             # <<<<<<<<<<<<<<
 *             str_list += ['filterMode : ' + str(self.filterMode)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_addressMode_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_addressMode, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4633
 *             str_list = []
 *             str_list += ['addressMode : ' + str(self.addressMode)]
 *             str_list += ['filterMode : ' + str(self.filterMode)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['maxAnisotropy : ' + str(self.maxAnisotropy)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filterMode_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_filterMode, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4634
 *             str_list += ['addressMode : ' + str(self.addressMode)]
 *             str_list += ['filterMode : ' + str(self.filterMode)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['maxAnisotropy : ' + str(self.maxAnisotropy)]
 *             str_list += ['mipmapFilterMode : ' + str(self.mipmapFilterMode)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4635
 *             str_list += ['filterMode : ' + str(self.filterMode)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['maxAnisotropy : ' + str(self.maxAnisotropy)]             # <<<<<<<<<<<<<<
 *             str_list += ['mipmapFilterMode : ' + str(self.mipmapFilterMode)]
 *             str_list += ['mipmapLevelBias : ' + str(self.mipmapLevelBias)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_maxAnisotropy_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_maxAnisotropy, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4636
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['maxAnisotropy : ' + str(self.maxAnisotropy)]
 *             str_list += ['mipmapFilterMode : ' + str(self.mipmapFilterMode)]             # <<<<<<<<<<<<<<
 *             str_list += ['mipmapLevelBias : ' + str(self.mipmapLevelBias)]
 *             str_list += ['minMipmapLevelClamp : ' + str(self.minMipmapLevelClamp)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mipmapFilterMode_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_mipmapFilterMode, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4637
 *             str_list += ['maxAnisotropy : ' + str(self.maxAnisotropy)]
 *             str_list += ['mipmapFilterMode : ' + str(self.mipmapFilterMode)]
 *             str_list += ['mipmapLevelBias : ' + str(self.mipmapLevelBias)]             # <<<<<<<<<<<<<<
 *             str_list += ['minMipmapLevelClamp : ' + str(self.minMipmapLevelClamp)]
 *             str_list += ['maxMipmapLevelClamp : ' + str(self.maxMipmapLevelClamp)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mipmapLevelBias_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_mipmapLevelBias, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4638
 *             str_list += ['mipmapFilterMode : ' + str(self.mipmapFilterMode)]
 *             str_list += ['mipmapLevelBias : ' + str(self.mipmapLevelBias)]
 *             str_list += ['minMipmapLevelClamp : ' + str(self.minMipmapLevelClamp)]             # <<<<<<<<<<<<<<
 *             str_list += ['maxMipmapLevelClamp : ' + str(self.maxMipmapLevelClamp)]
 *             str_list += ['borderColor : ' + str(self.borderColor)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_minMipmapLevelClamp_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_minMipmapLevelClamp, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4639
 *             str_list += ['mipmapLevelBias : ' + str(self.mipmapLevelBias)]
 *             str_list += ['minMipmapLevelClamp : ' + str(self.minMipmapLevelClamp)]
 *             str_list += ['maxMipmapLevelClamp : ' + str(self.maxMipmapLevelClamp)]             # <<<<<<<<<<<<<<
 *             str_list += ['borderColor : ' + str(self.borderColor)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_maxMipmapLevelClamp_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_maxMipmapLevelClamp, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4640
 *             str_list += ['minMipmapLevelClamp : ' + str(self.minMipmapLevelClamp)]
 *             str_list += ['maxMipmapLevelClamp : ' + str(self.maxMipmapLevelClamp)]
 *             str_list += ['borderColor : ' + str(self.borderColor)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_borderColor_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_borderColor, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4641
 *             str_list += ['maxMipmapLevelClamp : ' + str(self.maxMipmapLevelClamp)]
 *             str_list += ['borderColor : ' + str(self.borderColor)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4642
 *             str_list += ['borderColor : ' + str(self.borderColor)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4630
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['addressMode : ' + str(self.addressMode)]
 */
  }

  /* "cuda/cuda.pyx":4644
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4629
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4647
 * 
 *     @property
 *     def addressMode(self):             # <<<<<<<<<<<<<<
 *         return [CUaddress_mode(_x) for _x in list(self._ptr[0].addressMode)]
 *     @addressMode.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_9genexpr14__pyx_v__x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4647, 0, __PYX_ERR(0, 4647, __pyx_L1_error));

  /* "cuda/cuda.pyx":4648
 *     @property
 *     def addressMode(self):
 *         return [CUaddress_mode(_x) for _x in list(self._ptr[0].addressMode)]             # <<<<<<<<<<<<<<
 *     @addressMode.setter
 *     def addressMode(self, addressMode):
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4648, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode((__pyx_v_self->_ptr[0]).addressMode, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4648, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4648, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4648, __pyx_L5_error)
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4648, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr14__pyx_v__x, __pyx_t_3);
      __pyx_t_3 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUaddress_mode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4648, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_9genexpr14__pyx_v__x) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_9genexpr14__pyx_v__x);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4648, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4648, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_9genexpr14__pyx_v__x); __pyx_9genexpr14__pyx_v__x = 0;
    goto __pyx_L8_exit_scope;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_9genexpr14__pyx_v__x); __pyx_9genexpr14__pyx_v__x = 0;
    goto __pyx_L1_error;
    __pyx_L8_exit_scope:;
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4647
 * 
 *     @property
 *     def addressMode(self):             # <<<<<<<<<<<<<<
 *         return [CUaddress_mode(_x) for _x in list(self._ptr[0].addressMode)]
 *     @addressMode.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.addressMode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_9genexpr14__pyx_v__x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4650
 *         return [CUaddress_mode(_x) for _x in list(self._ptr[0].addressMode)]
 *     @addressMode.setter
 *     def addressMode(self, addressMode):             # <<<<<<<<<<<<<<
 *         self._ptr[0].addressMode = [_x.value for _x in addressMode]
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_addressMode); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_addressMode) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_addressMode));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_addressMode) {
  PyObject *__pyx_9genexpr15__pyx_v__x = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  __pyx_t_4cuda_5ccuda_CUaddress_mode __pyx_t_6[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4650, 0, __PYX_ERR(0, 4650, __pyx_L1_error));

  /* "cuda/cuda.pyx":4651
 *     @addressMode.setter
 *     def addressMode(self, addressMode):
 *         self._ptr[0].addressMode = [_x.value for _x in addressMode]             # <<<<<<<<<<<<<<
 *     @property
 *     def filterMode(self):
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4651, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_v_addressMode)) || PyTuple_CheckExact(__pyx_v_addressMode)) {
      __pyx_t_2 = __pyx_v_addressMode; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_addressMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4651, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4651, __pyx_L5_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4651, __pyx_L5_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4651, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4651, __pyx_L5_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4651, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_4(__pyx_t_2);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4651, __pyx_L5_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr15__pyx_v__x, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr15__pyx_v__x, __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4651, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 4651, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_9genexpr15__pyx_v__x); __pyx_9genexpr15__pyx_v__x = 0;
    goto __pyx_L8_exit_scope;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_9genexpr15__pyx_v__x); __pyx_9genexpr15__pyx_v__x = 0;
    goto __pyx_L1_error;
    __pyx_L8_exit_scope:;
  } /* exit inner scope */
  if (unlikely(__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(__pyx_t_1, __pyx_t_6, 3) < 0)) __PYX_ERR(0, 4651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  memcpy(&((__pyx_v_self->_ptr[0]).addressMode[0]), __pyx_t_6, sizeof((__pyx_v_self->_ptr[0]).addressMode[0]) * (3));

  /* "cuda/cuda.pyx":4650
 *         return [CUaddress_mode(_x) for _x in list(self._ptr[0].addressMode)]
 *     @addressMode.setter
 *     def addressMode(self, addressMode):             # <<<<<<<<<<<<<<
 *         self._ptr[0].addressMode = [_x.value for _x in addressMode]
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.addressMode.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_9genexpr15__pyx_v__x);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4653
 *         self._ptr[0].addressMode = [_x.value for _x in addressMode]
 *     @property
 *     def filterMode(self):             # <<<<<<<<<<<<<<
 *         return CUfilter_mode(self._ptr[0].filterMode)
 *     @filterMode.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4653, 0, __PYX_ERR(0, 4653, __pyx_L1_error));

  /* "cuda/cuda.pyx":4654
 *     @property
 *     def filterMode(self):
 *         return CUfilter_mode(self._ptr[0].filterMode)             # <<<<<<<<<<<<<<
 *     @filterMode.setter
 *     def filterMode(self, filterMode not None : CUfilter_mode):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUfilter_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum((__pyx_v_self->_ptr[0]).filterMode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4653
 *         self._ptr[0].addressMode = [_x.value for _x in addressMode]
 *     @property
 *     def filterMode(self):             # <<<<<<<<<<<<<<
 *         return CUfilter_mode(self._ptr[0].filterMode)
 *     @filterMode.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.filterMode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4656
 *         return CUfilter_mode(self._ptr[0].filterMode)
 *     @filterMode.setter
 *     def filterMode(self, filterMode not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].filterMode = filterMode.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_filterMode); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_filterMode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_filterMode) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "filterMode"); __PYX_ERR(0, 4656, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_filterMode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_filterMode) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4656, 0, __PYX_ERR(0, 4656, __pyx_L1_error));

  /* "cuda/cuda.pyx":4658
 *     def filterMode(self, filterMode not None : CUfilter_mode):
 *         pass
 *         self._ptr[0].filterMode = filterMode.value             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filterMode, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).filterMode = __pyx_t_2;

  /* "cuda/cuda.pyx":4656
 *         return CUfilter_mode(self._ptr[0].filterMode)
 *     @filterMode.setter
 *     def filterMode(self, filterMode not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].filterMode = filterMode.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.filterMode.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4660
 *         self._ptr[0].filterMode = filterMode.value
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4660, 0, __PYX_ERR(0, 4660, __pyx_L1_error));

  /* "cuda/cuda.pyx":4661
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4660
 *         self._ptr[0].filterMode = filterMode.value
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4663
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4663, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4663, 0, __PYX_ERR(0, 4663, __pyx_L1_error));

  /* "cuda/cuda.pyx":4665
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def maxAnisotropy(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":4663
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4667
 *         self._ptr[0].flags = flags
 *     @property
 *     def maxAnisotropy(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxAnisotropy
 *     @maxAnisotropy.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4667, 0, __PYX_ERR(0, 4667, __pyx_L1_error));

  /* "cuda/cuda.pyx":4668
 *     @property
 *     def maxAnisotropy(self):
 *         return self._ptr[0].maxAnisotropy             # <<<<<<<<<<<<<<
 *     @maxAnisotropy.setter
 *     def maxAnisotropy(self, unsigned int maxAnisotropy):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).maxAnisotropy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4667
 *         self._ptr[0].flags = flags
 *     @property
 *     def maxAnisotropy(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxAnisotropy
 *     @maxAnisotropy.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.maxAnisotropy.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4670
 *         return self._ptr[0].maxAnisotropy
 *     @maxAnisotropy.setter
 *     def maxAnisotropy(self, unsigned int maxAnisotropy):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxAnisotropy = maxAnisotropy
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_maxAnisotropy); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_maxAnisotropy) {
  unsigned int __pyx_v_maxAnisotropy;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_maxAnisotropy); {
    __pyx_v_maxAnisotropy = __Pyx_PyInt_As_unsigned_int(__pyx_arg_maxAnisotropy); if (unlikely((__pyx_v_maxAnisotropy == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4670, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.maxAnisotropy.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_maxAnisotropy));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, unsigned int __pyx_v_maxAnisotropy) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4670, 0, __PYX_ERR(0, 4670, __pyx_L1_error));

  /* "cuda/cuda.pyx":4672
 *     def maxAnisotropy(self, unsigned int maxAnisotropy):
 *         pass
 *         self._ptr[0].maxAnisotropy = maxAnisotropy             # <<<<<<<<<<<<<<
 *     @property
 *     def mipmapFilterMode(self):
 */
  (__pyx_v_self->_ptr[0]).maxAnisotropy = __pyx_v_maxAnisotropy;

  /* "cuda/cuda.pyx":4670
 *         return self._ptr[0].maxAnisotropy
 *     @maxAnisotropy.setter
 *     def maxAnisotropy(self, unsigned int maxAnisotropy):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxAnisotropy = maxAnisotropy
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.maxAnisotropy.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4674
 *         self._ptr[0].maxAnisotropy = maxAnisotropy
 *     @property
 *     def mipmapFilterMode(self):             # <<<<<<<<<<<<<<
 *         return CUfilter_mode(self._ptr[0].mipmapFilterMode)
 *     @mipmapFilterMode.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4674, 0, __PYX_ERR(0, 4674, __pyx_L1_error));

  /* "cuda/cuda.pyx":4675
 *     @property
 *     def mipmapFilterMode(self):
 *         return CUfilter_mode(self._ptr[0].mipmapFilterMode)             # <<<<<<<<<<<<<<
 *     @mipmapFilterMode.setter
 *     def mipmapFilterMode(self, mipmapFilterMode not None : CUfilter_mode):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUfilter_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum((__pyx_v_self->_ptr[0]).mipmapFilterMode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4674
 *         self._ptr[0].maxAnisotropy = maxAnisotropy
 *     @property
 *     def mipmapFilterMode(self):             # <<<<<<<<<<<<<<
 *         return CUfilter_mode(self._ptr[0].mipmapFilterMode)
 *     @mipmapFilterMode.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.mipmapFilterMode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4677
 *         return CUfilter_mode(self._ptr[0].mipmapFilterMode)
 *     @mipmapFilterMode.setter
 *     def mipmapFilterMode(self, mipmapFilterMode not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].mipmapFilterMode = mipmapFilterMode.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mipmapFilterMode); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mipmapFilterMode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_mipmapFilterMode) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "mipmapFilterMode"); __PYX_ERR(0, 4677, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_mipmapFilterMode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_mipmapFilterMode) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4677, 0, __PYX_ERR(0, 4677, __pyx_L1_error));

  /* "cuda/cuda.pyx":4679
 *     def mipmapFilterMode(self, mipmapFilterMode not None : CUfilter_mode):
 *         pass
 *         self._ptr[0].mipmapFilterMode = mipmapFilterMode.value             # <<<<<<<<<<<<<<
 *     @property
 *     def mipmapLevelBias(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_mipmapFilterMode, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4679, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).mipmapFilterMode = __pyx_t_2;

  /* "cuda/cuda.pyx":4677
 *         return CUfilter_mode(self._ptr[0].mipmapFilterMode)
 *     @mipmapFilterMode.setter
 *     def mipmapFilterMode(self, mipmapFilterMode not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].mipmapFilterMode = mipmapFilterMode.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.mipmapFilterMode.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4681
 *         self._ptr[0].mipmapFilterMode = mipmapFilterMode.value
 *     @property
 *     def mipmapLevelBias(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].mipmapLevelBias
 *     @mipmapLevelBias.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4681, 0, __PYX_ERR(0, 4681, __pyx_L1_error));

  /* "cuda/cuda.pyx":4682
 *     @property
 *     def mipmapLevelBias(self):
 *         return self._ptr[0].mipmapLevelBias             # <<<<<<<<<<<<<<
 *     @mipmapLevelBias.setter
 *     def mipmapLevelBias(self, float mipmapLevelBias):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->_ptr[0]).mipmapLevelBias); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4681
 *         self._ptr[0].mipmapFilterMode = mipmapFilterMode.value
 *     @property
 *     def mipmapLevelBias(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].mipmapLevelBias
 *     @mipmapLevelBias.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.mipmapLevelBias.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4684
 *         return self._ptr[0].mipmapLevelBias
 *     @mipmapLevelBias.setter
 *     def mipmapLevelBias(self, float mipmapLevelBias):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].mipmapLevelBias = mipmapLevelBias
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_mipmapLevelBias); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_mipmapLevelBias) {
  float __pyx_v_mipmapLevelBias;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_mipmapLevelBias); {
    __pyx_v_mipmapLevelBias = __pyx_PyFloat_AsFloat(__pyx_arg_mipmapLevelBias); if (unlikely((__pyx_v_mipmapLevelBias == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 4684, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.mipmapLevelBias.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((float)__pyx_v_mipmapLevelBias));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, float __pyx_v_mipmapLevelBias) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4684, 0, __PYX_ERR(0, 4684, __pyx_L1_error));

  /* "cuda/cuda.pyx":4686
 *     def mipmapLevelBias(self, float mipmapLevelBias):
 *         pass
 *         self._ptr[0].mipmapLevelBias = mipmapLevelBias             # <<<<<<<<<<<<<<
 *     @property
 *     def minMipmapLevelClamp(self):
 */
  (__pyx_v_self->_ptr[0]).mipmapLevelBias = __pyx_v_mipmapLevelBias;

  /* "cuda/cuda.pyx":4684
 *         return self._ptr[0].mipmapLevelBias
 *     @mipmapLevelBias.setter
 *     def mipmapLevelBias(self, float mipmapLevelBias):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].mipmapLevelBias = mipmapLevelBias
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.mipmapLevelBias.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4688
 *         self._ptr[0].mipmapLevelBias = mipmapLevelBias
 *     @property
 *     def minMipmapLevelClamp(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].minMipmapLevelClamp
 *     @minMipmapLevelClamp.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4688, 0, __PYX_ERR(0, 4688, __pyx_L1_error));

  /* "cuda/cuda.pyx":4689
 *     @property
 *     def minMipmapLevelClamp(self):
 *         return self._ptr[0].minMipmapLevelClamp             # <<<<<<<<<<<<<<
 *     @minMipmapLevelClamp.setter
 *     def minMipmapLevelClamp(self, float minMipmapLevelClamp):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->_ptr[0]).minMipmapLevelClamp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4689, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4688
 *         self._ptr[0].mipmapLevelBias = mipmapLevelBias
 *     @property
 *     def minMipmapLevelClamp(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].minMipmapLevelClamp
 *     @minMipmapLevelClamp.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.minMipmapLevelClamp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4691
 *         return self._ptr[0].minMipmapLevelClamp
 *     @minMipmapLevelClamp.setter
 *     def minMipmapLevelClamp(self, float minMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].minMipmapLevelClamp = minMipmapLevelClamp
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_minMipmapLevelClamp); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_minMipmapLevelClamp) {
  float __pyx_v_minMipmapLevelClamp;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_minMipmapLevelClamp); {
    __pyx_v_minMipmapLevelClamp = __pyx_PyFloat_AsFloat(__pyx_arg_minMipmapLevelClamp); if (unlikely((__pyx_v_minMipmapLevelClamp == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 4691, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.minMipmapLevelClamp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((float)__pyx_v_minMipmapLevelClamp));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, float __pyx_v_minMipmapLevelClamp) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4691, 0, __PYX_ERR(0, 4691, __pyx_L1_error));

  /* "cuda/cuda.pyx":4693
 *     def minMipmapLevelClamp(self, float minMipmapLevelClamp):
 *         pass
 *         self._ptr[0].minMipmapLevelClamp = minMipmapLevelClamp             # <<<<<<<<<<<<<<
 *     @property
 *     def maxMipmapLevelClamp(self):
 */
  (__pyx_v_self->_ptr[0]).minMipmapLevelClamp = __pyx_v_minMipmapLevelClamp;

  /* "cuda/cuda.pyx":4691
 *         return self._ptr[0].minMipmapLevelClamp
 *     @minMipmapLevelClamp.setter
 *     def minMipmapLevelClamp(self, float minMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].minMipmapLevelClamp = minMipmapLevelClamp
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.minMipmapLevelClamp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4695
 *         self._ptr[0].minMipmapLevelClamp = minMipmapLevelClamp
 *     @property
 *     def maxMipmapLevelClamp(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxMipmapLevelClamp
 *     @maxMipmapLevelClamp.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4695, 0, __PYX_ERR(0, 4695, __pyx_L1_error));

  /* "cuda/cuda.pyx":4696
 *     @property
 *     def maxMipmapLevelClamp(self):
 *         return self._ptr[0].maxMipmapLevelClamp             # <<<<<<<<<<<<<<
 *     @maxMipmapLevelClamp.setter
 *     def maxMipmapLevelClamp(self, float maxMipmapLevelClamp):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->_ptr[0]).maxMipmapLevelClamp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4695
 *         self._ptr[0].minMipmapLevelClamp = minMipmapLevelClamp
 *     @property
 *     def maxMipmapLevelClamp(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].maxMipmapLevelClamp
 *     @maxMipmapLevelClamp.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.maxMipmapLevelClamp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4698
 *         return self._ptr[0].maxMipmapLevelClamp
 *     @maxMipmapLevelClamp.setter
 *     def maxMipmapLevelClamp(self, float maxMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxMipmapLevelClamp = maxMipmapLevelClamp
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_maxMipmapLevelClamp); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_maxMipmapLevelClamp) {
  float __pyx_v_maxMipmapLevelClamp;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_maxMipmapLevelClamp); {
    __pyx_v_maxMipmapLevelClamp = __pyx_PyFloat_AsFloat(__pyx_arg_maxMipmapLevelClamp); if (unlikely((__pyx_v_maxMipmapLevelClamp == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 4698, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.maxMipmapLevelClamp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((float)__pyx_v_maxMipmapLevelClamp));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, float __pyx_v_maxMipmapLevelClamp) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4698, 0, __PYX_ERR(0, 4698, __pyx_L1_error));

  /* "cuda/cuda.pyx":4700
 *     def maxMipmapLevelClamp(self, float maxMipmapLevelClamp):
 *         pass
 *         self._ptr[0].maxMipmapLevelClamp = maxMipmapLevelClamp             # <<<<<<<<<<<<<<
 *     @property
 *     def borderColor(self):
 */
  (__pyx_v_self->_ptr[0]).maxMipmapLevelClamp = __pyx_v_maxMipmapLevelClamp;

  /* "cuda/cuda.pyx":4698
 *         return self._ptr[0].maxMipmapLevelClamp
 *     @maxMipmapLevelClamp.setter
 *     def maxMipmapLevelClamp(self, float maxMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].maxMipmapLevelClamp = maxMipmapLevelClamp
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.maxMipmapLevelClamp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4702
 *         self._ptr[0].maxMipmapLevelClamp = maxMipmapLevelClamp
 *     @property
 *     def borderColor(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].borderColor
 *     @borderColor.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4702, 0, __PYX_ERR(0, 4702, __pyx_L1_error));

  /* "cuda/cuda.pyx":4703
 *     @property
 *     def borderColor(self):
 *         return self._ptr[0].borderColor             # <<<<<<<<<<<<<<
 *     @borderColor.setter
 *     def borderColor(self, borderColor):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_float((__pyx_v_self->_ptr[0]).borderColor, 4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4702
 *         self._ptr[0].maxMipmapLevelClamp = maxMipmapLevelClamp
 *     @property
 *     def borderColor(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].borderColor
 *     @borderColor.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.borderColor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4705
 *         return self._ptr[0].borderColor
 *     @borderColor.setter
 *     def borderColor(self, borderColor):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].borderColor = borderColor
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_borderColor); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_borderColor) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_borderColor));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_borderColor) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  float __pyx_t_1[4];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4705, 0, __PYX_ERR(0, 4705, __pyx_L1_error));

  /* "cuda/cuda.pyx":4707
 *     def borderColor(self, borderColor):
 *         pass
 *         self._ptr[0].borderColor = borderColor             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  if (unlikely(__Pyx_carray_from_py_float(__pyx_v_borderColor, __pyx_t_1, 4) < 0)) __PYX_ERR(0, 4707, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).borderColor[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).borderColor[0]) * (4));

  /* "cuda/cuda.pyx":4705
 *         return self._ptr[0].borderColor
 *     @borderColor.setter
 *     def borderColor(self, borderColor):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].borderColor = borderColor
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.borderColor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4709
 *         self._ptr[0].borderColor = borderColor
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4709, 0, __PYX_ERR(0, 4709, __pyx_L1_error));

  /* "cuda/cuda.pyx":4710
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_int((__pyx_v_self->_ptr[0]).reserved, 12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4709
 *         self._ptr[0].borderColor = borderColor
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4712
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1[12];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4712, 0, __PYX_ERR(0, 4712, __pyx_L1_error));

  /* "cuda/cuda.pyx":4714
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_RESOURCE_VIEW_DESC_st:
 */
  if (unlikely(__Pyx_carray_from_py_int(__pyx_v_reserved, __pyx_t_1, 12) < 0)) __PYX_ERR(0, 4714, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (12));

  /* "cuda/cuda.pyx":4712
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10__reduce_cython__[] = "CUDA_TEXTURE_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__267)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__268, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_12__setstate_cython__[] = "CUDA_TEXTURE_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__269)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__270, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_TEXTURE_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4747
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4747, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4747, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4747, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4747, 0, __PYX_ERR(0, 4747, __pyx_L1_error));

  /* "cuda/cuda.pyx":4748
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4749
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":4750
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st))));

    /* "cuda/cuda.pyx":4751
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":4752
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4752, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4752, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4752, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4752, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 4752, __pyx_L1_error)

      /* "cuda/cuda.pyx":4751
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":4748
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>calloc(1, sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":4754
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":4755
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":4747
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4756
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_RESOURCE_VIEW_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4756, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4756, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4756, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4756, 0, __PYX_ERR(0, 4756, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4758
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 4758, 0, __PYX_ERR(0, 4758, __pyx_L1_error));

  /* "cuda/cuda.pyx":4759
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4760
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":4759
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":4758
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":4762
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6getPtr[] = "CUDA_RESOURCE_VIEW_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__271)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4762, 0, __PYX_ERR(0, 4762, __pyx_L1_error));

  /* "cuda/cuda.pyx":4763
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4762
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4764
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4764, 0, __PYX_ERR(0, 4764, __pyx_L1_error));

  /* "cuda/cuda.pyx":4765
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['format : ' + str(self.format)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4766
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['width : ' + str(self.width)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4766, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4767
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['format : ' + str(self.format)]             # <<<<<<<<<<<<<<
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_format, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4768
 *             str_list = []
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['width : ' + str(self.width)]             # <<<<<<<<<<<<<<
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['depth : ' + str(self.depth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_width, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4769
 *             str_list += ['format : ' + str(self.format)]
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]             # <<<<<<<<<<<<<<
 *             str_list += ['depth : ' + str(self.depth)]
 *             str_list += ['firstMipmapLevel : ' + str(self.firstMipmapLevel)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_height, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4770
 *             str_list += ['width : ' + str(self.width)]
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['depth : ' + str(self.depth)]             # <<<<<<<<<<<<<<
 *             str_list += ['firstMipmapLevel : ' + str(self.firstMipmapLevel)]
 *             str_list += ['lastMipmapLevel : ' + str(self.lastMipmapLevel)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_depth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_depth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4771
 *             str_list += ['height : ' + str(self.height)]
 *             str_list += ['depth : ' + str(self.depth)]
 *             str_list += ['firstMipmapLevel : ' + str(self.firstMipmapLevel)]             # <<<<<<<<<<<<<<
 *             str_list += ['lastMipmapLevel : ' + str(self.lastMipmapLevel)]
 *             str_list += ['firstLayer : ' + str(self.firstLayer)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_firstMipmapLevel_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_firstMipmapLevel, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4772
 *             str_list += ['depth : ' + str(self.depth)]
 *             str_list += ['firstMipmapLevel : ' + str(self.firstMipmapLevel)]
 *             str_list += ['lastMipmapLevel : ' + str(self.lastMipmapLevel)]             # <<<<<<<<<<<<<<
 *             str_list += ['firstLayer : ' + str(self.firstLayer)]
 *             str_list += ['lastLayer : ' + str(self.lastLayer)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_lastMipmapLevel_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_lastMipmapLevel, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4773
 *             str_list += ['firstMipmapLevel : ' + str(self.firstMipmapLevel)]
 *             str_list += ['lastMipmapLevel : ' + str(self.lastMipmapLevel)]
 *             str_list += ['firstLayer : ' + str(self.firstLayer)]             # <<<<<<<<<<<<<<
 *             str_list += ['lastLayer : ' + str(self.lastLayer)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_firstLayer_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_firstLayer, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4774
 *             str_list += ['lastMipmapLevel : ' + str(self.lastMipmapLevel)]
 *             str_list += ['firstLayer : ' + str(self.firstLayer)]
 *             str_list += ['lastLayer : ' + str(self.lastLayer)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_lastLayer_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_lastLayer, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4775
 *             str_list += ['firstLayer : ' + str(self.firstLayer)]
 *             str_list += ['lastLayer : ' + str(self.lastLayer)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4776
 *             str_list += ['lastLayer : ' + str(self.lastLayer)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4765
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['format : ' + str(self.format)]
 */
  }

  /* "cuda/cuda.pyx":4778
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4764
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4781
 * 
 *     @property
 *     def format(self):             # <<<<<<<<<<<<<<
 *         return CUresourceViewFormat(self._ptr[0].format)
 *     @format.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4781, 0, __PYX_ERR(0, 4781, __pyx_L1_error));

  /* "cuda/cuda.pyx":4782
 *     @property
 *     def format(self):
 *         return CUresourceViewFormat(self._ptr[0].format)             # <<<<<<<<<<<<<<
 *     @format.setter
 *     def format(self, format not None : CUresourceViewFormat):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresourceViewFormat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum((__pyx_v_self->_ptr[0]).format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4781
 * 
 *     @property
 *     def format(self):             # <<<<<<<<<<<<<<
 *         return CUresourceViewFormat(self._ptr[0].format)
 *     @format.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.format.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4784
 *         return CUresourceViewFormat(self._ptr[0].format)
 *     @format.setter
 *     def format(self, format not None : CUresourceViewFormat):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].format = format.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_format); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_format) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(0, 4784, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_format));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, PyObject *__pyx_v_format) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresourceViewFormat __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4784, 0, __PYX_ERR(0, 4784, __pyx_L1_error));

  /* "cuda/cuda.pyx":4786
 *     def format(self, format not None : CUresourceViewFormat):
 *         pass
 *         self._ptr[0].format = format.value             # <<<<<<<<<<<<<<
 *     @property
 *     def width(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4786, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).format = __pyx_t_2;

  /* "cuda/cuda.pyx":4784
 *         return CUresourceViewFormat(self._ptr[0].format)
 *     @format.setter
 *     def format(self, format not None : CUresourceViewFormat):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].format = format.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.format.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4788
 *         self._ptr[0].format = format.value
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].width
 *     @width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4788, 0, __PYX_ERR(0, 4788, __pyx_L1_error));

  /* "cuda/cuda.pyx":4789
 *     @property
 *     def width(self):
 *         return self._ptr[0].width             # <<<<<<<<<<<<<<
 *     @width.setter
 *     def width(self, size_t width):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).width); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4788
 *         self._ptr[0].format = format.value
 *     @property
 *     def width(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].width
 *     @width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4791
 *         return self._ptr[0].width
 *     @width.setter
 *     def width(self, size_t width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].width = width
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_width) {
  size_t __pyx_v_width;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_width); {
    __pyx_v_width = __Pyx_PyInt_As_size_t(__pyx_arg_width); if (unlikely((__pyx_v_width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4791, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((size_t)__pyx_v_width));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, size_t __pyx_v_width) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4791, 0, __PYX_ERR(0, 4791, __pyx_L1_error));

  /* "cuda/cuda.pyx":4793
 *     def width(self, size_t width):
 *         pass
 *         self._ptr[0].width = width             # <<<<<<<<<<<<<<
 *     @property
 *     def height(self):
 */
  (__pyx_v_self->_ptr[0]).width = __pyx_v_width;

  /* "cuda/cuda.pyx":4791
 *         return self._ptr[0].width
 *     @width.setter
 *     def width(self, size_t width):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].width = width
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4795
 *         self._ptr[0].width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].height
 *     @height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4795, 0, __PYX_ERR(0, 4795, __pyx_L1_error));

  /* "cuda/cuda.pyx":4796
 *     @property
 *     def height(self):
 *         return self._ptr[0].height             # <<<<<<<<<<<<<<
 *     @height.setter
 *     def height(self, size_t height):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4796, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4795
 *         self._ptr[0].width = width
 *     @property
 *     def height(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].height
 *     @height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4798
 *         return self._ptr[0].height
 *     @height.setter
 *     def height(self, size_t height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].height = height
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_height) {
  size_t __pyx_v_height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_height); {
    __pyx_v_height = __Pyx_PyInt_As_size_t(__pyx_arg_height); if (unlikely((__pyx_v_height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4798, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((size_t)__pyx_v_height));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, size_t __pyx_v_height) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4798, 0, __PYX_ERR(0, 4798, __pyx_L1_error));

  /* "cuda/cuda.pyx":4800
 *     def height(self, size_t height):
 *         pass
 *         self._ptr[0].height = height             # <<<<<<<<<<<<<<
 *     @property
 *     def depth(self):
 */
  (__pyx_v_self->_ptr[0]).height = __pyx_v_height;

  /* "cuda/cuda.pyx":4798
 *         return self._ptr[0].height
 *     @height.setter
 *     def height(self, size_t height):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].height = height
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4802
 *         self._ptr[0].height = height
 *     @property
 *     def depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].depth
 *     @depth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4802, 0, __PYX_ERR(0, 4802, __pyx_L1_error));

  /* "cuda/cuda.pyx":4803
 *     @property
 *     def depth(self):
 *         return self._ptr[0].depth             # <<<<<<<<<<<<<<
 *     @depth.setter
 *     def depth(self, size_t depth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4802
 *         self._ptr[0].height = height
 *     @property
 *     def depth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].depth
 *     @depth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.depth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4805
 *         return self._ptr[0].depth
 *     @depth.setter
 *     def depth(self, size_t depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].depth = depth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_depth); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_depth) {
  size_t __pyx_v_depth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_depth); {
    __pyx_v_depth = __Pyx_PyInt_As_size_t(__pyx_arg_depth); if (unlikely((__pyx_v_depth == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4805, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((size_t)__pyx_v_depth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, size_t __pyx_v_depth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4805, 0, __PYX_ERR(0, 4805, __pyx_L1_error));

  /* "cuda/cuda.pyx":4807
 *     def depth(self, size_t depth):
 *         pass
 *         self._ptr[0].depth = depth             # <<<<<<<<<<<<<<
 *     @property
 *     def firstMipmapLevel(self):
 */
  (__pyx_v_self->_ptr[0]).depth = __pyx_v_depth;

  /* "cuda/cuda.pyx":4805
 *         return self._ptr[0].depth
 *     @depth.setter
 *     def depth(self, size_t depth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].depth = depth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.depth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4809
 *         self._ptr[0].depth = depth
 *     @property
 *     def firstMipmapLevel(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].firstMipmapLevel
 *     @firstMipmapLevel.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4809, 0, __PYX_ERR(0, 4809, __pyx_L1_error));

  /* "cuda/cuda.pyx":4810
 *     @property
 *     def firstMipmapLevel(self):
 *         return self._ptr[0].firstMipmapLevel             # <<<<<<<<<<<<<<
 *     @firstMipmapLevel.setter
 *     def firstMipmapLevel(self, unsigned int firstMipmapLevel):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).firstMipmapLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4809
 *         self._ptr[0].depth = depth
 *     @property
 *     def firstMipmapLevel(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].firstMipmapLevel
 *     @firstMipmapLevel.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.firstMipmapLevel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4812
 *         return self._ptr[0].firstMipmapLevel
 *     @firstMipmapLevel.setter
 *     def firstMipmapLevel(self, unsigned int firstMipmapLevel):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].firstMipmapLevel = firstMipmapLevel
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_firstMipmapLevel); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_firstMipmapLevel) {
  unsigned int __pyx_v_firstMipmapLevel;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_firstMipmapLevel); {
    __pyx_v_firstMipmapLevel = __Pyx_PyInt_As_unsigned_int(__pyx_arg_firstMipmapLevel); if (unlikely((__pyx_v_firstMipmapLevel == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4812, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.firstMipmapLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_firstMipmapLevel));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_firstMipmapLevel) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4812, 0, __PYX_ERR(0, 4812, __pyx_L1_error));

  /* "cuda/cuda.pyx":4814
 *     def firstMipmapLevel(self, unsigned int firstMipmapLevel):
 *         pass
 *         self._ptr[0].firstMipmapLevel = firstMipmapLevel             # <<<<<<<<<<<<<<
 *     @property
 *     def lastMipmapLevel(self):
 */
  (__pyx_v_self->_ptr[0]).firstMipmapLevel = __pyx_v_firstMipmapLevel;

  /* "cuda/cuda.pyx":4812
 *         return self._ptr[0].firstMipmapLevel
 *     @firstMipmapLevel.setter
 *     def firstMipmapLevel(self, unsigned int firstMipmapLevel):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].firstMipmapLevel = firstMipmapLevel
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.firstMipmapLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4816
 *         self._ptr[0].firstMipmapLevel = firstMipmapLevel
 *     @property
 *     def lastMipmapLevel(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].lastMipmapLevel
 *     @lastMipmapLevel.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4816, 0, __PYX_ERR(0, 4816, __pyx_L1_error));

  /* "cuda/cuda.pyx":4817
 *     @property
 *     def lastMipmapLevel(self):
 *         return self._ptr[0].lastMipmapLevel             # <<<<<<<<<<<<<<
 *     @lastMipmapLevel.setter
 *     def lastMipmapLevel(self, unsigned int lastMipmapLevel):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).lastMipmapLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4816
 *         self._ptr[0].firstMipmapLevel = firstMipmapLevel
 *     @property
 *     def lastMipmapLevel(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].lastMipmapLevel
 *     @lastMipmapLevel.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.lastMipmapLevel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4819
 *         return self._ptr[0].lastMipmapLevel
 *     @lastMipmapLevel.setter
 *     def lastMipmapLevel(self, unsigned int lastMipmapLevel):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].lastMipmapLevel = lastMipmapLevel
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_lastMipmapLevel); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_lastMipmapLevel) {
  unsigned int __pyx_v_lastMipmapLevel;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_lastMipmapLevel); {
    __pyx_v_lastMipmapLevel = __Pyx_PyInt_As_unsigned_int(__pyx_arg_lastMipmapLevel); if (unlikely((__pyx_v_lastMipmapLevel == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4819, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.lastMipmapLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_lastMipmapLevel));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_lastMipmapLevel) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4819, 0, __PYX_ERR(0, 4819, __pyx_L1_error));

  /* "cuda/cuda.pyx":4821
 *     def lastMipmapLevel(self, unsigned int lastMipmapLevel):
 *         pass
 *         self._ptr[0].lastMipmapLevel = lastMipmapLevel             # <<<<<<<<<<<<<<
 *     @property
 *     def firstLayer(self):
 */
  (__pyx_v_self->_ptr[0]).lastMipmapLevel = __pyx_v_lastMipmapLevel;

  /* "cuda/cuda.pyx":4819
 *         return self._ptr[0].lastMipmapLevel
 *     @lastMipmapLevel.setter
 *     def lastMipmapLevel(self, unsigned int lastMipmapLevel):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].lastMipmapLevel = lastMipmapLevel
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.lastMipmapLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4823
 *         self._ptr[0].lastMipmapLevel = lastMipmapLevel
 *     @property
 *     def firstLayer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].firstLayer
 *     @firstLayer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4823, 0, __PYX_ERR(0, 4823, __pyx_L1_error));

  /* "cuda/cuda.pyx":4824
 *     @property
 *     def firstLayer(self):
 *         return self._ptr[0].firstLayer             # <<<<<<<<<<<<<<
 *     @firstLayer.setter
 *     def firstLayer(self, unsigned int firstLayer):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).firstLayer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4823
 *         self._ptr[0].lastMipmapLevel = lastMipmapLevel
 *     @property
 *     def firstLayer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].firstLayer
 *     @firstLayer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.firstLayer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4826
 *         return self._ptr[0].firstLayer
 *     @firstLayer.setter
 *     def firstLayer(self, unsigned int firstLayer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].firstLayer = firstLayer
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_firstLayer); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_firstLayer) {
  unsigned int __pyx_v_firstLayer;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_firstLayer); {
    __pyx_v_firstLayer = __Pyx_PyInt_As_unsigned_int(__pyx_arg_firstLayer); if (unlikely((__pyx_v_firstLayer == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4826, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.firstLayer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_firstLayer));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_firstLayer) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4826, 0, __PYX_ERR(0, 4826, __pyx_L1_error));

  /* "cuda/cuda.pyx":4828
 *     def firstLayer(self, unsigned int firstLayer):
 *         pass
 *         self._ptr[0].firstLayer = firstLayer             # <<<<<<<<<<<<<<
 *     @property
 *     def lastLayer(self):
 */
  (__pyx_v_self->_ptr[0]).firstLayer = __pyx_v_firstLayer;

  /* "cuda/cuda.pyx":4826
 *         return self._ptr[0].firstLayer
 *     @firstLayer.setter
 *     def firstLayer(self, unsigned int firstLayer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].firstLayer = firstLayer
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.firstLayer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4830
 *         self._ptr[0].firstLayer = firstLayer
 *     @property
 *     def lastLayer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].lastLayer
 *     @lastLayer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4830, 0, __PYX_ERR(0, 4830, __pyx_L1_error));

  /* "cuda/cuda.pyx":4831
 *     @property
 *     def lastLayer(self):
 *         return self._ptr[0].lastLayer             # <<<<<<<<<<<<<<
 *     @lastLayer.setter
 *     def lastLayer(self, unsigned int lastLayer):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).lastLayer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4830
 *         self._ptr[0].firstLayer = firstLayer
 *     @property
 *     def lastLayer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].lastLayer
 *     @lastLayer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.lastLayer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4833
 *         return self._ptr[0].lastLayer
 *     @lastLayer.setter
 *     def lastLayer(self, unsigned int lastLayer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].lastLayer = lastLayer
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_lastLayer); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_lastLayer) {
  unsigned int __pyx_v_lastLayer;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_lastLayer); {
    __pyx_v_lastLayer = __Pyx_PyInt_As_unsigned_int(__pyx_arg_lastLayer); if (unlikely((__pyx_v_lastLayer == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4833, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.lastLayer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_lastLayer));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, unsigned int __pyx_v_lastLayer) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4833, 0, __PYX_ERR(0, 4833, __pyx_L1_error));

  /* "cuda/cuda.pyx":4835
 *     def lastLayer(self, unsigned int lastLayer):
 *         pass
 *         self._ptr[0].lastLayer = lastLayer             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).lastLayer = __pyx_v_lastLayer;

  /* "cuda/cuda.pyx":4833
 *         return self._ptr[0].lastLayer
 *     @lastLayer.setter
 *     def lastLayer(self, unsigned int lastLayer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].lastLayer = lastLayer
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.lastLayer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4837
 *         self._ptr[0].lastLayer = lastLayer
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4837, 0, __PYX_ERR(0, 4837, __pyx_L1_error));

  /* "cuda/cuda.pyx":4838
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4837
 *         self._ptr[0].lastLayer = lastLayer
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4840
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4840, 0, __PYX_ERR(0, 4840, __pyx_L1_error));

  /* "cuda/cuda.pyx":4842
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 4842, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":4840
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10__reduce_cython__[] = "CUDA_RESOURCE_VIEW_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__272)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__273, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_12__setstate_cython__[] = "CUDA_RESOURCE_VIEW_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__274)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__275, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4861
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4861, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4861, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4861, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4861, 0, __PYX_ERR(0, 4861, __pyx_L1_error));

  /* "cuda/cuda.pyx":4862
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4863
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":4864
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))));

    /* "cuda/cuda.pyx":4865
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":4866
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 4866, __pyx_L1_error)

      /* "cuda/cuda.pyx":4865
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":4862
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>calloc(1, sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":4868
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":4869
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":4861
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4870
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4870, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4870, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4870, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4870, 0, __PYX_ERR(0, 4870, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4872
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 4872, 0, __PYX_ERR(0, 4872, __pyx_L1_error));

  /* "cuda/cuda.pyx":4873
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4874
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":4873
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":4872
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":4876
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_6getPtr[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__276)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4876, 0, __PYX_ERR(0, 4876, __pyx_L1_error));

  /* "cuda/cuda.pyx":4877
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4876
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4878
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4878, 0, __PYX_ERR(0, 4878, __pyx_L1_error));

  /* "cuda/cuda.pyx":4879
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['p2pToken : ' + str(self.p2pToken)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4880
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['p2pToken : ' + str(self.p2pToken)]
 *             str_list += ['vaSpaceToken : ' + str(self.vaSpaceToken)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4880, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4881
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['p2pToken : ' + str(self.p2pToken)]             # <<<<<<<<<<<<<<
 *             str_list += ['vaSpaceToken : ' + str(self.vaSpaceToken)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_p2pToken_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_p2pToken, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4882
 *             str_list = []
 *             str_list += ['p2pToken : ' + str(self.p2pToken)]
 *             str_list += ['vaSpaceToken : ' + str(self.vaSpaceToken)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_vaSpaceToken_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_vaSpaceToken, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4883
 *             str_list += ['p2pToken : ' + str(self.p2pToken)]
 *             str_list += ['vaSpaceToken : ' + str(self.vaSpaceToken)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4883, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4879
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['p2pToken : ' + str(self.p2pToken)]
 */
  }

  /* "cuda/cuda.pyx":4885
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4878
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4888
 * 
 *     @property
 *     def p2pToken(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].p2pToken
 *     @p2pToken.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken___get__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4888, 0, __PYX_ERR(0, 4888, __pyx_L1_error));

  /* "cuda/cuda.pyx":4889
 *     @property
 *     def p2pToken(self):
 *         return self._ptr[0].p2pToken             # <<<<<<<<<<<<<<
 *     @p2pToken.setter
 *     def p2pToken(self, unsigned long long p2pToken):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).p2pToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4888
 * 
 *     @property
 *     def p2pToken(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].p2pToken
 *     @p2pToken.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.p2pToken.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4891
 *         return self._ptr[0].p2pToken
 *     @p2pToken.setter
 *     def p2pToken(self, unsigned long long p2pToken):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].p2pToken = p2pToken
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_p2pToken); /*proto*/
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_p2pToken) {
  unsigned PY_LONG_LONG __pyx_v_p2pToken;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_p2pToken); {
    __pyx_v_p2pToken = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_p2pToken); if (unlikely((__pyx_v_p2pToken == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4891, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.p2pToken.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_p2pToken));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_p2pToken) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4891, 0, __PYX_ERR(0, 4891, __pyx_L1_error));

  /* "cuda/cuda.pyx":4893
 *     def p2pToken(self, unsigned long long p2pToken):
 *         pass
 *         self._ptr[0].p2pToken = p2pToken             # <<<<<<<<<<<<<<
 *     @property
 *     def vaSpaceToken(self):
 */
  (__pyx_v_self->_ptr[0]).p2pToken = __pyx_v_p2pToken;

  /* "cuda/cuda.pyx":4891
 *         return self._ptr[0].p2pToken
 *     @p2pToken.setter
 *     def p2pToken(self, unsigned long long p2pToken):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].p2pToken = p2pToken
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.p2pToken.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4895
 *         self._ptr[0].p2pToken = p2pToken
 *     @property
 *     def vaSpaceToken(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].vaSpaceToken
 *     @vaSpaceToken.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken___get__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4895, 0, __PYX_ERR(0, 4895, __pyx_L1_error));

  /* "cuda/cuda.pyx":4896
 *     @property
 *     def vaSpaceToken(self):
 *         return self._ptr[0].vaSpaceToken             # <<<<<<<<<<<<<<
 *     @vaSpaceToken.setter
 *     def vaSpaceToken(self, unsigned int vaSpaceToken):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).vaSpaceToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4895
 *         self._ptr[0].p2pToken = p2pToken
 *     @property
 *     def vaSpaceToken(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].vaSpaceToken
 *     @vaSpaceToken.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.vaSpaceToken.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4898
 *         return self._ptr[0].vaSpaceToken
 *     @vaSpaceToken.setter
 *     def vaSpaceToken(self, unsigned int vaSpaceToken):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].vaSpaceToken = vaSpaceToken
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_vaSpaceToken); /*proto*/
static int __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_vaSpaceToken) {
  unsigned int __pyx_v_vaSpaceToken;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_vaSpaceToken); {
    __pyx_v_vaSpaceToken = __Pyx_PyInt_As_unsigned_int(__pyx_arg_vaSpaceToken); if (unlikely((__pyx_v_vaSpaceToken == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4898, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.vaSpaceToken.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self), ((unsigned int)__pyx_v_vaSpaceToken));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, unsigned int __pyx_v_vaSpaceToken) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4898, 0, __PYX_ERR(0, 4898, __pyx_L1_error));

  /* "cuda/cuda.pyx":4900
 *     def vaSpaceToken(self, unsigned int vaSpaceToken):
 *         pass
 *         self._ptr[0].vaSpaceToken = vaSpaceToken             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_LAUNCH_PARAMS_st:
 */
  (__pyx_v_self->_ptr[0]).vaSpaceToken = __pyx_v_vaSpaceToken;

  /* "cuda/cuda.pyx":4898
 *         return self._ptr[0].vaSpaceToken
 *     @vaSpaceToken.setter
 *     def vaSpaceToken(self, unsigned int vaSpaceToken):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].vaSpaceToken = vaSpaceToken
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.vaSpaceToken.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_10__reduce_cython__[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__277)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__278, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12__setstate_cython__[] = "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__279)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__280, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4935
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 4935, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4935, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4935, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 4935, 0, __PYX_ERR(0, 4935, __pyx_L1_error));

  /* "cuda/cuda.pyx":4936
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4937
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":4938
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st))));

    /* "cuda/cuda.pyx":4939
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":4940
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4940, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4940, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4940, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4940, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 4940, __pyx_L1_error)

      /* "cuda/cuda.pyx":4939
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":4936
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_LAUNCH_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":4942
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":4943
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":4935
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4944
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 4944, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 4944, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4944, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 4944, 0, __PYX_ERR(0, 4944, __pyx_L1_error));

  /* "cuda/cuda.pyx":4945
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)             # <<<<<<<<<<<<<<
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).function))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 4945, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUfunction), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_function);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_function));
  __pyx_v_self->_function = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":4946
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).hStream))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 4946, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstream), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_hStream);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_hStream));
  __pyx_v_self->_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4944
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_LAUNCH_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4947
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 4947, 0, __PYX_ERR(0, 4947, __pyx_L1_error));

  /* "cuda/cuda.pyx":4948
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4949
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":4948
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":4947
 *         self._function = CUfunction(_ptr=<void_ptr>&self._ptr[0].function)
 *         self._hStream = CUstream(_ptr=<void_ptr>&self._ptr[0].hStream)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":4951
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_6getPtr[] = "CUDA_LAUNCH_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__281)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 4951, 0, __PYX_ERR(0, 4951, __pyx_L1_error));

  /* "cuda/cuda.pyx":4952
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4951
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4953
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 4953, 0, __PYX_ERR(0, 4953, __pyx_L1_error));

  /* "cuda/cuda.pyx":4954
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['function : ' + str(self.function)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":4955
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['function : ' + str(self.function)]
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4956
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['function : ' + str(self.function)]             # <<<<<<<<<<<<<<
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_function_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_function, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4957
 *             str_list = []
 *             str_list += ['function : ' + str(self.function)]
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]             # <<<<<<<<<<<<<<
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gridDimX_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gridDimX, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4958
 *             str_list += ['function : ' + str(self.function)]
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]             # <<<<<<<<<<<<<<
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gridDimY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gridDimY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4959
 *             str_list += ['gridDimX : ' + str(self.gridDimX)]
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gridDimZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gridDimZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4960
 *             str_list += ['gridDimY : ' + str(self.gridDimY)]
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]             # <<<<<<<<<<<<<<
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blockDimX_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_blockDimX, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4961
 *             str_list += ['gridDimZ : ' + str(self.gridDimZ)]
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]             # <<<<<<<<<<<<<<
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blockDimY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_blockDimY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4962
 *             str_list += ['blockDimX : ' + str(self.blockDimX)]
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 *             str_list += ['hStream : ' + str(self.hStream)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blockDimZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_blockDimZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4963
 *             str_list += ['blockDimY : ' + str(self.blockDimY)]
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]             # <<<<<<<<<<<<<<
 *             str_list += ['hStream : ' + str(self.hStream)]
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_sharedMemBytes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_sharedMemBytes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4964
 *             str_list += ['blockDimZ : ' + str(self.blockDimZ)]
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 *             str_list += ['hStream : ' + str(self.hStream)]             # <<<<<<<<<<<<<<
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hStream_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_hStream, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4965
 *             str_list += ['sharedMemBytes : ' + str(self.sharedMemBytes)]
 *             str_list += ['hStream : ' + str(self.hStream)]
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kernelParams_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_kernelParams, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":4966
 *             str_list += ['hStream : ' + str(self.hStream)]
 *             str_list += ['kernelParams : ' + str(self.kernelParams)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":4954
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['function : ' + str(self.function)]
 */
  }

  /* "cuda/cuda.pyx":4968
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":4953
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4971
 * 
 *     @property
 *     def function(self):             # <<<<<<<<<<<<<<
 *         return self._function
 *     @function.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4971, 0, __PYX_ERR(0, 4971, __pyx_L1_error));

  /* "cuda/cuda.pyx":4972
 *     @property
 *     def function(self):
 *         return self._function             # <<<<<<<<<<<<<<
 *     @function.setter
 *     def function(self, function : CUfunction):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_function));
  __pyx_r = ((PyObject *)__pyx_v_self->_function);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4971
 * 
 *     @property
 *     def function(self):             # <<<<<<<<<<<<<<
 *         return self._function
 *     @function.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.function.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4974
 *         return self._function
 *     @function.setter
 *     def function(self, function : CUfunction):             # <<<<<<<<<<<<<<
 *         pass
 *         self._function._ptr[0] = <ccuda.CUfunction> NULL if function == None else (<CUfunction>function)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_function); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_function) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function), __pyx_ptype_4cuda_4cuda_CUfunction, 1, "function", 0))) __PYX_ERR(0, 4974, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_function));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_function) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUfunction __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4974, 0, __PYX_ERR(0, 4974, __pyx_L1_error));

  /* "cuda/cuda.pyx":4976
 *     def function(self, function : CUfunction):
 *         pass
 *         self._function._ptr[0] = <ccuda.CUfunction> NULL if function == None else (<CUfunction>function)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def gridDimX(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_function), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4976, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUfunction)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_function->_ptr[0]);
  }
  (__pyx_v_self->_function->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":4974
 *         return self._function
 *     @function.setter
 *     def function(self, function : CUfunction):             # <<<<<<<<<<<<<<
 *         pass
 *         self._function._ptr[0] = <ccuda.CUfunction> NULL if function == None else (<CUfunction>function)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.function.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4978
 *         self._function._ptr[0] = <ccuda.CUfunction> NULL if function == None else (<CUfunction>function)._ptr[0]
 *     @property
 *     def gridDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4978, 0, __PYX_ERR(0, 4978, __pyx_L1_error));

  /* "cuda/cuda.pyx":4979
 *     @property
 *     def gridDimX(self):
 *         return self._ptr[0].gridDimX             # <<<<<<<<<<<<<<
 *     @gridDimX.setter
 *     def gridDimX(self, unsigned int gridDimX):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).gridDimX); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4978
 *         self._function._ptr[0] = <ccuda.CUfunction> NULL if function == None else (<CUfunction>function)._ptr[0]
 *     @property
 *     def gridDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimX.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4981
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 *     def gridDimX(self, unsigned int gridDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimX = gridDimX
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimX); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimX) {
  unsigned int __pyx_v_gridDimX;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gridDimX); {
    __pyx_v_gridDimX = __Pyx_PyInt_As_unsigned_int(__pyx_arg_gridDimX); if (unlikely((__pyx_v_gridDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4981, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_gridDimX));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimX) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4981, 0, __PYX_ERR(0, 4981, __pyx_L1_error));

  /* "cuda/cuda.pyx":4983
 *     def gridDimX(self, unsigned int gridDimX):
 *         pass
 *         self._ptr[0].gridDimX = gridDimX             # <<<<<<<<<<<<<<
 *     @property
 *     def gridDimY(self):
 */
  (__pyx_v_self->_ptr[0]).gridDimX = __pyx_v_gridDimX;

  /* "cuda/cuda.pyx":4981
 *         return self._ptr[0].gridDimX
 *     @gridDimX.setter
 *     def gridDimX(self, unsigned int gridDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimX = gridDimX
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4985
 *         self._ptr[0].gridDimX = gridDimX
 *     @property
 *     def gridDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4985, 0, __PYX_ERR(0, 4985, __pyx_L1_error));

  /* "cuda/cuda.pyx":4986
 *     @property
 *     def gridDimY(self):
 *         return self._ptr[0].gridDimY             # <<<<<<<<<<<<<<
 *     @gridDimY.setter
 *     def gridDimY(self, unsigned int gridDimY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).gridDimY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4985
 *         self._ptr[0].gridDimX = gridDimX
 *     @property
 *     def gridDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4988
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 *     def gridDimY(self, unsigned int gridDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimY = gridDimY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimY); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimY) {
  unsigned int __pyx_v_gridDimY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gridDimY); {
    __pyx_v_gridDimY = __Pyx_PyInt_As_unsigned_int(__pyx_arg_gridDimY); if (unlikely((__pyx_v_gridDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4988, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_gridDimY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4988, 0, __PYX_ERR(0, 4988, __pyx_L1_error));

  /* "cuda/cuda.pyx":4990
 *     def gridDimY(self, unsigned int gridDimY):
 *         pass
 *         self._ptr[0].gridDimY = gridDimY             # <<<<<<<<<<<<<<
 *     @property
 *     def gridDimZ(self):
 */
  (__pyx_v_self->_ptr[0]).gridDimY = __pyx_v_gridDimY;

  /* "cuda/cuda.pyx":4988
 *         return self._ptr[0].gridDimY
 *     @gridDimY.setter
 *     def gridDimY(self, unsigned int gridDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimY = gridDimY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4992
 *         self._ptr[0].gridDimY = gridDimY
 *     @property
 *     def gridDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4992, 0, __PYX_ERR(0, 4992, __pyx_L1_error));

  /* "cuda/cuda.pyx":4993
 *     @property
 *     def gridDimZ(self):
 *         return self._ptr[0].gridDimZ             # <<<<<<<<<<<<<<
 *     @gridDimZ.setter
 *     def gridDimZ(self, unsigned int gridDimZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).gridDimZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4992
 *         self._ptr[0].gridDimY = gridDimY
 *     @property
 *     def gridDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4995
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 *     def gridDimZ(self, unsigned int gridDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimZ = gridDimZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gridDimZ) {
  unsigned int __pyx_v_gridDimZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gridDimZ); {
    __pyx_v_gridDimZ = __Pyx_PyInt_As_unsigned_int(__pyx_arg_gridDimZ); if (unlikely((__pyx_v_gridDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4995, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_gridDimZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_gridDimZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 4995, 0, __PYX_ERR(0, 4995, __pyx_L1_error));

  /* "cuda/cuda.pyx":4997
 *     def gridDimZ(self, unsigned int gridDimZ):
 *         pass
 *         self._ptr[0].gridDimZ = gridDimZ             # <<<<<<<<<<<<<<
 *     @property
 *     def blockDimX(self):
 */
  (__pyx_v_self->_ptr[0]).gridDimZ = __pyx_v_gridDimZ;

  /* "cuda/cuda.pyx":4995
 *         return self._ptr[0].gridDimZ
 *     @gridDimZ.setter
 *     def gridDimZ(self, unsigned int gridDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].gridDimZ = gridDimZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.gridDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":4999
 *         self._ptr[0].gridDimZ = gridDimZ
 *     @property
 *     def blockDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 4999, 0, __PYX_ERR(0, 4999, __pyx_L1_error));

  /* "cuda/cuda.pyx":5000
 *     @property
 *     def blockDimX(self):
 *         return self._ptr[0].blockDimX             # <<<<<<<<<<<<<<
 *     @blockDimX.setter
 *     def blockDimX(self, unsigned int blockDimX):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).blockDimX); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":4999
 *         self._ptr[0].gridDimZ = gridDimZ
 *     @property
 *     def blockDimX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimX.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5002
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 *     def blockDimX(self, unsigned int blockDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimX = blockDimX
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimX); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimX) {
  unsigned int __pyx_v_blockDimX;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_blockDimX); {
    __pyx_v_blockDimX = __Pyx_PyInt_As_unsigned_int(__pyx_arg_blockDimX); if (unlikely((__pyx_v_blockDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5002, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_blockDimX));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimX) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5002, 0, __PYX_ERR(0, 5002, __pyx_L1_error));

  /* "cuda/cuda.pyx":5004
 *     def blockDimX(self, unsigned int blockDimX):
 *         pass
 *         self._ptr[0].blockDimX = blockDimX             # <<<<<<<<<<<<<<
 *     @property
 *     def blockDimY(self):
 */
  (__pyx_v_self->_ptr[0]).blockDimX = __pyx_v_blockDimX;

  /* "cuda/cuda.pyx":5002
 *         return self._ptr[0].blockDimX
 *     @blockDimX.setter
 *     def blockDimX(self, unsigned int blockDimX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimX = blockDimX
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5006
 *         self._ptr[0].blockDimX = blockDimX
 *     @property
 *     def blockDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5006, 0, __PYX_ERR(0, 5006, __pyx_L1_error));

  /* "cuda/cuda.pyx":5007
 *     @property
 *     def blockDimY(self):
 *         return self._ptr[0].blockDimY             # <<<<<<<<<<<<<<
 *     @blockDimY.setter
 *     def blockDimY(self, unsigned int blockDimY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).blockDimY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5006
 *         self._ptr[0].blockDimX = blockDimX
 *     @property
 *     def blockDimY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5009
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 *     def blockDimY(self, unsigned int blockDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimY = blockDimY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimY); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimY) {
  unsigned int __pyx_v_blockDimY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_blockDimY); {
    __pyx_v_blockDimY = __Pyx_PyInt_As_unsigned_int(__pyx_arg_blockDimY); if (unlikely((__pyx_v_blockDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5009, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_blockDimY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5009, 0, __PYX_ERR(0, 5009, __pyx_L1_error));

  /* "cuda/cuda.pyx":5011
 *     def blockDimY(self, unsigned int blockDimY):
 *         pass
 *         self._ptr[0].blockDimY = blockDimY             # <<<<<<<<<<<<<<
 *     @property
 *     def blockDimZ(self):
 */
  (__pyx_v_self->_ptr[0]).blockDimY = __pyx_v_blockDimY;

  /* "cuda/cuda.pyx":5009
 *         return self._ptr[0].blockDimY
 *     @blockDimY.setter
 *     def blockDimY(self, unsigned int blockDimY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimY = blockDimY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5013
 *         self._ptr[0].blockDimY = blockDimY
 *     @property
 *     def blockDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5013, 0, __PYX_ERR(0, 5013, __pyx_L1_error));

  /* "cuda/cuda.pyx":5014
 *     @property
 *     def blockDimZ(self):
 *         return self._ptr[0].blockDimZ             # <<<<<<<<<<<<<<
 *     @blockDimZ.setter
 *     def blockDimZ(self, unsigned int blockDimZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).blockDimZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5013
 *         self._ptr[0].blockDimY = blockDimY
 *     @property
 *     def blockDimZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5016
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 *     def blockDimZ(self, unsigned int blockDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimZ = blockDimZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_blockDimZ) {
  unsigned int __pyx_v_blockDimZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_blockDimZ); {
    __pyx_v_blockDimZ = __Pyx_PyInt_As_unsigned_int(__pyx_arg_blockDimZ); if (unlikely((__pyx_v_blockDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5016, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_blockDimZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_blockDimZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5016, 0, __PYX_ERR(0, 5016, __pyx_L1_error));

  /* "cuda/cuda.pyx":5018
 *     def blockDimZ(self, unsigned int blockDimZ):
 *         pass
 *         self._ptr[0].blockDimZ = blockDimZ             # <<<<<<<<<<<<<<
 *     @property
 *     def sharedMemBytes(self):
 */
  (__pyx_v_self->_ptr[0]).blockDimZ = __pyx_v_blockDimZ;

  /* "cuda/cuda.pyx":5016
 *         return self._ptr[0].blockDimZ
 *     @blockDimZ.setter
 *     def blockDimZ(self, unsigned int blockDimZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].blockDimZ = blockDimZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.blockDimZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5020
 *         self._ptr[0].blockDimZ = blockDimZ
 *     @property
 *     def sharedMemBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5020, 0, __PYX_ERR(0, 5020, __pyx_L1_error));

  /* "cuda/cuda.pyx":5021
 *     @property
 *     def sharedMemBytes(self):
 *         return self._ptr[0].sharedMemBytes             # <<<<<<<<<<<<<<
 *     @sharedMemBytes.setter
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).sharedMemBytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5020
 *         self._ptr[0].blockDimZ = blockDimZ
 *     @property
 *     def sharedMemBytes(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.sharedMemBytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5023
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sharedMemBytes); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_sharedMemBytes) {
  unsigned int __pyx_v_sharedMemBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_sharedMemBytes); {
    __pyx_v_sharedMemBytes = __Pyx_PyInt_As_unsigned_int(__pyx_arg_sharedMemBytes); if (unlikely((__pyx_v_sharedMemBytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5023, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.sharedMemBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_sharedMemBytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_sharedMemBytes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5023, 0, __PYX_ERR(0, 5023, __pyx_L1_error));

  /* "cuda/cuda.pyx":5025
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):
 *         pass
 *         self._ptr[0].sharedMemBytes = sharedMemBytes             # <<<<<<<<<<<<<<
 *     @property
 *     def hStream(self):
 */
  (__pyx_v_self->_ptr[0]).sharedMemBytes = __pyx_v_sharedMemBytes;

  /* "cuda/cuda.pyx":5023
 *         return self._ptr[0].sharedMemBytes
 *     @sharedMemBytes.setter
 *     def sharedMemBytes(self, unsigned int sharedMemBytes):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.sharedMemBytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5027
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 *     @property
 *     def hStream(self):             # <<<<<<<<<<<<<<
 *         return self._hStream
 *     @hStream.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5027, 0, __PYX_ERR(0, 5027, __pyx_L1_error));

  /* "cuda/cuda.pyx":5028
 *     @property
 *     def hStream(self):
 *         return self._hStream             # <<<<<<<<<<<<<<
 *     @hStream.setter
 *     def hStream(self, hStream : CUstream):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_hStream));
  __pyx_r = ((PyObject *)__pyx_v_self->_hStream);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5027
 *         self._ptr[0].sharedMemBytes = sharedMemBytes
 *     @property
 *     def hStream(self):             # <<<<<<<<<<<<<<
 *         return self._hStream
 *     @hStream.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.hStream.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5030
 *         return self._hStream
 *     @hStream.setter
 *     def hStream(self, hStream : CUstream):             # <<<<<<<<<<<<<<
 *         pass
 *         self._hStream._ptr[0] = <ccuda.CUstream> NULL if hStream == None else (<CUstream>hStream)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hStream); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 1, "hStream", 0))) __PYX_ERR(0, 5030, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUstream __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5030, 0, __PYX_ERR(0, 5030, __pyx_L1_error));

  /* "cuda/cuda.pyx":5032
 *     def hStream(self, hStream : CUstream):
 *         pass
 *         self._hStream._ptr[0] = <ccuda.CUstream> NULL if hStream == None else (<CUstream>hStream)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def kernelParams(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_hStream), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5032, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5032, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUstream)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_hStream->_ptr[0]);
  }
  (__pyx_v_self->_hStream->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":5030
 *         return self._hStream
 *     @hStream.setter
 *     def hStream(self, hStream : CUstream):             # <<<<<<<<<<<<<<
 *         pass
 *         self._hStream._ptr[0] = <ccuda.CUstream> NULL if hStream == None else (<CUstream>hStream)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.hStream.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5034
 *         self._hStream._ptr[0] = <ccuda.CUstream> NULL if hStream == None else (<CUstream>hStream)._ptr[0]
 *     @property
 *     def kernelParams(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams___get__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5034, 0, __PYX_ERR(0, 5034, __pyx_L1_error));

  /* "cuda/cuda.pyx":5035
 *     @property
 *     def kernelParams(self):
 *         return <void_ptr>self._ptr[0].kernelParams             # <<<<<<<<<<<<<<
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).kernelParams)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5034
 *         self._hStream._ptr[0] = <ccuda.CUstream> NULL if hStream == None else (<CUstream>hStream)._ptr[0]
 *     @property
 *     def kernelParams(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.kernelParams.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5037
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):             # <<<<<<<<<<<<<<
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_kernelParams); /*proto*/
static int __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_kernelParams) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_kernelParams));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_kernelParams) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5037, 0, __PYX_ERR(0, 5037, __pyx_L1_error));

  /* "cuda/cuda.pyx":5038
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)             # <<<<<<<<<<<<<<
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams), __pyx_v_kernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_ckernelParams);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_ckernelParams));
  __pyx_v_self->_ckernelParams = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5039
 *     def kernelParams(self, kernelParams):
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_ckernelParams), __pyx_n_s_ckernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5039, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).kernelParams = ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5037
 *         return <void_ptr>self._ptr[0].kernelParams
 *     @kernelParams.setter
 *     def kernelParams(self, kernelParams):             # <<<<<<<<<<<<<<
 *         self._ckernelParams = utils.HelperKernelParams(kernelParams)
 *         self._ptr[0].kernelParams = <void**><void_ptr>self._ckernelParams.ckernelParams
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.kernelParams.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_10__reduce_cython__[] = "CUDA_LAUNCH_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__282)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__283, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12__setstate_cython__[] = "CUDA_LAUNCH_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__284)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__285, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_LAUNCH_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5057
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5057, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5057, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5057, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5057, 0, __PYX_ERR(0, 5057, __pyx_L1_error));

  /* "cuda/cuda.pyx":5058
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5057
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5059
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5059, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5059, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5059, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5059, 0, __PYX_ERR(0, 5059, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5061
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4getPtr[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__286)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5061, 0, __PYX_ERR(0, 5061, __pyx_L1_error));

  /* "cuda/cuda.pyx":5062
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5061
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5063
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5063, 0, __PYX_ERR(0, 5063, __pyx_L1_error));

  /* "cuda/cuda.pyx":5064
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5065
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['handle : ' + hex(self.handle)]
 *             str_list += ['name : ' + hex(self.name)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5066
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]             # <<<<<<<<<<<<<<
 *             str_list += ['name : ' + hex(self.name)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_handle, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5067
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]
 *             str_list += ['name : ' + hex(self.name)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5068
 *             str_list += ['handle : ' + hex(self.handle)]
 *             str_list += ['name : ' + hex(self.name)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5064
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]
 */
  }

  /* "cuda/cuda.pyx":5070
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5063
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5073
 * 
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5073, 0, __PYX_ERR(0, 5073, __pyx_L1_error));

  /* "cuda/cuda.pyx":5074
 *     @property
 *     def handle(self):
 *         return <void_ptr>self._ptr[0].handle.win32.handle             # <<<<<<<<<<<<<<
 *     @handle.setter
 *     def handle(self, handle):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).handle.win32.handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5073
 * 
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5076
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 *     def handle(self, handle):             # <<<<<<<<<<<<<<
 *         _chandle = utils.HelperInputVoidPtr(handle)
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle); /*proto*/
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), ((PyObject *)__pyx_v_handle));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_handle) {
  PyObject *__pyx_v__chandle = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5076, 0, __PYX_ERR(0, 5076, __pyx_L1_error));

  /* "cuda/cuda.pyx":5077
 *     @handle.setter
 *     def handle(self, handle):
 *         _chandle = utils.HelperInputVoidPtr(handle)             # <<<<<<<<<<<<<<
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_handle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__chandle = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5078
 *     def handle(self, handle):
 *         _chandle = utils.HelperInputVoidPtr(handle)
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def name(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__chandle, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5078, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handle.win32.handle = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5076
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 *     def handle(self, handle):             # <<<<<<<<<<<<<<
 *         _chandle = utils.HelperInputVoidPtr(handle)
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.handle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__chandle);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5080
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 *     @property
 *     def name(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5080, 0, __PYX_ERR(0, 5080, __pyx_L1_error));

  /* "cuda/cuda.pyx":5081
 *     @property
 *     def name(self):
 *         return <void_ptr>self._ptr[0].handle.win32.name             # <<<<<<<<<<<<<<
 *     @name.setter
 *     def name(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).handle.win32.name)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5080
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 *     @property
 *     def name(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5083
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 *     def name(self, name):             # <<<<<<<<<<<<<<
 *         _cname = utils.HelperInputVoidPtr(name)
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static int __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v__cname = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5083, 0, __PYX_ERR(0, 5083, __pyx_L1_error));

  /* "cuda/cuda.pyx":5084
 *     @name.setter
 *     def name(self, name):
 *         _cname = utils.HelperInputVoidPtr(name)             # <<<<<<<<<<<<<<
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cname = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5085
 *     def name(self, name):
 *         _cname = utils.HelperInputVoidPtr(name)
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cname, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5085, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handle.win32.name = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5083
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 *     def name(self, name):             # <<<<<<<<<<<<<<
 *         _cname = utils.HelperInputVoidPtr(name)
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cname);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__287)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__288, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__289)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__290, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5105
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5105, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5105, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5105, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5105, 0, __PYX_ERR(0, 5105, __pyx_L1_error));

  /* "cuda/cuda.pyx":5106
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5105
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5107
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5107, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5107, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5107, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5107, 0, __PYX_ERR(0, 5107, __pyx_L1_error));

  /* "cuda/cuda.pyx":5108
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_win32);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_win32));
  __pyx_v_self->_win32 = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5107
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5109
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_4getPtr[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__291)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5109, 0, __PYX_ERR(0, 5109, __pyx_L1_error));

  /* "cuda/cuda.pyx":5110
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5109
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5111
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr16__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5111, 0, __PYX_ERR(0, 5111, __pyx_L1_error));

  /* "cuda/cuda.pyx":5112
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5113
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fd : ' + str(self.fd)]
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5114
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]             # <<<<<<<<<<<<<<
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 *             str_list += ['nvSciBufObject : ' + hex(self.nvSciBufObject)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fd_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_fd, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5115
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['nvSciBufObject : ' + hex(self.nvSciBufObject)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5115, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_win32_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5115, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5115, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5115, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5115, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5115, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr16__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr16__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5115, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5115, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr16__pyx_v_line); __pyx_9genexpr16__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr16__pyx_v_line); __pyx_9genexpr16__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_win32, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5116
 *             str_list += ['fd : ' + str(self.fd)]
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 *             str_list += ['nvSciBufObject : ' + hex(self.nvSciBufObject)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nvSciBufObject_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_nvSciBufObject, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5117
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 *             str_list += ['nvSciBufObject : ' + hex(self.nvSciBufObject)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5112
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]
 */
  }

  /* "cuda/cuda.pyx":5119
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5111
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr16__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5122
 * 
 *     @property
 *     def fd(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5122, 0, __PYX_ERR(0, 5122, __pyx_L1_error));

  /* "cuda/cuda.pyx":5123
 *     @property
 *     def fd(self):
 *         return self._ptr[0].handle.fd             # <<<<<<<<<<<<<<
 *     @fd.setter
 *     def fd(self, int fd):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).handle.fd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5122
 * 
 *     @property
 *     def fd(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.fd.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5125
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 *     def fd(self, int fd):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].handle.fd = fd
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_fd); /*proto*/
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_fd) {
  int __pyx_v_fd;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_fd); {
    __pyx_v_fd = __Pyx_PyInt_As_int(__pyx_arg_fd); if (unlikely((__pyx_v_fd == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5125, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.fd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((int)__pyx_v_fd));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, int __pyx_v_fd) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5125, 0, __PYX_ERR(0, 5125, __pyx_L1_error));

  /* "cuda/cuda.pyx":5127
 *     def fd(self, int fd):
 *         pass
 *         self._ptr[0].handle.fd = fd             # <<<<<<<<<<<<<<
 *     @property
 *     def win32(self):
 */
  (__pyx_v_self->_ptr[0]).handle.fd = __pyx_v_fd;

  /* "cuda/cuda.pyx":5125
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 *     def fd(self, int fd):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].handle.fd = fd
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.fd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5129
 *         self._ptr[0].handle.fd = fd
 *     @property
 *     def win32(self):             # <<<<<<<<<<<<<<
 *         return self._win32
 *     @win32.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5129, 0, __PYX_ERR(0, 5129, __pyx_L1_error));

  /* "cuda/cuda.pyx":5130
 *     @property
 *     def win32(self):
 *         return self._win32             # <<<<<<<<<<<<<<
 *     @win32.setter
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_win32));
  __pyx_r = ((PyObject *)__pyx_v_self->_win32);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5129
 *         self._ptr[0].handle.fd = fd
 *     @property
 *     def win32(self):             # <<<<<<<<<<<<<<
 *         return self._win32
 *     @win32.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.win32.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5132
 *         return self._win32
 *     @win32.setter
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(win32):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32); /*proto*/
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_win32), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, 0, "win32", 0))) __PYX_ERR(0, 5132, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_win32));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_win32) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5132, 0, __PYX_ERR(0, 5132, __pyx_L1_error));

  /* "cuda/cuda.pyx":5134
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s):
 *         pass
 *         for _attr in dir(win32):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_win32)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5134, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5134, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5134, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5134, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5134, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5134, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5135
 *         pass
 *         for _attr in dir(win32):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5135, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5136
 *         for _attr in dir(win32):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5135
 *         pass
 *         for _attr in dir(win32):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5137
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5137, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5138
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._win32, _attr, getattr(win32, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def nvSciBufObject(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_win32);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_win32), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5138, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5137
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5134
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s):
 *         pass
 *         for _attr in dir(win32):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5132
 *         return self._win32
 *     @win32.setter
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(win32):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.win32.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5140
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 *     def nvSciBufObject(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.nvSciBufObject
 *     @nvSciBufObject.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5140, 0, __PYX_ERR(0, 5140, __pyx_L1_error));

  /* "cuda/cuda.pyx":5141
 *     @property
 *     def nvSciBufObject(self):
 *         return <void_ptr>self._ptr[0].handle.nvSciBufObject             # <<<<<<<<<<<<<<
 *     @nvSciBufObject.setter
 *     def nvSciBufObject(self, nvSciBufObject):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).handle.nvSciBufObject)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5140
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 *     def nvSciBufObject(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.nvSciBufObject
 *     @nvSciBufObject.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.nvSciBufObject.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5143
 *         return <void_ptr>self._ptr[0].handle.nvSciBufObject
 *     @nvSciBufObject.setter
 *     def nvSciBufObject(self, nvSciBufObject):             # <<<<<<<<<<<<<<
 *         _cnvSciBufObject = utils.HelperInputVoidPtr(nvSciBufObject)
 *         self._ptr[0].handle.nvSciBufObject = <void*><void_ptr>_cnvSciBufObject.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciBufObject); /*proto*/
static int __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciBufObject) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((PyObject *)__pyx_v_nvSciBufObject));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, PyObject *__pyx_v_nvSciBufObject) {
  PyObject *__pyx_v__cnvSciBufObject = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5143, 0, __PYX_ERR(0, 5143, __pyx_L1_error));

  /* "cuda/cuda.pyx":5144
 *     @nvSciBufObject.setter
 *     def nvSciBufObject(self, nvSciBufObject):
 *         _cnvSciBufObject = utils.HelperInputVoidPtr(nvSciBufObject)             # <<<<<<<<<<<<<<
 *         self._ptr[0].handle.nvSciBufObject = <void*><void_ptr>_cnvSciBufObject.cptr
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_nvSciBufObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cnvSciBufObject = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5145
 *     def nvSciBufObject(self, nvSciBufObject):
 *         _cnvSciBufObject = utils.HelperInputVoidPtr(nvSciBufObject)
 *         self._ptr[0].handle.nvSciBufObject = <void*><void_ptr>_cnvSciBufObject.cptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cnvSciBufObject, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handle.nvSciBufObject = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5143
 *         return <void_ptr>self._ptr[0].handle.nvSciBufObject
 *     @nvSciBufObject.setter
 *     def nvSciBufObject(self, nvSciBufObject):             # <<<<<<<<<<<<<<
 *         _cnvSciBufObject = utils.HelperInputVoidPtr(nvSciBufObject)
 *         self._ptr[0].handle.nvSciBufObject = <void*><void_ptr>_cnvSciBufObject.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.nvSciBufObject.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cnvSciBufObject);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_8__reduce_cython__[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__292)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__293, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_10__setstate_cython__[] = "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__294)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__295, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5170
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5170, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5170, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5170, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5170, 0, __PYX_ERR(0, 5170, __pyx_L1_error));

  /* "cuda/cuda.pyx":5171
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5172
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":5173
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))));

    /* "cuda/cuda.pyx":5174
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":5175
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 5175, __pyx_L1_error)

      /* "cuda/cuda.pyx":5174
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":5171
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":5177
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":5178
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":5170
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5179
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5179, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5179, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5179, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5179, 0, __PYX_ERR(0, 5179, __pyx_L1_error));

  /* "cuda/cuda.pyx":5180
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_handle);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_handle));
  __pyx_v_self->_handle = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5179
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5181
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 5181, 0, __PYX_ERR(0, 5181, __pyx_L1_error));

  /* "cuda/cuda.pyx":5182
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5183
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":5182
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":5181
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":5185
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6getPtr[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__296)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5185, 0, __PYX_ERR(0, 5185, __pyx_L1_error));

  /* "cuda/cuda.pyx":5186
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5185
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5187
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr17__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5187, 0, __PYX_ERR(0, 5187, __pyx_L1_error));

  /* "cuda/cuda.pyx":5188
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5189
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5190
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]             # <<<<<<<<<<<<<<
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 *             str_list += ['size : ' + str(self.size)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5190, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5190, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_type, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5190, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5190, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5190, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5191
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['size : ' + str(self.size)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5191, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5191, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5191, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5191, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5191, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5191, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr17__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr17__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5191, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5191, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr17__pyx_v_line); __pyx_9genexpr17__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr17__pyx_v_line); __pyx_9genexpr17__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_handle_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5192
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 *             str_list += ['size : ' + str(self.size)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_size, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5193
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 *             str_list += ['size : ' + str(self.size)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5194
 *             str_list += ['size : ' + str(self.size)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5195
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5188
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  }

  /* "cuda/cuda.pyx":5197
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5187
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr17__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5200
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUexternalMemoryHandleType(self._ptr[0].type)
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5200, 0, __PYX_ERR(0, 5200, __pyx_L1_error));

  /* "cuda/cuda.pyx":5201
 *     @property
 *     def type(self):
 *         return CUexternalMemoryHandleType(self._ptr[0].type)             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, type not None : CUexternalMemoryHandleType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUexternalMemoryHandleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum((__pyx_v_self->_ptr[0]).type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5200
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUexternalMemoryHandleType(self._ptr[0].type)
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5203
 *         return CUexternalMemoryHandleType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUexternalMemoryHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_type) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "type"); __PYX_ERR(0, 5203, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_type));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5203, 0, __PYX_ERR(0, 5203, __pyx_L1_error));

  /* "cuda/cuda.pyx":5205
 *     def type(self, type not None : CUexternalMemoryHandleType):
 *         pass
 *         self._ptr[0].type = type.value             # <<<<<<<<<<<<<<
 *     @property
 *     def handle(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).type = __pyx_t_2;

  /* "cuda/cuda.pyx":5203
 *         return CUexternalMemoryHandleType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUexternalMemoryHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5207
 *         self._ptr[0].type = type.value
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return self._handle
 *     @handle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5207, 0, __PYX_ERR(0, 5207, __pyx_L1_error));

  /* "cuda/cuda.pyx":5208
 *     @property
 *     def handle(self):
 *         return self._handle             # <<<<<<<<<<<<<<
 *     @handle.setter
 *     def handle(self, handle not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_handle));
  __pyx_r = ((PyObject *)__pyx_v_self->_handle);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5207
 *         self._ptr[0].type = type.value
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return self._handle
 *     @handle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5210
 *         return self._handle
 *     @handle.setter
 *     def handle(self, handle not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(handle):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, 0, "handle", 0))) __PYX_ERR(0, 5210, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)__pyx_v_handle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *__pyx_v_handle) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5210, 0, __PYX_ERR(0, 5210, __pyx_L1_error));

  /* "cuda/cuda.pyx":5212
 *     def handle(self, handle not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u):
 *         pass
 *         for _attr in dir(handle):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5212, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5212, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5212, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5212, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5213
 *         pass
 *         for _attr in dir(handle):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5213, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5214
 *         for _attr in dir(handle):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5213
 *         pass
 *         for _attr in dir(handle):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5215
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5215, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5216
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._handle, _attr, getattr(handle, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def size(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_handle);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_handle), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5216, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5216, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5215
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5212
 *     def handle(self, handle not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u):
 *         pass
 *         for _attr in dir(handle):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5210
 *         return self._handle
 *     @handle.setter
 *     def handle(self, handle not None : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(handle):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.handle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5218
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 *     def size(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].size
 *     @size.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5218, 0, __PYX_ERR(0, 5218, __pyx_L1_error));

  /* "cuda/cuda.pyx":5219
 *     @property
 *     def size(self):
 *         return self._ptr[0].size             # <<<<<<<<<<<<<<
 *     @size.setter
 *     def size(self, unsigned long long size):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5218
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 *     def size(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].size
 *     @size.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5221
 *         return self._ptr[0].size
 *     @size.setter
 *     def size(self, unsigned long long size):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].size = size
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_size); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_size) {
  unsigned PY_LONG_LONG __pyx_v_size;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_size); {
    __pyx_v_size = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_size); if (unlikely((__pyx_v_size == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5221, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_size));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_size) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5221, 0, __PYX_ERR(0, 5221, __pyx_L1_error));

  /* "cuda/cuda.pyx":5223
 *     def size(self, unsigned long long size):
 *         pass
 *         self._ptr[0].size = size             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  (__pyx_v_self->_ptr[0]).size = __pyx_v_size;

  /* "cuda/cuda.pyx":5221
 *         return self._ptr[0].size
 *     @size.setter
 *     def size(self, unsigned long long size):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].size = size
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5225
 *         self._ptr[0].size = size
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5225, 0, __PYX_ERR(0, 5225, __pyx_L1_error));

  /* "cuda/cuda.pyx":5226
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5225
 *         self._ptr[0].size = size
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5228
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5228, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5228, 0, __PYX_ERR(0, 5228, __pyx_L1_error));

  /* "cuda/cuda.pyx":5230
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":5228
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5232
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5232, 0, __PYX_ERR(0, 5232, __pyx_L1_error));

  /* "cuda/cuda.pyx":5233
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5232
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5235
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5235, 0, __PYX_ERR(0, 5235, __pyx_L1_error));

  /* "cuda/cuda.pyx":5237
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 5237, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":5235
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_10__reduce_cython__[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__297)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__298, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_12__setstate_cython__[] = "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__299)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__300, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5260
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5260, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5260, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5260, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5260, 0, __PYX_ERR(0, 5260, __pyx_L1_error));

  /* "cuda/cuda.pyx":5261
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5262
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":5263
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))));

    /* "cuda/cuda.pyx":5264
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":5265
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5265, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5265, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 5265, __pyx_L1_error)

      /* "cuda/cuda.pyx":5264
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":5261
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":5267
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":5268
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":5260
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5269
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5269, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5269, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5269, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5269, 0, __PYX_ERR(0, 5269, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5271
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 5271, 0, __PYX_ERR(0, 5271, __pyx_L1_error));

  /* "cuda/cuda.pyx":5272
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5273
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":5272
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":5271
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":5275
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6getPtr[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__301)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5275, 0, __PYX_ERR(0, 5275, __pyx_L1_error));

  /* "cuda/cuda.pyx":5276
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5275
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5277
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5277, 0, __PYX_ERR(0, 5277, __pyx_L1_error));

  /* "cuda/cuda.pyx":5278
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5279
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['size : ' + str(self.size)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5280
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]             # <<<<<<<<<<<<<<
 *             str_list += ['size : ' + str(self.size)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offset_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offset, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5281
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['size : ' + str(self.size)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5282
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['size : ' + str(self.size)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5283
 *             str_list += ['size : ' + str(self.size)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5284
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5278
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]
 */
  }

  /* "cuda/cuda.pyx":5286
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5277
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5289
 * 
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].offset
 *     @offset.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5289, 0, __PYX_ERR(0, 5289, __pyx_L1_error));

  /* "cuda/cuda.pyx":5290
 *     @property
 *     def offset(self):
 *         return self._ptr[0].offset             # <<<<<<<<<<<<<<
 *     @offset.setter
 *     def offset(self, unsigned long long offset):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5289
 * 
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].offset
 *     @offset.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5292
 *         return self._ptr[0].offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].offset = offset
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset) {
  unsigned PY_LONG_LONG __pyx_v_offset;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offset); {
    __pyx_v_offset = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_offset); if (unlikely((__pyx_v_offset == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5292, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_offset));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5292, 0, __PYX_ERR(0, 5292, __pyx_L1_error));

  /* "cuda/cuda.pyx":5294
 *     def offset(self, unsigned long long offset):
 *         pass
 *         self._ptr[0].offset = offset             # <<<<<<<<<<<<<<
 *     @property
 *     def size(self):
 */
  (__pyx_v_self->_ptr[0]).offset = __pyx_v_offset;

  /* "cuda/cuda.pyx":5292
 *         return self._ptr[0].offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].offset = offset
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5296
 *         self._ptr[0].offset = offset
 *     @property
 *     def size(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].size
 *     @size.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5296, 0, __PYX_ERR(0, 5296, __pyx_L1_error));

  /* "cuda/cuda.pyx":5297
 *     @property
 *     def size(self):
 *         return self._ptr[0].size             # <<<<<<<<<<<<<<
 *     @size.setter
 *     def size(self, unsigned long long size):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5296
 *         self._ptr[0].offset = offset
 *     @property
 *     def size(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].size
 *     @size.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5299
 *         return self._ptr[0].size
 *     @size.setter
 *     def size(self, unsigned long long size):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].size = size
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_size); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_size) {
  unsigned PY_LONG_LONG __pyx_v_size;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_size); {
    __pyx_v_size = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_size); if (unlikely((__pyx_v_size == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5299, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_size));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_size) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5299, 0, __PYX_ERR(0, 5299, __pyx_L1_error));

  /* "cuda/cuda.pyx":5301
 *     def size(self, unsigned long long size):
 *         pass
 *         self._ptr[0].size = size             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  (__pyx_v_self->_ptr[0]).size = __pyx_v_size;

  /* "cuda/cuda.pyx":5299
 *         return self._ptr[0].size
 *     @size.setter
 *     def size(self, unsigned long long size):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].size = size
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5303
 *         self._ptr[0].size = size
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5303, 0, __PYX_ERR(0, 5303, __pyx_L1_error));

  /* "cuda/cuda.pyx":5304
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5303
 *         self._ptr[0].size = size
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5306
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5306, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5306, 0, __PYX_ERR(0, 5306, __pyx_L1_error));

  /* "cuda/cuda.pyx":5308
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":5306
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5310
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5310, 0, __PYX_ERR(0, 5310, __pyx_L1_error));

  /* "cuda/cuda.pyx":5311
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5310
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5313
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5313, 0, __PYX_ERR(0, 5313, __pyx_L1_error));

  /* "cuda/cuda.pyx":5315
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 5315, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":5313
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_10__reduce_cython__[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__302)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__303, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_12__setstate_cython__[] = "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__304)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__305, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5339
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5339, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5339, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5339, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5339, 0, __PYX_ERR(0, 5339, __pyx_L1_error));

  /* "cuda/cuda.pyx":5340
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5341
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":5342
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))));

    /* "cuda/cuda.pyx":5343
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":5344
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5344, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5344, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5344, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5344, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 5344, __pyx_L1_error)

      /* "cuda/cuda.pyx":5343
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":5340
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":5346
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":5347
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":5339
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5348
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5348, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5348, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5348, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5348, 0, __PYX_ERR(0, 5348, __pyx_L1_error));

  /* "cuda/cuda.pyx":5349
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).arrayDesc))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5349, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_arrayDesc);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_arrayDesc));
  __pyx_v_self->_arrayDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5348
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5350
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 5350, 0, __PYX_ERR(0, 5350, __pyx_L1_error));

  /* "cuda/cuda.pyx":5351
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5352
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":5351
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":5350
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._arrayDesc = CUDA_ARRAY3D_DESCRIPTOR(_ptr=<void_ptr>&self._ptr[0].arrayDesc)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":5354
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6getPtr[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__306)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5354, 0, __PYX_ERR(0, 5354, __pyx_L1_error));

  /* "cuda/cuda.pyx":5355
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5354
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5356
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr18__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5356, 0, __PYX_ERR(0, 5356, __pyx_L1_error));

  /* "cuda/cuda.pyx":5357
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5358
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['arrayDesc :\n' + '\n'.join(['    ' + line for line in str(self.arrayDesc).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5359
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]             # <<<<<<<<<<<<<<
 *             str_list += ['arrayDesc :\n' + '\n'.join(['    ' + line for line in str(self.arrayDesc).splitlines()])]
 *             str_list += ['numLevels : ' + str(self.numLevels)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offset_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offset, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5360
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['arrayDesc :\n' + '\n'.join(['    ' + line for line in str(self.arrayDesc).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['numLevels : ' + str(self.numLevels)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5360, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_arrayDesc_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5360, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5360, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5360, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5360, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5360, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr18__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr18__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5360, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5360, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr18__pyx_v_line); __pyx_9genexpr18__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr18__pyx_v_line); __pyx_9genexpr18__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_arrayDesc, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5361
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['arrayDesc :\n' + '\n'.join(['    ' + line for line in str(self.arrayDesc).splitlines()])]
 *             str_list += ['numLevels : ' + str(self.numLevels)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_numLevels_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_numLevels, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5362
 *             str_list += ['arrayDesc :\n' + '\n'.join(['    ' + line for line in str(self.arrayDesc).splitlines()])]
 *             str_list += ['numLevels : ' + str(self.numLevels)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5363
 *             str_list += ['numLevels : ' + str(self.numLevels)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5363, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5357
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['offset : ' + str(self.offset)]
 */
  }

  /* "cuda/cuda.pyx":5365
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5356
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr18__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5368
 * 
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].offset
 *     @offset.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5368, 0, __PYX_ERR(0, 5368, __pyx_L1_error));

  /* "cuda/cuda.pyx":5369
 *     @property
 *     def offset(self):
 *         return self._ptr[0].offset             # <<<<<<<<<<<<<<
 *     @offset.setter
 *     def offset(self, unsigned long long offset):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5368
 * 
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].offset
 *     @offset.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5371
 *         return self._ptr[0].offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].offset = offset
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset); /*proto*/
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset) {
  unsigned PY_LONG_LONG __pyx_v_offset;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offset); {
    __pyx_v_offset = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_offset); if (unlikely((__pyx_v_offset == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5371, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_offset));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5371, 0, __PYX_ERR(0, 5371, __pyx_L1_error));

  /* "cuda/cuda.pyx":5373
 *     def offset(self, unsigned long long offset):
 *         pass
 *         self._ptr[0].offset = offset             # <<<<<<<<<<<<<<
 *     @property
 *     def arrayDesc(self):
 */
  (__pyx_v_self->_ptr[0]).offset = __pyx_v_offset;

  /* "cuda/cuda.pyx":5371
 *         return self._ptr[0].offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].offset = offset
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5375
 *         self._ptr[0].offset = offset
 *     @property
 *     def arrayDesc(self):             # <<<<<<<<<<<<<<
 *         return self._arrayDesc
 *     @arrayDesc.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5375, 0, __PYX_ERR(0, 5375, __pyx_L1_error));

  /* "cuda/cuda.pyx":5376
 *     @property
 *     def arrayDesc(self):
 *         return self._arrayDesc             # <<<<<<<<<<<<<<
 *     @arrayDesc.setter
 *     def arrayDesc(self, arrayDesc not None : CUDA_ARRAY3D_DESCRIPTOR):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_arrayDesc));
  __pyx_r = ((PyObject *)__pyx_v_self->_arrayDesc);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5375
 *         self._ptr[0].offset = offset
 *     @property
 *     def arrayDesc(self):             # <<<<<<<<<<<<<<
 *         return self._arrayDesc
 *     @arrayDesc.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.arrayDesc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5378
 *         return self._arrayDesc
 *     @arrayDesc.setter
 *     def arrayDesc(self, arrayDesc not None : CUDA_ARRAY3D_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(arrayDesc):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_arrayDesc); /*proto*/
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_arrayDesc) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_arrayDesc), __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR, 0, "arrayDesc", 0))) __PYX_ERR(0, 5378, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)__pyx_v_arrayDesc));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_arrayDesc) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5378, 0, __PYX_ERR(0, 5378, __pyx_L1_error));

  /* "cuda/cuda.pyx":5380
 *     def arrayDesc(self, arrayDesc not None : CUDA_ARRAY3D_DESCRIPTOR):
 *         pass
 *         for _attr in dir(arrayDesc):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_arrayDesc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5380, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5380, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5380, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5380, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5380, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5380, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5380, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5381
 *         pass
 *         for _attr in dir(arrayDesc):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5381, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5382
 *         for _attr in dir(arrayDesc):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._arrayDesc, _attr, getattr(arrayDesc, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5381
 *         pass
 *         for _attr in dir(arrayDesc):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5383
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._arrayDesc, _attr, getattr(arrayDesc, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5383, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5384
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._arrayDesc, _attr, getattr(arrayDesc, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def numLevels(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_arrayDesc);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_arrayDesc), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5384, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5383
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._arrayDesc, _attr, getattr(arrayDesc, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5380
 *     def arrayDesc(self, arrayDesc not None : CUDA_ARRAY3D_DESCRIPTOR):
 *         pass
 *         for _attr in dir(arrayDesc):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5378
 *         return self._arrayDesc
 *     @arrayDesc.setter
 *     def arrayDesc(self, arrayDesc not None : CUDA_ARRAY3D_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(arrayDesc):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.arrayDesc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5386
 *                 setattr(self._arrayDesc, _attr, getattr(arrayDesc, _attr))
 *     @property
 *     def numLevels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].numLevels
 *     @numLevels.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5386, 0, __PYX_ERR(0, 5386, __pyx_L1_error));

  /* "cuda/cuda.pyx":5387
 *     @property
 *     def numLevels(self):
 *         return self._ptr[0].numLevels             # <<<<<<<<<<<<<<
 *     @numLevels.setter
 *     def numLevels(self, unsigned int numLevels):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).numLevels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5386
 *                 setattr(self._arrayDesc, _attr, getattr(arrayDesc, _attr))
 *     @property
 *     def numLevels(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].numLevels
 *     @numLevels.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.numLevels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5389
 *         return self._ptr[0].numLevels
 *     @numLevels.setter
 *     def numLevels(self, unsigned int numLevels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].numLevels = numLevels
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numLevels); /*proto*/
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numLevels) {
  unsigned int __pyx_v_numLevels;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_numLevels); {
    __pyx_v_numLevels = __Pyx_PyInt_As_unsigned_int(__pyx_arg_numLevels); if (unlikely((__pyx_v_numLevels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5389, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.numLevels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_numLevels));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, unsigned int __pyx_v_numLevels) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5389, 0, __PYX_ERR(0, 5389, __pyx_L1_error));

  /* "cuda/cuda.pyx":5391
 *     def numLevels(self, unsigned int numLevels):
 *         pass
 *         self._ptr[0].numLevels = numLevels             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).numLevels = __pyx_v_numLevels;

  /* "cuda/cuda.pyx":5389
 *         return self._ptr[0].numLevels
 *     @numLevels.setter
 *     def numLevels(self, unsigned int numLevels):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].numLevels = numLevels
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.numLevels.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5393
 *         self._ptr[0].numLevels = numLevels
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5393, 0, __PYX_ERR(0, 5393, __pyx_L1_error));

  /* "cuda/cuda.pyx":5394
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5393
 *         self._ptr[0].numLevels = numLevels
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5396
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5396, 0, __PYX_ERR(0, 5396, __pyx_L1_error));

  /* "cuda/cuda.pyx":5398
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 5398, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":5396
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_10__reduce_cython__[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__307)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__308, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_12__setstate_cython__[] = "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__309)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__310, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5416
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5416, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5416, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5416, 0, __PYX_ERR(0, 5416, __pyx_L1_error));

  /* "cuda/cuda.pyx":5417
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5416
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5418
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5418, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5418, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5418, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5418, 0, __PYX_ERR(0, 5418, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5420
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__311)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5420, 0, __PYX_ERR(0, 5420, __pyx_L1_error));

  /* "cuda/cuda.pyx":5421
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5420
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5422
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5422, 0, __PYX_ERR(0, 5422, __pyx_L1_error));

  /* "cuda/cuda.pyx":5423
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5424
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['handle : ' + hex(self.handle)]
 *             str_list += ['name : ' + hex(self.name)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5425
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]             # <<<<<<<<<<<<<<
 *             str_list += ['name : ' + hex(self.name)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_handle, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5426
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]
 *             str_list += ['name : ' + hex(self.name)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5427
 *             str_list += ['handle : ' + hex(self.handle)]
 *             str_list += ['name : ' + hex(self.name)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5423
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['handle : ' + hex(self.handle)]
 */
  }

  /* "cuda/cuda.pyx":5429
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5422
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5432
 * 
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5432, 0, __PYX_ERR(0, 5432, __pyx_L1_error));

  /* "cuda/cuda.pyx":5433
 *     @property
 *     def handle(self):
 *         return <void_ptr>self._ptr[0].handle.win32.handle             # <<<<<<<<<<<<<<
 *     @handle.setter
 *     def handle(self, handle):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).handle.win32.handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5432
 * 
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5435
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 *     def handle(self, handle):             # <<<<<<<<<<<<<<
 *         _chandle = utils.HelperInputVoidPtr(handle)
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), ((PyObject *)__pyx_v_handle));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_handle) {
  PyObject *__pyx_v__chandle = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5435, 0, __PYX_ERR(0, 5435, __pyx_L1_error));

  /* "cuda/cuda.pyx":5436
 *     @handle.setter
 *     def handle(self, handle):
 *         _chandle = utils.HelperInputVoidPtr(handle)             # <<<<<<<<<<<<<<
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_handle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__chandle = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5437
 *     def handle(self, handle):
 *         _chandle = utils.HelperInputVoidPtr(handle)
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def name(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__chandle, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handle.win32.handle = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5435
 *         return <void_ptr>self._ptr[0].handle.win32.handle
 *     @handle.setter
 *     def handle(self, handle):             # <<<<<<<<<<<<<<
 *         _chandle = utils.HelperInputVoidPtr(handle)
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.handle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__chandle);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5439
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 *     @property
 *     def name(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5439, 0, __PYX_ERR(0, 5439, __pyx_L1_error));

  /* "cuda/cuda.pyx":5440
 *     @property
 *     def name(self):
 *         return <void_ptr>self._ptr[0].handle.win32.name             # <<<<<<<<<<<<<<
 *     @name.setter
 *     def name(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).handle.win32.name)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5439
 *         self._ptr[0].handle.win32.handle = <void*><void_ptr>_chandle.cptr
 *     @property
 *     def name(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5442
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 *     def name(self, name):             # <<<<<<<<<<<<<<
 *         _cname = utils.HelperInputVoidPtr(name)
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v__cname = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5442, 0, __PYX_ERR(0, 5442, __pyx_L1_error));

  /* "cuda/cuda.pyx":5443
 *     @name.setter
 *     def name(self, name):
 *         _cname = utils.HelperInputVoidPtr(name)             # <<<<<<<<<<<<<<
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cname = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5444
 *     def name(self, name):
 *         _cname = utils.HelperInputVoidPtr(name)
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cname, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handle.win32.name = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5442
 *         return <void_ptr>self._ptr[0].handle.win32.name
 *     @name.setter
 *     def name(self, name):             # <<<<<<<<<<<<<<
 *         _cname = utils.HelperInputVoidPtr(name)
 *         self._ptr[0].handle.win32.name = <void*><void_ptr>_cname.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cname);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__312)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__313, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__314)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__315, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5464
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5464, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5464, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5464, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5464, 0, __PYX_ERR(0, 5464, __pyx_L1_error));

  /* "cuda/cuda.pyx":5465
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5464
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5466
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5466, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5466, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5466, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5466, 0, __PYX_ERR(0, 5466, __pyx_L1_error));

  /* "cuda/cuda.pyx":5467
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_win32);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_win32));
  __pyx_v_self->_win32 = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5466
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5468
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__316)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5468, 0, __PYX_ERR(0, 5468, __pyx_L1_error));

  /* "cuda/cuda.pyx":5469
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5468
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5470
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr19__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5470, 0, __PYX_ERR(0, 5470, __pyx_L1_error));

  /* "cuda/cuda.pyx":5471
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5472
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fd : ' + str(self.fd)]
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5472, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5473
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]             # <<<<<<<<<<<<<<
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 *             str_list += ['nvSciSyncObj : ' + hex(self.nvSciSyncObj)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fd_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_fd, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5474
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['nvSciSyncObj : ' + hex(self.nvSciSyncObj)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5474, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_win32_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5474, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5474, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr19__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr19__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5474, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr19__pyx_v_line); __pyx_9genexpr19__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr19__pyx_v_line); __pyx_9genexpr19__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_win32, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5475
 *             str_list += ['fd : ' + str(self.fd)]
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 *             str_list += ['nvSciSyncObj : ' + hex(self.nvSciSyncObj)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nvSciSyncObj_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_nvSciSyncObj, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5476
 *             str_list += ['win32 :\n' + '\n'.join(['    ' + line for line in str(self.win32).splitlines()])]
 *             str_list += ['nvSciSyncObj : ' + hex(self.nvSciSyncObj)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5471
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fd : ' + str(self.fd)]
 */
  }

  /* "cuda/cuda.pyx":5478
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5470
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr19__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5481
 * 
 *     @property
 *     def fd(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5481, 0, __PYX_ERR(0, 5481, __pyx_L1_error));

  /* "cuda/cuda.pyx":5482
 *     @property
 *     def fd(self):
 *         return self._ptr[0].handle.fd             # <<<<<<<<<<<<<<
 *     @fd.setter
 *     def fd(self, int fd):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).handle.fd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5481
 * 
 *     @property
 *     def fd(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.fd.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5484
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 *     def fd(self, int fd):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].handle.fd = fd
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_fd); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_fd) {
  int __pyx_v_fd;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_fd); {
    __pyx_v_fd = __Pyx_PyInt_As_int(__pyx_arg_fd); if (unlikely((__pyx_v_fd == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5484, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.fd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((int)__pyx_v_fd));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, int __pyx_v_fd) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5484, 0, __PYX_ERR(0, 5484, __pyx_L1_error));

  /* "cuda/cuda.pyx":5486
 *     def fd(self, int fd):
 *         pass
 *         self._ptr[0].handle.fd = fd             # <<<<<<<<<<<<<<
 *     @property
 *     def win32(self):
 */
  (__pyx_v_self->_ptr[0]).handle.fd = __pyx_v_fd;

  /* "cuda/cuda.pyx":5484
 *         return self._ptr[0].handle.fd
 *     @fd.setter
 *     def fd(self, int fd):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].handle.fd = fd
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.fd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5488
 *         self._ptr[0].handle.fd = fd
 *     @property
 *     def win32(self):             # <<<<<<<<<<<<<<
 *         return self._win32
 *     @win32.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5488, 0, __PYX_ERR(0, 5488, __pyx_L1_error));

  /* "cuda/cuda.pyx":5489
 *     @property
 *     def win32(self):
 *         return self._win32             # <<<<<<<<<<<<<<
 *     @win32.setter
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_win32));
  __pyx_r = ((PyObject *)__pyx_v_self->_win32);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5488
 *         self._ptr[0].handle.fd = fd
 *     @property
 *     def win32(self):             # <<<<<<<<<<<<<<
 *         return self._win32
 *     @win32.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.win32.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5491
 *         return self._win32
 *     @win32.setter
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(win32):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_win32), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, 0, "win32", 0))) __PYX_ERR(0, 5491, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)__pyx_v_win32));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *__pyx_v_win32) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5491, 0, __PYX_ERR(0, 5491, __pyx_L1_error));

  /* "cuda/cuda.pyx":5493
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s):
 *         pass
 *         for _attr in dir(win32):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_win32)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5493, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5493, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5493, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5493, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5493, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5493, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5494
 *         pass
 *         for _attr in dir(win32):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5494, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5495
 *         for _attr in dir(win32):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5494
 *         pass
 *         for _attr in dir(win32):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5496
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5496, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5497
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._win32, _attr, getattr(win32, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def nvSciSyncObj(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_win32);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_win32), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5497, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5497, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5496
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5493
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s):
 *         pass
 *         for _attr in dir(win32):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5491
 *         return self._win32
 *     @win32.setter
 *     def win32(self, win32 not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(win32):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.win32.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5499
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 *     def nvSciSyncObj(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.nvSciSyncObj
 *     @nvSciSyncObj.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5499, 0, __PYX_ERR(0, 5499, __pyx_L1_error));

  /* "cuda/cuda.pyx":5500
 *     @property
 *     def nvSciSyncObj(self):
 *         return <void_ptr>self._ptr[0].handle.nvSciSyncObj             # <<<<<<<<<<<<<<
 *     @nvSciSyncObj.setter
 *     def nvSciSyncObj(self, nvSciSyncObj):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).handle.nvSciSyncObj)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5499
 *                 setattr(self._win32, _attr, getattr(win32, _attr))
 *     @property
 *     def nvSciSyncObj(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].handle.nvSciSyncObj
 *     @nvSciSyncObj.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.nvSciSyncObj.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5502
 *         return <void_ptr>self._ptr[0].handle.nvSciSyncObj
 *     @nvSciSyncObj.setter
 *     def nvSciSyncObj(self, nvSciSyncObj):             # <<<<<<<<<<<<<<
 *         _cnvSciSyncObj = utils.HelperInputVoidPtr(nvSciSyncObj)
 *         self._ptr[0].handle.nvSciSyncObj = <void*><void_ptr>_cnvSciSyncObj.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciSyncObj); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciSyncObj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((PyObject *)__pyx_v_nvSciSyncObj));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, PyObject *__pyx_v_nvSciSyncObj) {
  PyObject *__pyx_v__cnvSciSyncObj = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5502, 0, __PYX_ERR(0, 5502, __pyx_L1_error));

  /* "cuda/cuda.pyx":5503
 *     @nvSciSyncObj.setter
 *     def nvSciSyncObj(self, nvSciSyncObj):
 *         _cnvSciSyncObj = utils.HelperInputVoidPtr(nvSciSyncObj)             # <<<<<<<<<<<<<<
 *         self._ptr[0].handle.nvSciSyncObj = <void*><void_ptr>_cnvSciSyncObj.cptr
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_nvSciSyncObj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cnvSciSyncObj = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5504
 *     def nvSciSyncObj(self, nvSciSyncObj):
 *         _cnvSciSyncObj = utils.HelperInputVoidPtr(nvSciSyncObj)
 *         self._ptr[0].handle.nvSciSyncObj = <void*><void_ptr>_cnvSciSyncObj.cptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cnvSciSyncObj, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5504, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handle.nvSciSyncObj = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5502
 *         return <void_ptr>self._ptr[0].handle.nvSciSyncObj
 *     @nvSciSyncObj.setter
 *     def nvSciSyncObj(self, nvSciSyncObj):             # <<<<<<<<<<<<<<
 *         _cnvSciSyncObj = utils.HelperInputVoidPtr(nvSciSyncObj)
 *         self._ptr[0].handle.nvSciSyncObj = <void*><void_ptr>_cnvSciSyncObj.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.nvSciSyncObj.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cnvSciSyncObj);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__317)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__318, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__319)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__320, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5527
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5527, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5527, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5527, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5527, 0, __PYX_ERR(0, 5527, __pyx_L1_error));

  /* "cuda/cuda.pyx":5528
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5529
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":5530
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))));

    /* "cuda/cuda.pyx":5531
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":5532
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5532, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5532, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5532, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5532, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 5532, __pyx_L1_error)

      /* "cuda/cuda.pyx":5531
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":5528
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":5534
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":5535
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":5527
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5536
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5536, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5536, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5536, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5536, 0, __PYX_ERR(0, 5536, __pyx_L1_error));

  /* "cuda/cuda.pyx":5537
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_handle);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_handle));
  __pyx_v_self->_handle = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5536
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5538
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 5538, 0, __PYX_ERR(0, 5538, __pyx_L1_error));

  /* "cuda/cuda.pyx":5539
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5540
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":5539
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":5538
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._handle = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":5542
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6getPtr[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__321)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5542, 0, __PYX_ERR(0, 5542, __pyx_L1_error));

  /* "cuda/cuda.pyx":5543
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5542
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5544
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr20__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5544, 0, __PYX_ERR(0, 5544, __pyx_L1_error));

  /* "cuda/cuda.pyx":5545
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5546
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5547
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]             # <<<<<<<<<<<<<<
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_type, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5548
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5548, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5548, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5548, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5548, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5548, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5548, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr20__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr20__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5548, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5548, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr20__pyx_v_line); __pyx_9genexpr20__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr20__pyx_v_line); __pyx_9genexpr20__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_handle_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5549
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5550
 *             str_list += ['handle :\n' + '\n'.join(['    ' + line for line in str(self.handle).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5551
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5545
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  }

  /* "cuda/cuda.pyx":5553
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5544
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr20__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5556
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUexternalSemaphoreHandleType(self._ptr[0].type)
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5556, 0, __PYX_ERR(0, 5556, __pyx_L1_error));

  /* "cuda/cuda.pyx":5557
 *     @property
 *     def type(self):
 *         return CUexternalSemaphoreHandleType(self._ptr[0].type)             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, type not None : CUexternalSemaphoreHandleType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUexternalSemaphoreHandleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum((__pyx_v_self->_ptr[0]).type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5556
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUexternalSemaphoreHandleType(self._ptr[0].type)
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5559
 *         return CUexternalSemaphoreHandleType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUexternalSemaphoreHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_type) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "type"); __PYX_ERR(0, 5559, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_type));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5559, 0, __PYX_ERR(0, 5559, __pyx_L1_error));

  /* "cuda/cuda.pyx":5561
 *     def type(self, type not None : CUexternalSemaphoreHandleType):
 *         pass
 *         self._ptr[0].type = type.value             # <<<<<<<<<<<<<<
 *     @property
 *     def handle(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).type = __pyx_t_2;

  /* "cuda/cuda.pyx":5559
 *         return CUexternalSemaphoreHandleType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUexternalSemaphoreHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5563
 *         self._ptr[0].type = type.value
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return self._handle
 *     @handle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5563, 0, __PYX_ERR(0, 5563, __pyx_L1_error));

  /* "cuda/cuda.pyx":5564
 *     @property
 *     def handle(self):
 *         return self._handle             # <<<<<<<<<<<<<<
 *     @handle.setter
 *     def handle(self, handle not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_handle));
  __pyx_r = ((PyObject *)__pyx_v_self->_handle);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5563
 *         self._ptr[0].type = type.value
 *     @property
 *     def handle(self):             # <<<<<<<<<<<<<<
 *         return self._handle
 *     @handle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5566
 *         return self._handle
 *     @handle.setter
 *     def handle(self, handle not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(handle):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, 0, "handle", 0))) __PYX_ERR(0, 5566, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)__pyx_v_handle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *__pyx_v_handle) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5566, 0, __PYX_ERR(0, 5566, __pyx_L1_error));

  /* "cuda/cuda.pyx":5568
 *     def handle(self, handle not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u):
 *         pass
 *         for _attr in dir(handle):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5568, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5568, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5568, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5568, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5568, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5568, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5568, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5569
 *         pass
 *         for _attr in dir(handle):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5569, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5570
 *         for _attr in dir(handle):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5569
 *         pass
 *         for _attr in dir(handle):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5571
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5571, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5571, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5571, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5572
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._handle, _attr, getattr(handle, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_handle);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_handle), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5572, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5572, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5571
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5568
 *     def handle(self, handle not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u):
 *         pass
 *         for _attr in dir(handle):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5566
 *         return self._handle
 *     @handle.setter
 *     def handle(self, handle not None : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(handle):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.handle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5574
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5574, 0, __PYX_ERR(0, 5574, __pyx_L1_error));

  /* "cuda/cuda.pyx":5575
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5574
 *                 setattr(self._handle, _attr, getattr(handle, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5577
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5577, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5577, 0, __PYX_ERR(0, 5577, __pyx_L1_error));

  /* "cuda/cuda.pyx":5579
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":5577
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5581
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5581, 0, __PYX_ERR(0, 5581, __pyx_L1_error));

  /* "cuda/cuda.pyx":5582
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5581
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5584
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5584, 0, __PYX_ERR(0, 5584, __pyx_L1_error));

  /* "cuda/cuda.pyx":5586
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 5586, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":5584
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_10__reduce_cython__[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__322)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__323, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_12__setstate_cython__[] = "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__324)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__325, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5602
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5602, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5602, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5602, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5602, 0, __PYX_ERR(0, 5602, __pyx_L1_error));

  /* "cuda/cuda.pyx":5603
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5602
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5604
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5604, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5604, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5604, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5604, 0, __PYX_ERR(0, 5604, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5606
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__326)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5606, 0, __PYX_ERR(0, 5606, __pyx_L1_error));

  /* "cuda/cuda.pyx":5607
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5606
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5608
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5608, 0, __PYX_ERR(0, 5608, __pyx_L1_error));

  /* "cuda/cuda.pyx":5609
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5610
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['value : ' + str(self.value)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5610, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5611
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_value_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5612
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5612, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5609
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]
 */
  }

  /* "cuda/cuda.pyx":5614
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5608
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5617
 * 
 *     @property
 *     def value(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5617, 0, __PYX_ERR(0, 5617, __pyx_L1_error));

  /* "cuda/cuda.pyx":5618
 *     @property
 *     def value(self):
 *         return self._ptr[0].params.fence.value             # <<<<<<<<<<<<<<
 *     @value.setter
 *     def value(self, unsigned long long value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).params.fence.value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5617
 * 
 *     @property
 *     def value(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5620
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 *     def value(self, unsigned long long value):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.fence.value = value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/
static int __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) {
  unsigned PY_LONG_LONG __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_value); {
    __pyx_v_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_value); if (unlikely((__pyx_v_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5620, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_value) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5620, 0, __PYX_ERR(0, 5620, __pyx_L1_error));

  /* "cuda/cuda.pyx":5622
 *     def value(self, unsigned long long value):
 *         pass
 *         self._ptr[0].params.fence.value = value             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u:
 */
  (__pyx_v_self->_ptr[0]).params.fence.value = __pyx_v_value;

  /* "cuda/cuda.pyx":5620
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 *     def value(self, unsigned long long value):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.fence.value = value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__327)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__328, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__329)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__330, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5640
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5640, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5640, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5640, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5640, 0, __PYX_ERR(0, 5640, __pyx_L1_error));

  /* "cuda/cuda.pyx":5641
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5640
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5642
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5642, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5642, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5642, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5642, 0, __PYX_ERR(0, 5642, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5644
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__331)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5644, 0, __PYX_ERR(0, 5644, __pyx_L1_error));

  /* "cuda/cuda.pyx":5645
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5644
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5646
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5646, 0, __PYX_ERR(0, 5646, __pyx_L1_error));

  /* "cuda/cuda.pyx":5647
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5648
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fence : ' + hex(self.fence)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5648, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5649
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fence_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_fence, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5650
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5651
 *             str_list += ['fence : ' + hex(self.fence)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5647
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]
 */
  }

  /* "cuda/cuda.pyx":5653
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5646
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5656
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5656, 0, __PYX_ERR(0, 5656, __pyx_L1_error));

  /* "cuda/cuda.pyx":5657
 *     @property
 *     def fence(self):
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence             # <<<<<<<<<<<<<<
 *     @fence.setter
 *     def fence(self, fence):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).params.nvSciSync.fence)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5656
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.fence.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5659
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 *     def fence(self, fence):             # <<<<<<<<<<<<<<
 *         _cfence = utils.HelperInputVoidPtr(fence)
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence); /*proto*/
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), ((PyObject *)__pyx_v_fence));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, PyObject *__pyx_v_fence) {
  PyObject *__pyx_v__cfence = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5659, 0, __PYX_ERR(0, 5659, __pyx_L1_error));

  /* "cuda/cuda.pyx":5660
 *     @fence.setter
 *     def fence(self, fence):
 *         _cfence = utils.HelperInputVoidPtr(fence)             # <<<<<<<<<<<<<<
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_fence); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cfence = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5661
 *     def fence(self, fence):
 *         _cfence = utils.HelperInputVoidPtr(fence)
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cfence, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5661, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).params.nvSciSync.fence = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5659
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 *     def fence(self, fence):             # <<<<<<<<<<<<<<
 *         _cfence = utils.HelperInputVoidPtr(fence)
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.fence.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cfence);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5663
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5663, 0, __PYX_ERR(0, 5663, __pyx_L1_error));

  /* "cuda/cuda.pyx":5664
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].params.nvSciSync.reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, unsigned long long reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).params.nvSciSync.reserved); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5663
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5666
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 *     def reserved(self, unsigned long long reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.nvSciSync.reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_reserved) {
  unsigned PY_LONG_LONG __pyx_v_reserved;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_reserved); {
    __pyx_v_reserved = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_reserved); if (unlikely((__pyx_v_reserved == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5666, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5666, 0, __PYX_ERR(0, 5666, __pyx_L1_error));

  /* "cuda/cuda.pyx":5668
 *     def reserved(self, unsigned long long reserved):
 *         pass
 *         self._ptr[0].params.nvSciSync.reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s:
 */
  (__pyx_v_self->_ptr[0]).params.nvSciSync.reserved = __pyx_v_reserved;

  /* "cuda/cuda.pyx":5666
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 *     def reserved(self, unsigned long long reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.nvSciSync.reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__332)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__333, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__334)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__335, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5684
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5684, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5684, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5684, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5684, 0, __PYX_ERR(0, 5684, __pyx_L1_error));

  /* "cuda/cuda.pyx":5685
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5684
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5686
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5686, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5686, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5686, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5686, 0, __PYX_ERR(0, 5686, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5688
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__336)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5688, 0, __PYX_ERR(0, 5688, __pyx_L1_error));

  /* "cuda/cuda.pyx":5689
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5689, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5688
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5690
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5690, 0, __PYX_ERR(0, 5690, __pyx_L1_error));

  /* "cuda/cuda.pyx":5691
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5692
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['key : ' + str(self.key)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5692, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5693
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_key_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_key, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5694
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5691
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]
 */
  }

  /* "cuda/cuda.pyx":5696
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5690
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5699
 * 
 *     @property
 *     def key(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5699, 0, __PYX_ERR(0, 5699, __pyx_L1_error));

  /* "cuda/cuda.pyx":5700
 *     @property
 *     def key(self):
 *         return self._ptr[0].params.keyedMutex.key             # <<<<<<<<<<<<<<
 *     @key.setter
 *     def key(self, unsigned long long key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).params.keyedMutex.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5699
 * 
 *     @property
 *     def key(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.key.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5702
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 *     def key(self, unsigned long long key):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.keyedMutex.key = key
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_key); /*proto*/
static int __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_key) {
  unsigned PY_LONG_LONG __pyx_v_key;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_key); if (unlikely((__pyx_v_key == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5702, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.key.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_key));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_key) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5702, 0, __PYX_ERR(0, 5702, __pyx_L1_error));

  /* "cuda/cuda.pyx":5704
 *     def key(self, unsigned long long key):
 *         pass
 *         self._ptr[0].params.keyedMutex.key = key             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s:
 */
  (__pyx_v_self->_ptr[0]).params.keyedMutex.key = __pyx_v_key;

  /* "cuda/cuda.pyx":5702
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 *     def key(self, unsigned long long key):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.keyedMutex.key = key
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.key.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__337)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__338, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__339)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__340, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5726
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5726, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5726, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5726, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5726, 0, __PYX_ERR(0, 5726, __pyx_L1_error));

  /* "cuda/cuda.pyx":5727
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5726
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5728
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5728, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5728, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5728, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5728, 0, __PYX_ERR(0, 5728, __pyx_L1_error));

  /* "cuda/cuda.pyx":5729
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5729, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_fence);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_fence));
  __pyx_v_self->_fence = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5730
 *     def __init__(self, void_ptr _ptr):
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 5730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_nvSciSync);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_nvSciSync));
  __pyx_v_self->_nvSciSync = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5731
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5731, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_keyedMutex);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_keyedMutex));
  __pyx_v_self->_keyedMutex = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5728
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5732
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__341)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5732, 0, __PYX_ERR(0, 5732, __pyx_L1_error));

  /* "cuda/cuda.pyx":5733
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5732
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5734
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr21__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr22__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr23__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5734, 0, __PYX_ERR(0, 5734, __pyx_L1_error));

  /* "cuda/cuda.pyx":5735
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5736
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5737
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5737, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fence_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5737, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5737, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5737, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5737, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5737, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr21__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr21__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5737, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5737, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr21__pyx_v_line); __pyx_9genexpr21__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr21__pyx_v_line); __pyx_9genexpr21__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_fence_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5738
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5738, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nvSciSync_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5738, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5738, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5738, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5738, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5738, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr22__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr22__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5738, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 5738, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_9genexpr22__pyx_v_line); __pyx_9genexpr22__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_9genexpr22__pyx_v_line); __pyx_9genexpr22__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_nvSciSync, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5739
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5739, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_keyedMutex_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5739, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5739, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5739, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5739, __pyx_L18_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5739, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr23__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr23__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5739, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5739, __pyx_L18_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr23__pyx_v_line); __pyx_9genexpr23__pyx_v_line = 0;
      goto __pyx_L21_exit_scope;
      __pyx_L18_error:;
      __Pyx_XDECREF(__pyx_9genexpr23__pyx_v_line); __pyx_9genexpr23__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L21_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_keyedMutex, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5740
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5741
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5735
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":5743
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5734
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr21__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr22__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr23__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5746
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return self._fence
 *     @fence.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5746, 0, __PYX_ERR(0, 5746, __pyx_L1_error));

  /* "cuda/cuda.pyx":5747
 *     @property
 *     def fence(self):
 *         return self._fence             # <<<<<<<<<<<<<<
 *     @fence.setter
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_fence));
  __pyx_r = ((PyObject *)__pyx_v_self->_fence);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5746
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return self._fence
 *     @fence.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.fence.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5749
 *         return self._fence
 *     @fence.setter
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(fence):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence); /*proto*/
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fence), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s, 0, "fence", 0))) __PYX_ERR(0, 5749, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)__pyx_v_fence));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *__pyx_v_fence) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5749, 0, __PYX_ERR(0, 5749, __pyx_L1_error));

  /* "cuda/cuda.pyx":5751
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s):
 *         pass
 *         for _attr in dir(fence):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_fence)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5751, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5751, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5751, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5751, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5752
 *         pass
 *         for _attr in dir(fence):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5752, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5753
 *         for _attr in dir(fence):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5752
 *         pass
 *         for _attr in dir(fence):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5754
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5754, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5754, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5755
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._fence, _attr, getattr(fence, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def nvSciSync(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_fence);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_fence), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5755, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5754
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5751
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s):
 *         pass
 *         for _attr in dir(fence):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5749
 *         return self._fence
 *     @fence.setter
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(fence):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.fence.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5757
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 *     def nvSciSync(self):             # <<<<<<<<<<<<<<
 *         return self._nvSciSync
 *     @nvSciSync.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5757, 0, __PYX_ERR(0, 5757, __pyx_L1_error));

  /* "cuda/cuda.pyx":5758
 *     @property
 *     def nvSciSync(self):
 *         return self._nvSciSync             # <<<<<<<<<<<<<<
 *     @nvSciSync.setter
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_nvSciSync));
  __pyx_r = ((PyObject *)__pyx_v_self->_nvSciSync);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5757
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 *     def nvSciSync(self):             # <<<<<<<<<<<<<<
 *         return self._nvSciSync
 *     @nvSciSync.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.nvSciSync.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5760
 *         return self._nvSciSync
 *     @nvSciSync.setter
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(nvSciSync):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciSync); /*proto*/
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciSync) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nvSciSync), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, 0, "nvSciSync", 0))) __PYX_ERR(0, 5760, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_nvSciSync));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *__pyx_v_nvSciSync) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5760, 0, __PYX_ERR(0, 5760, __pyx_L1_error));

  /* "cuda/cuda.pyx":5762
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u):
 *         pass
 *         for _attr in dir(nvSciSync):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_nvSciSync)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5762, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5762, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5762, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5762, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5762, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5762, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5763
 *         pass
 *         for _attr in dir(nvSciSync):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5763, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5764
 *         for _attr in dir(nvSciSync):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5763
 *         pass
 *         for _attr in dir(nvSciSync):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5765
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5765, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5765, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5765, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5766
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def keyedMutex(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_nvSciSync);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_nvSciSync), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5766, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5765
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5762
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u):
 *         pass
 *         for _attr in dir(nvSciSync):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5760
 *         return self._nvSciSync
 *     @nvSciSync.setter
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(nvSciSync):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.nvSciSync.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5768
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 *     def keyedMutex(self):             # <<<<<<<<<<<<<<
 *         return self._keyedMutex
 *     @keyedMutex.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5768, 0, __PYX_ERR(0, 5768, __pyx_L1_error));

  /* "cuda/cuda.pyx":5769
 *     @property
 *     def keyedMutex(self):
 *         return self._keyedMutex             # <<<<<<<<<<<<<<
 *     @keyedMutex.setter
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_keyedMutex));
  __pyx_r = ((PyObject *)__pyx_v_self->_keyedMutex);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5768
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 *     def keyedMutex(self):             # <<<<<<<<<<<<<<
 *         return self._keyedMutex
 *     @keyedMutex.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.keyedMutex.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5771
 *         return self._keyedMutex
 *     @keyedMutex.setter
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(keyedMutex):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_keyedMutex); /*proto*/
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_keyedMutex) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_keyedMutex), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s, 0, "keyedMutex", 0))) __PYX_ERR(0, 5771, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_keyedMutex));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *__pyx_v_keyedMutex) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5771, 0, __PYX_ERR(0, 5771, __pyx_L1_error));

  /* "cuda/cuda.pyx":5773
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s):
 *         pass
 *         for _attr in dir(keyedMutex):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_keyedMutex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5773, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5773, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5773, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5773, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5773, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5773, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5774
 *         pass
 *         for _attr in dir(keyedMutex):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5774, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5775
 *         for _attr in dir(keyedMutex):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5774
 *         pass
 *         for _attr in dir(keyedMutex):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5776
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5776, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5777
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_keyedMutex);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_keyedMutex), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5777, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5777, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5776
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5773
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s):
 *         pass
 *         for _attr in dir(keyedMutex):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5771
 *         return self._keyedMutex
 *     @keyedMutex.setter
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(keyedMutex):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.keyedMutex.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5779
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5779, 0, __PYX_ERR(0, 5779, __pyx_L1_error));

  /* "cuda/cuda.pyx":5780
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].params.reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).params.reserved, 12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5779
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5782
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[12];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5782, 0, __PYX_ERR(0, 5782, __pyx_L1_error));

  /* "cuda/cuda.pyx":5784
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].params.reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 12) < 0)) __PYX_ERR(0, 5784, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).params.reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).params.reserved[0]) * (12));

  /* "cuda/cuda.pyx":5782
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__342)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__343, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__344)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__345, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5812
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5812, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5812, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5812, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5812, 0, __PYX_ERR(0, 5812, __pyx_L1_error));

  /* "cuda/cuda.pyx":5813
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5814
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":5815
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))));

    /* "cuda/cuda.pyx":5816
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":5817
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5817, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5817, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5817, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5817, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 5817, __pyx_L1_error)

      /* "cuda/cuda.pyx":5816
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":5813
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":5819
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":5820
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":5812
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5821
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5821, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5821, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5821, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5821, 0, __PYX_ERR(0, 5821, __pyx_L1_error));

  /* "cuda/cuda.pyx":5822
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 5822, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_params);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_params));
  __pyx_v_self->_params = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5821
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5823
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 5823, 0, __PYX_ERR(0, 5823, __pyx_L1_error));

  /* "cuda/cuda.pyx":5824
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5825
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":5824
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":5823
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":5827
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6getPtr[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__346)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5827, 0, __PYX_ERR(0, 5827, __pyx_L1_error));

  /* "cuda/cuda.pyx":5828
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5827
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5829
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr24__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5829, 0, __PYX_ERR(0, 5829, __pyx_L1_error));

  /* "cuda/cuda.pyx":5830
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5831
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5831, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5832
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5832, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_params_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5832, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5832, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5832, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5832, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5832, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr24__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr24__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5832, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5832, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr24__pyx_v_line); __pyx_9genexpr24__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr24__pyx_v_line); __pyx_9genexpr24__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5832, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_params, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5832, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5832, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5832, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5833
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5834
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5835
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5835, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5830
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":5837
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5829
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr24__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5840
 * 
 *     @property
 *     def params(self):             # <<<<<<<<<<<<<<
 *         return self._params
 *     @params.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5840, 0, __PYX_ERR(0, 5840, __pyx_L1_error));

  /* "cuda/cuda.pyx":5841
 *     @property
 *     def params(self):
 *         return self._params             # <<<<<<<<<<<<<<
 *     @params.setter
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_params));
  __pyx_r = ((PyObject *)__pyx_v_self->_params);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5840
 * 
 *     @property
 *     def params(self):             # <<<<<<<<<<<<<<
 *         return self._params
 *     @params.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.params.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5843
 *         return self._params
 *     @params.setter
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(params):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_params); /*proto*/
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_params) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_params), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, 0, "params", 0))) __PYX_ERR(0, 5843, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)__pyx_v_params));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *__pyx_v_params) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5843, 0, __PYX_ERR(0, 5843, __pyx_L1_error));

  /* "cuda/cuda.pyx":5845
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s):
 *         pass
 *         for _attr in dir(params):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_params)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5845, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5845, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5845, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5845, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5845, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":5846
 *         pass
 *         for _attr in dir(params):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5846, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":5847
 *         for _attr in dir(params):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._params, _attr, getattr(params, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":5846
 *         pass
 *         for _attr in dir(params):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":5848
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5848, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":5849
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._params, _attr, getattr(params, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_params);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_params), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5849, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5849, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":5848
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":5845
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s):
 *         pass
 *         for _attr in dir(params):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":5843
 *         return self._params
 *     @params.setter
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(params):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.params.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5851
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5851, 0, __PYX_ERR(0, 5851, __pyx_L1_error));

  /* "cuda/cuda.pyx":5852
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5852, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5851
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5854
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5854, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5854, 0, __PYX_ERR(0, 5854, __pyx_L1_error));

  /* "cuda/cuda.pyx":5856
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":5854
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5858
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5858, 0, __PYX_ERR(0, 5858, __pyx_L1_error));

  /* "cuda/cuda.pyx":5859
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5858
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5861
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5861, 0, __PYX_ERR(0, 5861, __pyx_L1_error));

  /* "cuda/cuda.pyx":5863
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 5863, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":5861
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_10__reduce_cython__[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__347)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__348, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_12__setstate_cython__[] = "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__349)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__350, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5879
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5879, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5879, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5879, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5879, 0, __PYX_ERR(0, 5879, __pyx_L1_error));

  /* "cuda/cuda.pyx":5880
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5879
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5881
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5881, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5881, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5881, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5881, 0, __PYX_ERR(0, 5881, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5883
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__351)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5883, 0, __PYX_ERR(0, 5883, __pyx_L1_error));

  /* "cuda/cuda.pyx":5884
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5883
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5885
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5885, 0, __PYX_ERR(0, 5885, __pyx_L1_error));

  /* "cuda/cuda.pyx":5886
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5887
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['value : ' + str(self.value)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5887, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5888
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_value_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5889
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5886
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['value : ' + str(self.value)]
 */
  }

  /* "cuda/cuda.pyx":5891
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5885
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5894
 * 
 *     @property
 *     def value(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5894, 0, __PYX_ERR(0, 5894, __pyx_L1_error));

  /* "cuda/cuda.pyx":5895
 *     @property
 *     def value(self):
 *         return self._ptr[0].params.fence.value             # <<<<<<<<<<<<<<
 *     @value.setter
 *     def value(self, unsigned long long value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).params.fence.value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5894
 * 
 *     @property
 *     def value(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5897
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 *     def value(self, unsigned long long value):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.fence.value = value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/
static int __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) {
  unsigned PY_LONG_LONG __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_value); {
    __pyx_v_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_value); if (unlikely((__pyx_v_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5897, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_value) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5897, 0, __PYX_ERR(0, 5897, __pyx_L1_error));

  /* "cuda/cuda.pyx":5899
 *     def value(self, unsigned long long value):
 *         pass
 *         self._ptr[0].params.fence.value = value             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u:
 */
  (__pyx_v_self->_ptr[0]).params.fence.value = __pyx_v_value;

  /* "cuda/cuda.pyx":5897
 *         return self._ptr[0].params.fence.value
 *     @value.setter
 *     def value(self, unsigned long long value):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.fence.value = value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__352)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__353, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__354)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__355, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5917
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5917, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5917, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5917, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5917, 0, __PYX_ERR(0, 5917, __pyx_L1_error));

  /* "cuda/cuda.pyx":5918
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5917
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5919
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5919, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5919, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5919, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5919, 0, __PYX_ERR(0, 5919, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5921
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__356)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5921, 0, __PYX_ERR(0, 5921, __pyx_L1_error));

  /* "cuda/cuda.pyx":5922
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5921
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5923
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5923, 0, __PYX_ERR(0, 5923, __pyx_L1_error));

  /* "cuda/cuda.pyx":5924
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5925
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fence : ' + hex(self.fence)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5926
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fence_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_fence, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5927
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5928
 *             str_list += ['fence : ' + hex(self.fence)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5924
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence : ' + hex(self.fence)]
 */
  }

  /* "cuda/cuda.pyx":5930
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5923
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5933
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5933, 0, __PYX_ERR(0, 5933, __pyx_L1_error));

  /* "cuda/cuda.pyx":5934
 *     @property
 *     def fence(self):
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence             # <<<<<<<<<<<<<<
 *     @fence.setter
 *     def fence(self, fence):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).params.nvSciSync.fence)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5933
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.fence.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5936
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 *     def fence(self, fence):             # <<<<<<<<<<<<<<
 *         _cfence = utils.HelperInputVoidPtr(fence)
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence); /*proto*/
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), ((PyObject *)__pyx_v_fence));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, PyObject *__pyx_v_fence) {
  PyObject *__pyx_v__cfence = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5936, 0, __PYX_ERR(0, 5936, __pyx_L1_error));

  /* "cuda/cuda.pyx":5937
 *     @fence.setter
 *     def fence(self, fence):
 *         _cfence = utils.HelperInputVoidPtr(fence)             # <<<<<<<<<<<<<<
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_fence); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cfence = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5938
 *     def fence(self, fence):
 *         _cfence = utils.HelperInputVoidPtr(fence)
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cfence, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).params.nvSciSync.fence = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":5936
 *         return <void_ptr>self._ptr[0].params.nvSciSync.fence
 *     @fence.setter
 *     def fence(self, fence):             # <<<<<<<<<<<<<<
 *         _cfence = utils.HelperInputVoidPtr(fence)
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.fence.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cfence);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5940
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5940, 0, __PYX_ERR(0, 5940, __pyx_L1_error));

  /* "cuda/cuda.pyx":5941
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].params.nvSciSync.reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, unsigned long long reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).params.nvSciSync.reserved); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5940
 *         self._ptr[0].params.nvSciSync.fence = <void*><void_ptr>_cfence.cptr
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5943
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 *     def reserved(self, unsigned long long reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.nvSciSync.reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_reserved) {
  unsigned PY_LONG_LONG __pyx_v_reserved;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_reserved); {
    __pyx_v_reserved = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_reserved); if (unlikely((__pyx_v_reserved == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5943, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5943, 0, __PYX_ERR(0, 5943, __pyx_L1_error));

  /* "cuda/cuda.pyx":5945
 *     def reserved(self, unsigned long long reserved):
 *         pass
 *         self._ptr[0].params.nvSciSync.reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s:
 */
  (__pyx_v_self->_ptr[0]).params.nvSciSync.reserved = __pyx_v_reserved;

  /* "cuda/cuda.pyx":5943
 *         return self._ptr[0].params.nvSciSync.reserved
 *     @reserved.setter
 *     def reserved(self, unsigned long long reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.nvSciSync.reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__357)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__358, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__359)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__360, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5963
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 5963, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5963, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5963, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 5963, 0, __PYX_ERR(0, 5963, __pyx_L1_error));

  /* "cuda/cuda.pyx":5964
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":5963
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5965
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 5965, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5965, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5965, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 5965, 0, __PYX_ERR(0, 5965, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5967
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__361)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 5967, 0, __PYX_ERR(0, 5967, __pyx_L1_error));

  /* "cuda/cuda.pyx":5968
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5968, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5967
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5969
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 5969, 0, __PYX_ERR(0, 5969, __pyx_L1_error));

  /* "cuda/cuda.pyx":5970
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":5971
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['key : ' + str(self.key)]
 *             str_list += ['timeoutMs : ' + str(self.timeoutMs)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5971, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5972
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]             # <<<<<<<<<<<<<<
 *             str_list += ['timeoutMs : ' + str(self.timeoutMs)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_key_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_key, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5973
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]
 *             str_list += ['timeoutMs : ' + str(self.timeoutMs)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_timeoutMs_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_timeoutMs, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":5974
 *             str_list += ['key : ' + str(self.key)]
 *             str_list += ['timeoutMs : ' + str(self.timeoutMs)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5974, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":5970
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['key : ' + str(self.key)]
 */
  }

  /* "cuda/cuda.pyx":5976
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":5969
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5979
 * 
 *     @property
 *     def key(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5979, 0, __PYX_ERR(0, 5979, __pyx_L1_error));

  /* "cuda/cuda.pyx":5980
 *     @property
 *     def key(self):
 *         return self._ptr[0].params.keyedMutex.key             # <<<<<<<<<<<<<<
 *     @key.setter
 *     def key(self, unsigned long long key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).params.keyedMutex.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5979
 * 
 *     @property
 *     def key(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.key.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5982
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 *     def key(self, unsigned long long key):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.keyedMutex.key = key
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_key); /*proto*/
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_key) {
  unsigned PY_LONG_LONG __pyx_v_key;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_key); if (unlikely((__pyx_v_key == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 5982, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.key.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_key));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_key) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5982, 0, __PYX_ERR(0, 5982, __pyx_L1_error));

  /* "cuda/cuda.pyx":5984
 *     def key(self, unsigned long long key):
 *         pass
 *         self._ptr[0].params.keyedMutex.key = key             # <<<<<<<<<<<<<<
 *     @property
 *     def timeoutMs(self):
 */
  (__pyx_v_self->_ptr[0]).params.keyedMutex.key = __pyx_v_key;

  /* "cuda/cuda.pyx":5982
 *         return self._ptr[0].params.keyedMutex.key
 *     @key.setter
 *     def key(self, unsigned long long key):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.keyedMutex.key = key
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.key.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5986
 *         self._ptr[0].params.keyedMutex.key = key
 *     @property
 *     def timeoutMs(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.keyedMutex.timeoutMs
 *     @timeoutMs.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 5986, 0, __PYX_ERR(0, 5986, __pyx_L1_error));

  /* "cuda/cuda.pyx":5987
 *     @property
 *     def timeoutMs(self):
 *         return self._ptr[0].params.keyedMutex.timeoutMs             # <<<<<<<<<<<<<<
 *     @timeoutMs.setter
 *     def timeoutMs(self, unsigned int timeoutMs):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).params.keyedMutex.timeoutMs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":5986
 *         self._ptr[0].params.keyedMutex.key = key
 *     @property
 *     def timeoutMs(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.keyedMutex.timeoutMs
 *     @timeoutMs.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.timeoutMs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":5989
 *         return self._ptr[0].params.keyedMutex.timeoutMs
 *     @timeoutMs.setter
 *     def timeoutMs(self, unsigned int timeoutMs):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.keyedMutex.timeoutMs = timeoutMs
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_timeoutMs); /*proto*/
static int __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_timeoutMs) {
  unsigned int __pyx_v_timeoutMs;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_timeoutMs); {
    __pyx_v_timeoutMs = __Pyx_PyInt_As_unsigned_int(__pyx_arg_timeoutMs); if (unlikely((__pyx_v_timeoutMs == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5989, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.timeoutMs.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), ((unsigned int)__pyx_v_timeoutMs));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, unsigned int __pyx_v_timeoutMs) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 5989, 0, __PYX_ERR(0, 5989, __pyx_L1_error));

  /* "cuda/cuda.pyx":5991
 *     def timeoutMs(self, unsigned int timeoutMs):
 *         pass
 *         self._ptr[0].params.keyedMutex.timeoutMs = timeoutMs             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s:
 */
  (__pyx_v_self->_ptr[0]).params.keyedMutex.timeoutMs = __pyx_v_timeoutMs;

  /* "cuda/cuda.pyx":5989
 *         return self._ptr[0].params.keyedMutex.timeoutMs
 *     @timeoutMs.setter
 *     def timeoutMs(self, unsigned int timeoutMs):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.keyedMutex.timeoutMs = timeoutMs
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.timeoutMs.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__362)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__363, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__364)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__365, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6013
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6013, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6013, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6013, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6013, 0, __PYX_ERR(0, 6013, __pyx_L1_error));

  /* "cuda/cuda.pyx":6014
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6013
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6015
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6015, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6015, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6015, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_2__init__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6015, 0, __PYX_ERR(0, 6015, __pyx_L1_error));

  /* "cuda/cuda.pyx":6016
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6016, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_fence);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_fence));
  __pyx_v_self->_fence = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6017
 *     def __init__(self, void_ptr _ptr):
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 6017, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_nvSciSync);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_nvSciSync));
  __pyx_v_self->_nvSciSync = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6018
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6018, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_keyedMutex);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_keyedMutex));
  __pyx_v_self->_keyedMutex = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6015
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._fence = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(_ptr=<void_ptr>self._ptr)
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6019
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_4getPtr[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__366)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6019, 0, __PYX_ERR(0, 6019, __pyx_L1_error));

  /* "cuda/cuda.pyx":6020
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6019
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6021
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr25__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr26__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr27__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6021, 0, __PYX_ERR(0, 6021, __pyx_L1_error));

  /* "cuda/cuda.pyx":6022
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6023
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6023, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6024
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6024, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fence_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6024, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6024, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6024, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6024, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6024, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr25__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr25__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6024, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6024, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr25__pyx_v_line); __pyx_9genexpr25__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr25__pyx_v_line); __pyx_9genexpr25__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_fence_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6025
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6025, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nvSciSync_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6025, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6025, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6025, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6025, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6025, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr26__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr26__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6025, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 6025, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_9genexpr26__pyx_v_line); __pyx_9genexpr26__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_9genexpr26__pyx_v_line); __pyx_9genexpr26__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_nvSciSync, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6026
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6026, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_keyedMutex_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6026, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6026, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6026, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6026, __pyx_L18_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6026, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr27__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr27__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6026, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6026, __pyx_L18_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_line); __pyx_9genexpr27__pyx_v_line = 0;
      goto __pyx_L21_exit_scope;
      __pyx_L18_error:;
      __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_line); __pyx_9genexpr27__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L21_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_keyedMutex, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6027
 *             str_list += ['nvSciSync :\n' + '\n'.join(['    ' + line for line in str(self.nvSciSync).splitlines()])]
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6028
 *             str_list += ['keyedMutex :\n' + '\n'.join(['    ' + line for line in str(self.keyedMutex).splitlines()])]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6022
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['fence :\n' + '\n'.join(['    ' + line for line in str(self.fence).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":6030
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6021
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr25__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr26__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6033
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return self._fence
 *     @fence.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6033, 0, __PYX_ERR(0, 6033, __pyx_L1_error));

  /* "cuda/cuda.pyx":6034
 *     @property
 *     def fence(self):
 *         return self._fence             # <<<<<<<<<<<<<<
 *     @fence.setter
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_fence));
  __pyx_r = ((PyObject *)__pyx_v_self->_fence);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6033
 * 
 *     @property
 *     def fence(self):             # <<<<<<<<<<<<<<
 *         return self._fence
 *     @fence.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.fence.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6036
 *         return self._fence
 *     @fence.setter
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(fence):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_fence) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fence), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s, 0, "fence", 0))) __PYX_ERR(0, 6036, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)__pyx_v_fence));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *__pyx_v_fence) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6036, 0, __PYX_ERR(0, 6036, __pyx_L1_error));

  /* "cuda/cuda.pyx":6038
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s):
 *         pass
 *         for _attr in dir(fence):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_fence)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6038, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6038, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6038, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6038, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6038, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6039
 *         pass
 *         for _attr in dir(fence):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6039, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6040
 *         for _attr in dir(fence):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6039
 *         pass
 *         for _attr in dir(fence):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6041
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6041, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6042
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._fence, _attr, getattr(fence, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def nvSciSync(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_fence);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_fence), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6042, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6042, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6041
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6038
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s):
 *         pass
 *         for _attr in dir(fence):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6036
 *         return self._fence
 *     @fence.setter
 *     def fence(self, fence not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(fence):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.fence.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6044
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 *     def nvSciSync(self):             # <<<<<<<<<<<<<<
 *         return self._nvSciSync
 *     @nvSciSync.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6044, 0, __PYX_ERR(0, 6044, __pyx_L1_error));

  /* "cuda/cuda.pyx":6045
 *     @property
 *     def nvSciSync(self):
 *         return self._nvSciSync             # <<<<<<<<<<<<<<
 *     @nvSciSync.setter
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_nvSciSync));
  __pyx_r = ((PyObject *)__pyx_v_self->_nvSciSync);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6044
 *                 setattr(self._fence, _attr, getattr(fence, _attr))
 *     @property
 *     def nvSciSync(self):             # <<<<<<<<<<<<<<
 *         return self._nvSciSync
 *     @nvSciSync.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.nvSciSync.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6047
 *         return self._nvSciSync
 *     @nvSciSync.setter
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(nvSciSync):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciSync); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_nvSciSync) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nvSciSync), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, 0, "nvSciSync", 0))) __PYX_ERR(0, 6047, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)__pyx_v_nvSciSync));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *__pyx_v_nvSciSync) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6047, 0, __PYX_ERR(0, 6047, __pyx_L1_error));

  /* "cuda/cuda.pyx":6049
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u):
 *         pass
 *         for _attr in dir(nvSciSync):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_nvSciSync)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6049, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6049, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6049, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6049, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6049, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6049, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6049, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6050
 *         pass
 *         for _attr in dir(nvSciSync):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6050, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6051
 *         for _attr in dir(nvSciSync):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6050
 *         pass
 *         for _attr in dir(nvSciSync):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6052
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6052, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6053
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def keyedMutex(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_nvSciSync);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_nvSciSync), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6053, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6053, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6052
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6049
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u):
 *         pass
 *         for _attr in dir(nvSciSync):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6047
 *         return self._nvSciSync
 *     @nvSciSync.setter
 *     def nvSciSync(self, nvSciSync not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(nvSciSync):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.nvSciSync.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6055
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 *     def keyedMutex(self):             # <<<<<<<<<<<<<<
 *         return self._keyedMutex
 *     @keyedMutex.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6055, 0, __PYX_ERR(0, 6055, __pyx_L1_error));

  /* "cuda/cuda.pyx":6056
 *     @property
 *     def keyedMutex(self):
 *         return self._keyedMutex             # <<<<<<<<<<<<<<
 *     @keyedMutex.setter
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_keyedMutex));
  __pyx_r = ((PyObject *)__pyx_v_self->_keyedMutex);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6055
 *                 setattr(self._nvSciSync, _attr, getattr(nvSciSync, _attr))
 *     @property
 *     def keyedMutex(self):             # <<<<<<<<<<<<<<
 *         return self._keyedMutex
 *     @keyedMutex.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.keyedMutex.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6058
 *         return self._keyedMutex
 *     @keyedMutex.setter
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(keyedMutex):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_keyedMutex); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_keyedMutex) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_keyedMutex), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s, 0, "keyedMutex", 0))) __PYX_ERR(0, 6058, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)__pyx_v_keyedMutex));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *__pyx_v_keyedMutex) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6058, 0, __PYX_ERR(0, 6058, __pyx_L1_error));

  /* "cuda/cuda.pyx":6060
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s):
 *         pass
 *         for _attr in dir(keyedMutex):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_keyedMutex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6060, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6060, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6060, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6060, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6060, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6060, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6060, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6061
 *         pass
 *         for _attr in dir(keyedMutex):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6061, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6062
 *         for _attr in dir(keyedMutex):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6061
 *         pass
 *         for _attr in dir(keyedMutex):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6063
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6063, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6064
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_keyedMutex);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_keyedMutex), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6064, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6064, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6063
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6060
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s):
 *         pass
 *         for _attr in dir(keyedMutex):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6058
 *         return self._keyedMutex
 *     @keyedMutex.setter
 *     def keyedMutex(self, keyedMutex not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(keyedMutex):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.keyedMutex.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6066
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6066, 0, __PYX_ERR(0, 6066, __pyx_L1_error));

  /* "cuda/cuda.pyx":6067
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].params.reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).params.reserved, 10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6066
 *                 setattr(self._keyedMutex, _attr, getattr(keyedMutex, _attr))
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6069
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[10];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6069, 0, __PYX_ERR(0, 6069, __pyx_L1_error));

  /* "cuda/cuda.pyx":6071
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].params.reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 10) < 0)) __PYX_ERR(0, 6071, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).params.reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).params.reserved[0]) * (10));

  /* "cuda/cuda.pyx":6069
 *         return self._ptr[0].params.reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].params.reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8__reduce_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__367)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__368, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10__setstate_cython__[] = "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__369)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__370, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6099
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6099, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6099, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6099, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6099, 0, __PYX_ERR(0, 6099, __pyx_L1_error));

  /* "cuda/cuda.pyx":6100
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6101
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":6102
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))));

    /* "cuda/cuda.pyx":6103
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":6104
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6104, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6104, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6104, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6104, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 6104, __pyx_L1_error)

      /* "cuda/cuda.pyx":6103
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":6100
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6106
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":6107
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6099
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6108
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6108, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6108, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6108, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6108, 0, __PYX_ERR(0, 6108, __pyx_L1_error));

  /* "cuda/cuda.pyx":6109
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_params);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_params));
  __pyx_v_self->_params = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6108
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6110
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 6110, 0, __PYX_ERR(0, 6110, __pyx_L1_error));

  /* "cuda/cuda.pyx":6111
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6112
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":6111
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":6110
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._params = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":6114
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6getPtr[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__371)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6114, 0, __PYX_ERR(0, 6114, __pyx_L1_error));

  /* "cuda/cuda.pyx":6115
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6114
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6116
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr28__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6116, 0, __PYX_ERR(0, 6116, __pyx_L1_error));

  /* "cuda/cuda.pyx":6117
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6118
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6119
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6119, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_params_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6119, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6119, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6119, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6119, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6119, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr28__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr28__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6119, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6119, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_line); __pyx_9genexpr28__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_line); __pyx_9genexpr28__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_params, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6120
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6121
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6122
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6117
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['params :\n' + '\n'.join(['    ' + line for line in str(self.params).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":6124
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6116
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6127
 * 
 *     @property
 *     def params(self):             # <<<<<<<<<<<<<<
 *         return self._params
 *     @params.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6127, 0, __PYX_ERR(0, 6127, __pyx_L1_error));

  /* "cuda/cuda.pyx":6128
 *     @property
 *     def params(self):
 *         return self._params             # <<<<<<<<<<<<<<
 *     @params.setter
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_params));
  __pyx_r = ((PyObject *)__pyx_v_self->_params);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6127
 * 
 *     @property
 *     def params(self):             # <<<<<<<<<<<<<<
 *         return self._params
 *     @params.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.params.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6130
 *         return self._params
 *     @params.setter
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(params):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_params); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_params) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_params), __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, 0, "params", 0))) __PYX_ERR(0, 6130, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)__pyx_v_params));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *__pyx_v_params) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6130, 0, __PYX_ERR(0, 6130, __pyx_L1_error));

  /* "cuda/cuda.pyx":6132
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s):
 *         pass
 *         for _attr in dir(params):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_params)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6132, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6132, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6132, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6132, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6133
 *         pass
 *         for _attr in dir(params):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6133, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6134
 *         for _attr in dir(params):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._params, _attr, getattr(params, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6133
 *         pass
 *         for _attr in dir(params):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6135
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6135, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6136
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._params, _attr, getattr(params, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_params);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_params), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6136, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6135
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6132
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s):
 *         pass
 *         for _attr in dir(params):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6130
 *         return self._params
 *     @params.setter
 *     def params(self, params not None : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(params):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.params.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6138
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6138, 0, __PYX_ERR(0, 6138, __pyx_L1_error));

  /* "cuda/cuda.pyx":6139
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6138
 *                 setattr(self._params, _attr, getattr(params, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6141
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6141, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6141, 0, __PYX_ERR(0, 6141, __pyx_L1_error));

  /* "cuda/cuda.pyx":6143
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":6141
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6145
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6145, 0, __PYX_ERR(0, 6145, __pyx_L1_error));

  /* "cuda/cuda.pyx":6146
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6145
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6148
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[16];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6148, 0, __PYX_ERR(0, 6148, __pyx_L1_error));

  /* "cuda/cuda.pyx":6150
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 16) < 0)) __PYX_ERR(0, 6150, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (16));

  /* "cuda/cuda.pyx":6148
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_10__reduce_cython__[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__372)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__373, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_12__setstate_cython__[] = "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__374)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__375, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6172
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6172, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6172, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6172, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6172, 0, __PYX_ERR(0, 6172, __pyx_L1_error));

  /* "cuda/cuda.pyx":6173
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6174
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":6175
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))));

    /* "cuda/cuda.pyx":6176
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":6177
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 6177, __pyx_L1_error)

      /* "cuda/cuda.pyx":6176
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":6173
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6179
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":6180
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6172
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6181
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6181, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6181, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6181, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6181, 0, __PYX_ERR(0, 6181, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6183
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 6183, 0, __PYX_ERR(0, 6183, __pyx_L1_error));

  /* "cuda/cuda.pyx":6184
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6185
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":6184
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:
 */
  }

  /* "cuda/cuda.pyx":6186
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:
 */
  __pyx_t_1 = ((__pyx_v_self->_extSemArray != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6187
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)             # <<<<<<<<<<<<<<
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 */
    free(__pyx_v_self->_extSemArray);

    /* "cuda/cuda.pyx":6186
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:
 */
  }

  /* "cuda/cuda.pyx":6188
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *     def getPtr(self):
 */
  __pyx_t_1 = ((__pyx_v_self->_paramsArray != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6189
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
    free(__pyx_v_self->_paramsArray);

    /* "cuda/cuda.pyx":6188
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *     def getPtr(self):
 */
  }

  /* "cuda/cuda.pyx":6183
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":6190
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_6getPtr[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__376)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6190, 0, __PYX_ERR(0, 6190, __pyx_L1_error));

  /* "cuda/cuda.pyx":6191
 *             free(self._paramsArray)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6190
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6192
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6192, 0, __PYX_ERR(0, 6192, __pyx_L1_error));

  /* "cuda/cuda.pyx":6193
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6194
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6195
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extSemArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_extSemArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6196
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_paramsArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_paramsArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6197
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_numExtSems_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_numExtSems, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6198
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6193
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 */
  }

  /* "cuda/cuda.pyx":6200
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6192
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6203
 * 
 *     @property
 *     def extSemArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_arrs = NULL;
  size_t __pyx_9genexpr29__pyx_v_x;
  PyObject *__pyx_9genexpr30__pyx_v_arr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6203, 0, __PYX_ERR(0, 6203, __pyx_L1_error));

  /* "cuda/cuda.pyx":6204
 *     @property
 *     def extSemArray(self):
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]             # <<<<<<<<<<<<<<
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 *     @extSemArray.setter
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_self->_extSemArray_length;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_9genexpr29__pyx_v_x = __pyx_t_4;
      __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).extSemArray) + (__pyx_9genexpr29__pyx_v_x * (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6204, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6204, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __pyx_v_arrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6205
 *     def extSemArray(self):
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]             # <<<<<<<<<<<<<<
 *     @extSemArray.setter
 *     def extSemArray(self, val):
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6205, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __pyx_v_arrs; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6205, __pyx_L7_error)
      #else
      __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6205, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr30__pyx_v_arr, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6205, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_ptr, __pyx_9genexpr30__pyx_v_arr) < 0) __PYX_ERR(0, 6205, __pyx_L7_error)
      __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore), __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6205, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 6205, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_arr); __pyx_9genexpr30__pyx_v_arr = 0;
    goto __pyx_L10_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_arr); __pyx_9genexpr30__pyx_v_arr = 0;
    goto __pyx_L1_error;
    __pyx_L10_exit_scope:;
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6203
 * 
 *     @property
 *     def extSemArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.extSemArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_arrs);
  __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_arr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6207
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 *     @extSemArray.setter
 *     def extSemArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._extSemArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val) {
  Py_ssize_t __pyx_v_idx;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6207, 0, __PYX_ERR(0, 6207, __pyx_L1_error));

  /* "cuda/cuda.pyx":6208
 *     @extSemArray.setter
 *     def extSemArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6208, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":6209
 *     def extSemArray(self, val):
 *         if len(val) == 0:
 *             free(self._extSemArray)             # <<<<<<<<<<<<<<
 *             self._extSemArray_length = 0
 *             self._ptr[0].extSemArray = NULL
 */
    free(__pyx_v_self->_extSemArray);

    /* "cuda/cuda.pyx":6210
 *         if len(val) == 0:
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0             # <<<<<<<<<<<<<<
 *             self._ptr[0].extSemArray = NULL
 *         else:
 */
    __pyx_v_self->_extSemArray_length = 0;

    /* "cuda/cuda.pyx":6211
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0
 *             self._ptr[0].extSemArray = NULL             # <<<<<<<<<<<<<<
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):
 */
    (__pyx_v_self->_ptr[0]).extSemArray = NULL;

    /* "cuda/cuda.pyx":6208
 *     @extSemArray.setter
 *     def extSemArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6213
 *             self._ptr[0].extSemArray = NULL
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 */
  /*else*/ {
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6213, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_v_self->_extSemArray_length != ((size_t)__pyx_t_1)) != 0);
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":6214
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):
 *                 free(self._extSemArray)             # <<<<<<<<<<<<<<
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:
 */
      free(__pyx_v_self->_extSemArray);

      /* "cuda/cuda.pyx":6215
 *             if self._extSemArray_length != <size_t>len(val):
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))             # <<<<<<<<<<<<<<
 *                 if self._extSemArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6215, __pyx_L1_error)
      __pyx_v_self->_extSemArray = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore *)calloc(__pyx_t_1, (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))));

      /* "cuda/cuda.pyx":6216
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)
 */
      __pyx_t_2 = ((__pyx_v_self->_extSemArray == NULL) != 0);
      if (unlikely(__pyx_t_2)) {

        /* "cuda/cuda.pyx":6217
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))             # <<<<<<<<<<<<<<
 *                 self._extSemArray_length = <size_t>len(val)
 *                 self._ptr[0].extSemArray = self._extSemArray
 */
        __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6217, __pyx_L1_error)
        __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_5, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __PYX_ERR(0, 6217, __pyx_L1_error)

        /* "cuda/cuda.pyx":6216
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)
 */
      }

      /* "cuda/cuda.pyx":6218
 *                 if self._extSemArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)             # <<<<<<<<<<<<<<
 *                 self._ptr[0].extSemArray = self._extSemArray
 *             for idx in range(len(val)):
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6218, __pyx_L1_error)
      __pyx_v_self->_extSemArray_length = ((size_t)__pyx_t_1);

      /* "cuda/cuda.pyx":6219
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)
 *                 self._ptr[0].extSemArray = self._extSemArray             # <<<<<<<<<<<<<<
 *             for idx in range(len(val)):
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 */
      __pyx_t_6 = __pyx_v_self->_extSemArray;
      (__pyx_v_self->_ptr[0]).extSemArray = __pyx_t_6;

      /* "cuda/cuda.pyx":6213
 *             self._ptr[0].extSemArray = NULL
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 */
    }

    /* "cuda/cuda.pyx":6220
 *                 self._extSemArray_length = <size_t>len(val)
 *                 self._ptr[0].extSemArray = self._extSemArray
 *             for idx in range(len(val)):             # <<<<<<<<<<<<<<
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 *     @property
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6220, __pyx_L1_error)
    __pyx_t_7 = __pyx_t_1;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":6221
 *                 self._ptr[0].extSemArray = self._extSemArray
 *             for idx in range(len(val)):
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def paramsArray(self):
 */
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_val, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6221, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      (__pyx_v_self->_extSemArray[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_5)->_ptr[0]);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6207
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 *     @extSemArray.setter
 *     def extSemArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._extSemArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.extSemArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6223
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 *     @property
 *     def paramsArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS) for x in range(self._paramsArray_length)]
 *         return [CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(_ptr=arr) for arr in arrs]
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_arrs = NULL;
  size_t __pyx_9genexpr31__pyx_v_x;
  PyObject *__pyx_9genexpr32__pyx_v_arr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6223, 0, __PYX_ERR(0, 6223, __pyx_L1_error));

  /* "cuda/cuda.pyx":6224
 *     @property
 *     def paramsArray(self):
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS) for x in range(self._paramsArray_length)]             # <<<<<<<<<<<<<<
 *         return [CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(_ptr=arr) for arr in arrs]
 *     @paramsArray.setter
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_self->_paramsArray_length;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_9genexpr31__pyx_v_x = __pyx_t_4;
      __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).paramsArray) + (__pyx_9genexpr31__pyx_v_x * (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6224, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6224, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __pyx_v_arrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6225
 *     def paramsArray(self):
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS) for x in range(self._paramsArray_length)]
 *         return [CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(_ptr=arr) for arr in arrs]             # <<<<<<<<<<<<<<
 *     @paramsArray.setter
 *     def paramsArray(self, val):
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6225, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __pyx_v_arrs; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6225, __pyx_L7_error)
      #else
      __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6225, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr32__pyx_v_arr, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6225, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_ptr, __pyx_9genexpr32__pyx_v_arr) < 0) __PYX_ERR(0, 6225, __pyx_L7_error)
      __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS), __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6225, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 6225, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_9genexpr32__pyx_v_arr); __pyx_9genexpr32__pyx_v_arr = 0;
    goto __pyx_L10_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr32__pyx_v_arr); __pyx_9genexpr32__pyx_v_arr = 0;
    goto __pyx_L1_error;
    __pyx_L10_exit_scope:;
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6223
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 *     @property
 *     def paramsArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS) for x in range(self._paramsArray_length)]
 *         return [CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(_ptr=arr) for arr in arrs]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.paramsArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_arrs);
  __Pyx_XDECREF(__pyx_9genexpr32__pyx_v_arr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6227
 *         return [CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(_ptr=arr) for arr in arrs]
 *     @paramsArray.setter
 *     def paramsArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._paramsArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val) {
  Py_ssize_t __pyx_v_idx;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6227, 0, __PYX_ERR(0, 6227, __pyx_L1_error));

  /* "cuda/cuda.pyx":6228
 *     @paramsArray.setter
 *     def paramsArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6228, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":6229
 *     def paramsArray(self, val):
 *         if len(val) == 0:
 *             free(self._paramsArray)             # <<<<<<<<<<<<<<
 *             self._paramsArray_length = 0
 *             self._ptr[0].paramsArray = NULL
 */
    free(__pyx_v_self->_paramsArray);

    /* "cuda/cuda.pyx":6230
 *         if len(val) == 0:
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0             # <<<<<<<<<<<<<<
 *             self._ptr[0].paramsArray = NULL
 *         else:
 */
    __pyx_v_self->_paramsArray_length = 0;

    /* "cuda/cuda.pyx":6231
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0
 *             self._ptr[0].paramsArray = NULL             # <<<<<<<<<<<<<<
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):
 */
    (__pyx_v_self->_ptr[0]).paramsArray = NULL;

    /* "cuda/cuda.pyx":6228
 *     @paramsArray.setter
 *     def paramsArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6233
 *             self._ptr[0].paramsArray = NULL
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 */
  /*else*/ {
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6233, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_v_self->_paramsArray_length != ((size_t)__pyx_t_1)) != 0);
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":6234
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):
 *                 free(self._paramsArray)             # <<<<<<<<<<<<<<
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *                 if self._paramsArray is NULL:
 */
      free(__pyx_v_self->_paramsArray);

      /* "cuda/cuda.pyx":6235
 *             if self._paramsArray_length != <size_t>len(val):
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))             # <<<<<<<<<<<<<<
 *                 if self._paramsArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6235, __pyx_L1_error)
      __pyx_v_self->_paramsArray = ((__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *)calloc(__pyx_t_1, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))));

      /* "cuda/cuda.pyx":6236
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *                 if self._paramsArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)
 */
      __pyx_t_2 = ((__pyx_v_self->_paramsArray == NULL) != 0);
      if (unlikely(__pyx_t_2)) {

        /* "cuda/cuda.pyx":6237
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *                 if self._paramsArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))             # <<<<<<<<<<<<<<
 *                 self._paramsArray_length = <size_t>len(val)
 *                 self._ptr[0].paramsArray = self._paramsArray
 */
        __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6237, __pyx_L1_error)
        __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_5, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __PYX_ERR(0, 6237, __pyx_L1_error)

        /* "cuda/cuda.pyx":6236
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *                 if self._paramsArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)
 */
      }

      /* "cuda/cuda.pyx":6238
 *                 if self._paramsArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)             # <<<<<<<<<<<<<<
 *                 self._ptr[0].paramsArray = self._paramsArray
 *             for idx in range(len(val)):
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6238, __pyx_L1_error)
      __pyx_v_self->_paramsArray_length = ((size_t)__pyx_t_1);

      /* "cuda/cuda.pyx":6239
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)
 *                 self._ptr[0].paramsArray = self._paramsArray             # <<<<<<<<<<<<<<
 *             for idx in range(len(val)):
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 */
      __pyx_t_6 = __pyx_v_self->_paramsArray;
      (__pyx_v_self->_ptr[0]).paramsArray = __pyx_t_6;

      /* "cuda/cuda.pyx":6233
 *             self._ptr[0].paramsArray = NULL
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 */
    }

    /* "cuda/cuda.pyx":6240
 *                 self._paramsArray_length = <size_t>len(val)
 *                 self._ptr[0].paramsArray = self._paramsArray
 *             for idx in range(len(val)):             # <<<<<<<<<<<<<<
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *     @property
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6240, __pyx_L1_error)
    __pyx_t_7 = __pyx_t_1;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":6241
 *                 self._ptr[0].paramsArray = self._paramsArray
 *             for idx in range(len(val)):
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))             # <<<<<<<<<<<<<<
 *     @property
 *     def numExtSems(self):
 */
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_val, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6241, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      (void)(memcpy((&(__pyx_v_self->_paramsArray[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *)__pyx_t_5)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))));
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6227
 *         return [CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(_ptr=arr) for arr in arrs]
 *     @paramsArray.setter
 *     def paramsArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._paramsArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.paramsArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6243
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *     @property
 *     def numExtSems(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6243, 0, __PYX_ERR(0, 6243, __pyx_L1_error));

  /* "cuda/cuda.pyx":6244
 *     @property
 *     def numExtSems(self):
 *         return self._ptr[0].numExtSems             # <<<<<<<<<<<<<<
 *     @numExtSems.setter
 *     def numExtSems(self, unsigned int numExtSems):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).numExtSems); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6243
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *     @property
 *     def numExtSems(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.numExtSems.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6246
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 *     def numExtSems(self, unsigned int numExtSems):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].numExtSems = numExtSems
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numExtSems); /*proto*/
static int __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numExtSems) {
  unsigned int __pyx_v_numExtSems;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_numExtSems); {
    __pyx_v_numExtSems = __Pyx_PyInt_As_unsigned_int(__pyx_arg_numExtSems); if (unlikely((__pyx_v_numExtSems == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6246, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.numExtSems.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_numExtSems));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_numExtSems) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6246, 0, __PYX_ERR(0, 6246, __pyx_L1_error));

  /* "cuda/cuda.pyx":6248
 *     def numExtSems(self, unsigned int numExtSems):
 *         pass
 *         self._ptr[0].numExtSems = numExtSems             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 */
  (__pyx_v_self->_ptr[0]).numExtSems = __pyx_v_numExtSems;

  /* "cuda/cuda.pyx":6246
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 *     def numExtSems(self, unsigned int numExtSems):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].numExtSems = numExtSems
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.numExtSems.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10__reduce_cython__[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__377)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__378, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_12__setstate_cython__[] = "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__379)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__380, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6270
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6270, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6270, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6270, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6270, 0, __PYX_ERR(0, 6270, __pyx_L1_error));

  /* "cuda/cuda.pyx":6271
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6272
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":6273
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))));

    /* "cuda/cuda.pyx":6274
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":6275
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 6275, __pyx_L1_error)

      /* "cuda/cuda.pyx":6274
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":6271
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6277
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":6278
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6270
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6279
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6279, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6279, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6279, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6279, 0, __PYX_ERR(0, 6279, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6281
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 6281, 0, __PYX_ERR(0, 6281, __pyx_L1_error));

  /* "cuda/cuda.pyx":6282
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6283
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":6282
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:
 */
  }

  /* "cuda/cuda.pyx":6284
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:
 */
  __pyx_t_1 = ((__pyx_v_self->_extSemArray != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6285
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)             # <<<<<<<<<<<<<<
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 */
    free(__pyx_v_self->_extSemArray);

    /* "cuda/cuda.pyx":6284
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *         if self._extSemArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:
 */
  }

  /* "cuda/cuda.pyx":6286
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *     def getPtr(self):
 */
  __pyx_t_1 = ((__pyx_v_self->_paramsArray != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6287
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
    free(__pyx_v_self->_paramsArray);

    /* "cuda/cuda.pyx":6286
 *         if self._extSemArray is not NULL:
 *             free(self._extSemArray)
 *         if self._paramsArray is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *     def getPtr(self):
 */
  }

  /* "cuda/cuda.pyx":6281
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":6288
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_6getPtr[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__381)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6288, 0, __PYX_ERR(0, 6288, __pyx_L1_error));

  /* "cuda/cuda.pyx":6289
 *             free(self._paramsArray)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6288
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6290
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6290, 0, __PYX_ERR(0, 6290, __pyx_L1_error));

  /* "cuda/cuda.pyx":6291
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6292
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6293
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extSemArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_extSemArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6294
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]             # <<<<<<<<<<<<<<
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_paramsArray_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_paramsArray, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6295
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_numExtSems_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_numExtSems, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6296
 *             str_list += ['paramsArray : ' + str(self.paramsArray)]
 *             str_list += ['numExtSems : ' + str(self.numExtSems)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6291
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['extSemArray : ' + str(self.extSemArray)]
 */
  }

  /* "cuda/cuda.pyx":6298
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6290
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6301
 * 
 *     @property
 *     def extSemArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_arrs = NULL;
  size_t __pyx_9genexpr33__pyx_v_x;
  PyObject *__pyx_9genexpr34__pyx_v_arr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6301, 0, __PYX_ERR(0, 6301, __pyx_L1_error));

  /* "cuda/cuda.pyx":6302
 *     @property
 *     def extSemArray(self):
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]             # <<<<<<<<<<<<<<
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 *     @extSemArray.setter
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_self->_extSemArray_length;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_9genexpr33__pyx_v_x = __pyx_t_4;
      __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).extSemArray) + (__pyx_9genexpr33__pyx_v_x * (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6302, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __pyx_v_arrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6303
 *     def extSemArray(self):
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]             # <<<<<<<<<<<<<<
 *     @extSemArray.setter
 *     def extSemArray(self, val):
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6303, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __pyx_v_arrs; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6303, __pyx_L7_error)
      #else
      __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6303, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr34__pyx_v_arr, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6303, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_ptr, __pyx_9genexpr34__pyx_v_arr) < 0) __PYX_ERR(0, 6303, __pyx_L7_error)
      __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore), __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6303, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 6303, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_9genexpr34__pyx_v_arr); __pyx_9genexpr34__pyx_v_arr = 0;
    goto __pyx_L10_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr34__pyx_v_arr); __pyx_9genexpr34__pyx_v_arr = 0;
    goto __pyx_L1_error;
    __pyx_L10_exit_scope:;
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6301
 * 
 *     @property
 *     def extSemArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].extSemArray + x*sizeof(ccuda.CUexternalSemaphore) for x in range(self._extSemArray_length)]
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.extSemArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_arrs);
  __Pyx_XDECREF(__pyx_9genexpr34__pyx_v_arr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6305
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 *     @extSemArray.setter
 *     def extSemArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._extSemArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val) {
  Py_ssize_t __pyx_v_idx;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6305, 0, __PYX_ERR(0, 6305, __pyx_L1_error));

  /* "cuda/cuda.pyx":6306
 *     @extSemArray.setter
 *     def extSemArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6306, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":6307
 *     def extSemArray(self, val):
 *         if len(val) == 0:
 *             free(self._extSemArray)             # <<<<<<<<<<<<<<
 *             self._extSemArray_length = 0
 *             self._ptr[0].extSemArray = NULL
 */
    free(__pyx_v_self->_extSemArray);

    /* "cuda/cuda.pyx":6308
 *         if len(val) == 0:
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0             # <<<<<<<<<<<<<<
 *             self._ptr[0].extSemArray = NULL
 *         else:
 */
    __pyx_v_self->_extSemArray_length = 0;

    /* "cuda/cuda.pyx":6309
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0
 *             self._ptr[0].extSemArray = NULL             # <<<<<<<<<<<<<<
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):
 */
    (__pyx_v_self->_ptr[0]).extSemArray = NULL;

    /* "cuda/cuda.pyx":6306
 *     @extSemArray.setter
 *     def extSemArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._extSemArray)
 *             self._extSemArray_length = 0
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6311
 *             self._ptr[0].extSemArray = NULL
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 */
  /*else*/ {
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6311, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_v_self->_extSemArray_length != ((size_t)__pyx_t_1)) != 0);
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":6312
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):
 *                 free(self._extSemArray)             # <<<<<<<<<<<<<<
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:
 */
      free(__pyx_v_self->_extSemArray);

      /* "cuda/cuda.pyx":6313
 *             if self._extSemArray_length != <size_t>len(val):
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))             # <<<<<<<<<<<<<<
 *                 if self._extSemArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6313, __pyx_L1_error)
      __pyx_v_self->_extSemArray = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore *)calloc(__pyx_t_1, (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))));

      /* "cuda/cuda.pyx":6314
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)
 */
      __pyx_t_2 = ((__pyx_v_self->_extSemArray == NULL) != 0);
      if (unlikely(__pyx_t_2)) {

        /* "cuda/cuda.pyx":6315
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))             # <<<<<<<<<<<<<<
 *                 self._extSemArray_length = <size_t>len(val)
 *                 self._ptr[0].extSemArray = self._extSemArray
 */
        __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6315, __pyx_L1_error)
        __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_5, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __PYX_ERR(0, 6315, __pyx_L1_error)

        /* "cuda/cuda.pyx":6314
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 *                 if self._extSemArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)
 */
      }

      /* "cuda/cuda.pyx":6316
 *                 if self._extSemArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)             # <<<<<<<<<<<<<<
 *                 self._ptr[0].extSemArray = self._extSemArray
 *             for idx in range(len(val)):
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6316, __pyx_L1_error)
      __pyx_v_self->_extSemArray_length = ((size_t)__pyx_t_1);

      /* "cuda/cuda.pyx":6317
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *                 self._extSemArray_length = <size_t>len(val)
 *                 self._ptr[0].extSemArray = self._extSemArray             # <<<<<<<<<<<<<<
 *             for idx in range(len(val)):
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 */
      __pyx_t_6 = __pyx_v_self->_extSemArray;
      (__pyx_v_self->_ptr[0]).extSemArray = __pyx_t_6;

      /* "cuda/cuda.pyx":6311
 *             self._ptr[0].extSemArray = NULL
 *         else:
 *             if self._extSemArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._extSemArray)
 *                 self._extSemArray = <ccuda.CUexternalSemaphore*> calloc(len(val), sizeof(ccuda.CUexternalSemaphore))
 */
    }

    /* "cuda/cuda.pyx":6318
 *                 self._extSemArray_length = <size_t>len(val)
 *                 self._ptr[0].extSemArray = self._extSemArray
 *             for idx in range(len(val)):             # <<<<<<<<<<<<<<
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 *     @property
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6318, __pyx_L1_error)
    __pyx_t_7 = __pyx_t_1;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":6319
 *                 self._ptr[0].extSemArray = self._extSemArray
 *             for idx in range(len(val)):
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def paramsArray(self):
 */
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_val, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      (__pyx_v_self->_extSemArray[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_5)->_ptr[0]);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6305
 *         return [CUexternalSemaphore(_ptr=arr) for arr in arrs]
 *     @extSemArray.setter
 *     def extSemArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._extSemArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.extSemArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6321
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 *     @property
 *     def paramsArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS) for x in range(self._paramsArray_length)]
 *         return [CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(_ptr=arr) for arr in arrs]
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_arrs = NULL;
  size_t __pyx_9genexpr35__pyx_v_x;
  PyObject *__pyx_9genexpr36__pyx_v_arr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6321, 0, __PYX_ERR(0, 6321, __pyx_L1_error));

  /* "cuda/cuda.pyx":6322
 *     @property
 *     def paramsArray(self):
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS) for x in range(self._paramsArray_length)]             # <<<<<<<<<<<<<<
 *         return [CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(_ptr=arr) for arr in arrs]
 *     @paramsArray.setter
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_self->_paramsArray_length;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_9genexpr35__pyx_v_x = __pyx_t_4;
      __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).paramsArray) + (__pyx_9genexpr35__pyx_v_x * (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6322, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6322, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __pyx_v_arrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6323
 *     def paramsArray(self):
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS) for x in range(self._paramsArray_length)]
 *         return [CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(_ptr=arr) for arr in arrs]             # <<<<<<<<<<<<<<
 *     @paramsArray.setter
 *     def paramsArray(self, val):
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6323, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __pyx_v_arrs; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6323, __pyx_L7_error)
      #else
      __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6323, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr36__pyx_v_arr, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6323, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_ptr, __pyx_9genexpr36__pyx_v_arr) < 0) __PYX_ERR(0, 6323, __pyx_L7_error)
      __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS), __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6323, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 6323, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_9genexpr36__pyx_v_arr); __pyx_9genexpr36__pyx_v_arr = 0;
    goto __pyx_L10_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr36__pyx_v_arr); __pyx_9genexpr36__pyx_v_arr = 0;
    goto __pyx_L1_error;
    __pyx_L10_exit_scope:;
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6321
 *                 self._extSemArray[idx] = (<CUexternalSemaphore>val[idx])._ptr[0]
 *     @property
 *     def paramsArray(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].paramsArray + x*sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS) for x in range(self._paramsArray_length)]
 *         return [CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(_ptr=arr) for arr in arrs]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.paramsArray.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_arrs);
  __Pyx_XDECREF(__pyx_9genexpr36__pyx_v_arr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6325
 *         return [CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(_ptr=arr) for arr in arrs]
 *     @paramsArray.setter
 *     def paramsArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._paramsArray)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val) {
  Py_ssize_t __pyx_v_idx;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6325, 0, __PYX_ERR(0, 6325, __pyx_L1_error));

  /* "cuda/cuda.pyx":6326
 *     @paramsArray.setter
 *     def paramsArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6326, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":6327
 *     def paramsArray(self, val):
 *         if len(val) == 0:
 *             free(self._paramsArray)             # <<<<<<<<<<<<<<
 *             self._paramsArray_length = 0
 *             self._ptr[0].paramsArray = NULL
 */
    free(__pyx_v_self->_paramsArray);

    /* "cuda/cuda.pyx":6328
 *         if len(val) == 0:
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0             # <<<<<<<<<<<<<<
 *             self._ptr[0].paramsArray = NULL
 *         else:
 */
    __pyx_v_self->_paramsArray_length = 0;

    /* "cuda/cuda.pyx":6329
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0
 *             self._ptr[0].paramsArray = NULL             # <<<<<<<<<<<<<<
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):
 */
    (__pyx_v_self->_ptr[0]).paramsArray = NULL;

    /* "cuda/cuda.pyx":6326
 *     @paramsArray.setter
 *     def paramsArray(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._paramsArray)
 *             self._paramsArray_length = 0
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6331
 *             self._ptr[0].paramsArray = NULL
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 */
  /*else*/ {
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6331, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_v_self->_paramsArray_length != ((size_t)__pyx_t_1)) != 0);
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":6332
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):
 *                 free(self._paramsArray)             # <<<<<<<<<<<<<<
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *                 if self._paramsArray is NULL:
 */
      free(__pyx_v_self->_paramsArray);

      /* "cuda/cuda.pyx":6333
 *             if self._paramsArray_length != <size_t>len(val):
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))             # <<<<<<<<<<<<<<
 *                 if self._paramsArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6333, __pyx_L1_error)
      __pyx_v_self->_paramsArray = ((__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *)calloc(__pyx_t_1, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))));

      /* "cuda/cuda.pyx":6334
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *                 if self._paramsArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)
 */
      __pyx_t_2 = ((__pyx_v_self->_paramsArray == NULL) != 0);
      if (unlikely(__pyx_t_2)) {

        /* "cuda/cuda.pyx":6335
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *                 if self._paramsArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))             # <<<<<<<<<<<<<<
 *                 self._paramsArray_length = <size_t>len(val)
 *                 self._ptr[0].paramsArray = self._paramsArray
 */
        __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6335, __pyx_L1_error)
        __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_5, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __PYX_ERR(0, 6335, __pyx_L1_error)

        /* "cuda/cuda.pyx":6334
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *                 if self._paramsArray is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)
 */
      }

      /* "cuda/cuda.pyx":6336
 *                 if self._paramsArray is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)             # <<<<<<<<<<<<<<
 *                 self._ptr[0].paramsArray = self._paramsArray
 *             for idx in range(len(val)):
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6336, __pyx_L1_error)
      __pyx_v_self->_paramsArray_length = ((size_t)__pyx_t_1);

      /* "cuda/cuda.pyx":6337
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *                 self._paramsArray_length = <size_t>len(val)
 *                 self._ptr[0].paramsArray = self._paramsArray             # <<<<<<<<<<<<<<
 *             for idx in range(len(val)):
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 */
      __pyx_t_6 = __pyx_v_self->_paramsArray;
      (__pyx_v_self->_ptr[0]).paramsArray = __pyx_t_6;

      /* "cuda/cuda.pyx":6331
 *             self._ptr[0].paramsArray = NULL
 *         else:
 *             if self._paramsArray_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._paramsArray)
 *                 self._paramsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(val), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 */
    }

    /* "cuda/cuda.pyx":6338
 *                 self._paramsArray_length = <size_t>len(val)
 *                 self._ptr[0].paramsArray = self._paramsArray
 *             for idx in range(len(val)):             # <<<<<<<<<<<<<<
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *     @property
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6338, __pyx_L1_error)
    __pyx_t_7 = __pyx_t_1;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":6339
 *                 self._ptr[0].paramsArray = self._paramsArray
 *             for idx in range(len(val)):
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))             # <<<<<<<<<<<<<<
 *     @property
 *     def numExtSems(self):
 */
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_val, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6339, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      (void)(memcpy((&(__pyx_v_self->_paramsArray[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *)__pyx_t_5)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))));
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6325
 *         return [CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(_ptr=arr) for arr in arrs]
 *     @paramsArray.setter
 *     def paramsArray(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._paramsArray)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.paramsArray.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6341
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *     @property
 *     def numExtSems(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems___get__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6341, 0, __PYX_ERR(0, 6341, __pyx_L1_error));

  /* "cuda/cuda.pyx":6342
 *     @property
 *     def numExtSems(self):
 *         return self._ptr[0].numExtSems             # <<<<<<<<<<<<<<
 *     @numExtSems.setter
 *     def numExtSems(self, unsigned int numExtSems):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).numExtSems); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6341
 *                 memcpy(&self._paramsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>val[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *     @property
 *     def numExtSems(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.numExtSems.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6344
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 *     def numExtSems(self, unsigned int numExtSems):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].numExtSems = numExtSems
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numExtSems); /*proto*/
static int __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_numExtSems) {
  unsigned int __pyx_v_numExtSems;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_numExtSems); {
    __pyx_v_numExtSems = __Pyx_PyInt_As_unsigned_int(__pyx_arg_numExtSems); if (unlikely((__pyx_v_numExtSems == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6344, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.numExtSems.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self), ((unsigned int)__pyx_v_numExtSems));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, unsigned int __pyx_v_numExtSems) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6344, 0, __PYX_ERR(0, 6344, __pyx_L1_error));

  /* "cuda/cuda.pyx":6346
 *     def numExtSems(self, unsigned int numExtSems):
 *         pass
 *         self._ptr[0].numExtSems = numExtSems             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u:
 */
  (__pyx_v_self->_ptr[0]).numExtSems = __pyx_v_numExtSems;

  /* "cuda/cuda.pyx":6344
 *         return self._ptr[0].numExtSems
 *     @numExtSems.setter
 *     def numExtSems(self, unsigned int numExtSems):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].numExtSems = numExtSems
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.numExtSems.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10__reduce_cython__[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__382)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__383, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_12__setstate_cython__[] = "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__384)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__385, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6364
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6364, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6364, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6364, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6364, 0, __PYX_ERR(0, 6364, __pyx_L1_error));

  /* "cuda/cuda.pyx":6365
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6364
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6366
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6366, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6366, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6366, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6366, 0, __PYX_ERR(0, 6366, __pyx_L1_error));

  /* "cuda/cuda.pyx":6367
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)             # <<<<<<<<<<<<<<
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 *     def getPtr(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).resource.mipmap))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6367, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_mipmap);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_mipmap));
  __pyx_v_self->_mipmap = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6368
 *     def __init__(self, void_ptr _ptr):
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).resource.array))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 6368, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_array);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_array));
  __pyx_v_self->_array = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6366
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6369
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_4getPtr[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__386)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6369, 0, __PYX_ERR(0, 6369, __pyx_L1_error));

  /* "cuda/cuda.pyx":6370
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6369
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6371
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6371, 0, __PYX_ERR(0, 6371, __pyx_L1_error));

  /* "cuda/cuda.pyx":6372
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['mipmap : ' + str(self.mipmap)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6373
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['mipmap : ' + str(self.mipmap)]
 *             str_list += ['array : ' + str(self.array)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6374
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['mipmap : ' + str(self.mipmap)]             # <<<<<<<<<<<<<<
 *             str_list += ['array : ' + str(self.array)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mipmap_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_mipmap_3, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6375
 *             str_list = []
 *             str_list += ['mipmap : ' + str(self.mipmap)]
 *             str_list += ['array : ' + str(self.array)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_array_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_array_3, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6376
 *             str_list += ['mipmap : ' + str(self.mipmap)]
 *             str_list += ['array : ' + str(self.array)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6372
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['mipmap : ' + str(self.mipmap)]
 */
  }

  /* "cuda/cuda.pyx":6378
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6371
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6381
 * 
 *     @property
 *     def mipmap(self):             # <<<<<<<<<<<<<<
 *         return self._mipmap
 *     @mipmap.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6381, 0, __PYX_ERR(0, 6381, __pyx_L1_error));

  /* "cuda/cuda.pyx":6382
 *     @property
 *     def mipmap(self):
 *         return self._mipmap             # <<<<<<<<<<<<<<
 *     @mipmap.setter
 *     def mipmap(self, mipmap : CUmipmappedArray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_mipmap));
  __pyx_r = ((PyObject *)__pyx_v_self->_mipmap);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6381
 * 
 *     @property
 *     def mipmap(self):             # <<<<<<<<<<<<<<
 *         return self._mipmap
 *     @mipmap.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.mipmap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6384
 *         return self._mipmap
 *     @mipmap.setter
 *     def mipmap(self, mipmap : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._mipmap._ptr[0] = <ccuda.CUmipmappedArray> NULL if mipmap == None else (<CUmipmappedArray>mipmap)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mipmap); /*proto*/
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mipmap) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mipmap), __pyx_ptype_4cuda_4cuda_CUmipmappedArray, 1, "mipmap", 0))) __PYX_ERR(0, 6384, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_mipmap));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_mipmap) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUmipmappedArray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6384, 0, __PYX_ERR(0, 6384, __pyx_L1_error));

  /* "cuda/cuda.pyx":6386
 *     def mipmap(self, mipmap : CUmipmappedArray):
 *         pass
 *         self._mipmap._ptr[0] = <ccuda.CUmipmappedArray> NULL if mipmap == None else (<CUmipmappedArray>mipmap)._ptr[0]             # <<<<<<<<<<<<<<
 *     @property
 *     def array(self):
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_mipmap), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6386, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUmipmappedArray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_mipmap->_ptr[0]);
  }
  (__pyx_v_self->_mipmap->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":6384
 *         return self._mipmap
 *     @mipmap.setter
 *     def mipmap(self, mipmap : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._mipmap._ptr[0] = <ccuda.CUmipmappedArray> NULL if mipmap == None else (<CUmipmappedArray>mipmap)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.mipmap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6388
 *         self._mipmap._ptr[0] = <ccuda.CUmipmappedArray> NULL if mipmap == None else (<CUmipmappedArray>mipmap)._ptr[0]
 *     @property
 *     def array(self):             # <<<<<<<<<<<<<<
 *         return self._array
 *     @array.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6388, 0, __PYX_ERR(0, 6388, __pyx_L1_error));

  /* "cuda/cuda.pyx":6389
 *     @property
 *     def array(self):
 *         return self._array             # <<<<<<<<<<<<<<
 *     @array.setter
 *     def array(self, array : CUarray):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_array));
  __pyx_r = ((PyObject *)__pyx_v_self->_array);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6388
 *         self._mipmap._ptr[0] = <ccuda.CUmipmappedArray> NULL if mipmap == None else (<CUmipmappedArray>mipmap)._ptr[0]
 *     @property
 *     def array(self):             # <<<<<<<<<<<<<<
 *         return self._array
 *     @array.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.array.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6391
 *         return self._array
 *     @array.setter
 *     def array(self, array : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._array._ptr[0] = <ccuda.CUarray> NULL if array == None else (<CUarray>array)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_array); /*proto*/
static int __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_array) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_array), __pyx_ptype_4cuda_4cuda_CUarray, 1, "array", 0))) __PYX_ERR(0, 6391, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_array));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_array) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUarray __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6391, 0, __PYX_ERR(0, 6391, __pyx_L1_error));

  /* "cuda/cuda.pyx":6393
 *     def array(self, array : CUarray):
 *         pass
 *         self._array._ptr[0] = <ccuda.CUarray> NULL if array == None else (<CUarray>array)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_array), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6393, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUarray)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_array->_ptr[0]);
  }
  (__pyx_v_self->_array->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":6391
 *         return self._array
 *     @array.setter
 *     def array(self, array : CUarray):             # <<<<<<<<<<<<<<
 *         pass
 *         self._array._ptr[0] = <ccuda.CUarray> NULL if array == None else (<CUarray>array)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.array.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_8__reduce_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__387)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__388, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_10__setstate_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__389)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__390, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6423
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6423, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6423, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6423, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6423, 0, __PYX_ERR(0, 6423, __pyx_L1_error));

  /* "cuda/cuda.pyx":6424
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6423
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6425
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6425, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6425, 0, __PYX_ERR(0, 6425, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6427
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_4getPtr[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__391)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6427, 0, __PYX_ERR(0, 6427, __pyx_L1_error));

  /* "cuda/cuda.pyx":6428
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6427
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6429
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6429, 0, __PYX_ERR(0, 6429, __pyx_L1_error));

  /* "cuda/cuda.pyx":6430
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['level : ' + str(self.level)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6431
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['level : ' + str(self.level)]
 *             str_list += ['layer : ' + str(self.layer)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6431, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6432
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['level : ' + str(self.level)]             # <<<<<<<<<<<<<<
 *             str_list += ['layer : ' + str(self.layer)]
 *             str_list += ['offsetX : ' + str(self.offsetX)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_level_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_level, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6433
 *             str_list = []
 *             str_list += ['level : ' + str(self.level)]
 *             str_list += ['layer : ' + str(self.layer)]             # <<<<<<<<<<<<<<
 *             str_list += ['offsetX : ' + str(self.offsetX)]
 *             str_list += ['offsetY : ' + str(self.offsetY)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_layer_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_layer, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6434
 *             str_list += ['level : ' + str(self.level)]
 *             str_list += ['layer : ' + str(self.layer)]
 *             str_list += ['offsetX : ' + str(self.offsetX)]             # <<<<<<<<<<<<<<
 *             str_list += ['offsetY : ' + str(self.offsetY)]
 *             str_list += ['offsetZ : ' + str(self.offsetZ)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offsetX_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offsetX, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6435
 *             str_list += ['layer : ' + str(self.layer)]
 *             str_list += ['offsetX : ' + str(self.offsetX)]
 *             str_list += ['offsetY : ' + str(self.offsetY)]             # <<<<<<<<<<<<<<
 *             str_list += ['offsetZ : ' + str(self.offsetZ)]
 *             str_list += ['extentWidth : ' + str(self.extentWidth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offsetY_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offsetY, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6436
 *             str_list += ['offsetX : ' + str(self.offsetX)]
 *             str_list += ['offsetY : ' + str(self.offsetY)]
 *             str_list += ['offsetZ : ' + str(self.offsetZ)]             # <<<<<<<<<<<<<<
 *             str_list += ['extentWidth : ' + str(self.extentWidth)]
 *             str_list += ['extentHeight : ' + str(self.extentHeight)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offsetZ_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offsetZ, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6437
 *             str_list += ['offsetY : ' + str(self.offsetY)]
 *             str_list += ['offsetZ : ' + str(self.offsetZ)]
 *             str_list += ['extentWidth : ' + str(self.extentWidth)]             # <<<<<<<<<<<<<<
 *             str_list += ['extentHeight : ' + str(self.extentHeight)]
 *             str_list += ['extentDepth : ' + str(self.extentDepth)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extentWidth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_extentWidth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6438
 *             str_list += ['offsetZ : ' + str(self.offsetZ)]
 *             str_list += ['extentWidth : ' + str(self.extentWidth)]
 *             str_list += ['extentHeight : ' + str(self.extentHeight)]             # <<<<<<<<<<<<<<
 *             str_list += ['extentDepth : ' + str(self.extentDepth)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extentHeight_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_extentHeight, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6439
 *             str_list += ['extentWidth : ' + str(self.extentWidth)]
 *             str_list += ['extentHeight : ' + str(self.extentHeight)]
 *             str_list += ['extentDepth : ' + str(self.extentDepth)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extentDepth_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_extentDepth, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6440
 *             str_list += ['extentHeight : ' + str(self.extentHeight)]
 *             str_list += ['extentDepth : ' + str(self.extentDepth)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6430
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['level : ' + str(self.level)]
 */
  }

  /* "cuda/cuda.pyx":6442
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6429
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6445
 * 
 *     @property
 *     def level(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.level
 *     @level.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6445, 0, __PYX_ERR(0, 6445, __pyx_L1_error));

  /* "cuda/cuda.pyx":6446
 *     @property
 *     def level(self):
 *         return self._ptr[0].subresource.sparseLevel.level             # <<<<<<<<<<<<<<
 *     @level.setter
 *     def level(self, unsigned int level):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6445
 * 
 *     @property
 *     def level(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.level
 *     @level.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.level.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6448
 *         return self._ptr[0].subresource.sparseLevel.level
 *     @level.setter
 *     def level(self, unsigned int level):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.level = level
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_level); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_level) {
  unsigned int __pyx_v_level;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_level); {
    __pyx_v_level = __Pyx_PyInt_As_unsigned_int(__pyx_arg_level); if (unlikely((__pyx_v_level == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6448, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.level.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_level));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_level) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6448, 0, __PYX_ERR(0, 6448, __pyx_L1_error));

  /* "cuda/cuda.pyx":6450
 *     def level(self, unsigned int level):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.level = level             # <<<<<<<<<<<<<<
 *     @property
 *     def layer(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.level = __pyx_v_level;

  /* "cuda/cuda.pyx":6448
 *         return self._ptr[0].subresource.sparseLevel.level
 *     @level.setter
 *     def level(self, unsigned int level):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.level = level
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.level.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6452
 *         self._ptr[0].subresource.sparseLevel.level = level
 *     @property
 *     def layer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.layer
 *     @layer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6452, 0, __PYX_ERR(0, 6452, __pyx_L1_error));

  /* "cuda/cuda.pyx":6453
 *     @property
 *     def layer(self):
 *         return self._ptr[0].subresource.sparseLevel.layer             # <<<<<<<<<<<<<<
 *     @layer.setter
 *     def layer(self, unsigned int layer):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.layer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6452
 *         self._ptr[0].subresource.sparseLevel.level = level
 *     @property
 *     def layer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.layer
 *     @layer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.layer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6455
 *         return self._ptr[0].subresource.sparseLevel.layer
 *     @layer.setter
 *     def layer(self, unsigned int layer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.layer = layer
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_layer); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_layer) {
  unsigned int __pyx_v_layer;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_layer); {
    __pyx_v_layer = __Pyx_PyInt_As_unsigned_int(__pyx_arg_layer); if (unlikely((__pyx_v_layer == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6455, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.layer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_layer));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_layer) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6455, 0, __PYX_ERR(0, 6455, __pyx_L1_error));

  /* "cuda/cuda.pyx":6457
 *     def layer(self, unsigned int layer):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.layer = layer             # <<<<<<<<<<<<<<
 *     @property
 *     def offsetX(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.layer = __pyx_v_layer;

  /* "cuda/cuda.pyx":6455
 *         return self._ptr[0].subresource.sparseLevel.layer
 *     @layer.setter
 *     def layer(self, unsigned int layer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.layer = layer
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.layer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6459
 *         self._ptr[0].subresource.sparseLevel.layer = layer
 *     @property
 *     def offsetX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.offsetX
 *     @offsetX.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6459, 0, __PYX_ERR(0, 6459, __pyx_L1_error));

  /* "cuda/cuda.pyx":6460
 *     @property
 *     def offsetX(self):
 *         return self._ptr[0].subresource.sparseLevel.offsetX             # <<<<<<<<<<<<<<
 *     @offsetX.setter
 *     def offsetX(self, unsigned int offsetX):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.offsetX); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6459
 *         self._ptr[0].subresource.sparseLevel.layer = layer
 *     @property
 *     def offsetX(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.offsetX
 *     @offsetX.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetX.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6462
 *         return self._ptr[0].subresource.sparseLevel.offsetX
 *     @offsetX.setter
 *     def offsetX(self, unsigned int offsetX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetX = offsetX
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offsetX); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offsetX) {
  unsigned int __pyx_v_offsetX;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offsetX); {
    __pyx_v_offsetX = __Pyx_PyInt_As_unsigned_int(__pyx_arg_offsetX); if (unlikely((__pyx_v_offsetX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6462, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_offsetX));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_offsetX) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6462, 0, __PYX_ERR(0, 6462, __pyx_L1_error));

  /* "cuda/cuda.pyx":6464
 *     def offsetX(self, unsigned int offsetX):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetX = offsetX             # <<<<<<<<<<<<<<
 *     @property
 *     def offsetY(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.offsetX = __pyx_v_offsetX;

  /* "cuda/cuda.pyx":6462
 *         return self._ptr[0].subresource.sparseLevel.offsetX
 *     @offsetX.setter
 *     def offsetX(self, unsigned int offsetX):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetX = offsetX
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetX.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6466
 *         self._ptr[0].subresource.sparseLevel.offsetX = offsetX
 *     @property
 *     def offsetY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.offsetY
 *     @offsetY.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6466, 0, __PYX_ERR(0, 6466, __pyx_L1_error));

  /* "cuda/cuda.pyx":6467
 *     @property
 *     def offsetY(self):
 *         return self._ptr[0].subresource.sparseLevel.offsetY             # <<<<<<<<<<<<<<
 *     @offsetY.setter
 *     def offsetY(self, unsigned int offsetY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.offsetY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6466
 *         self._ptr[0].subresource.sparseLevel.offsetX = offsetX
 *     @property
 *     def offsetY(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.offsetY
 *     @offsetY.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetY.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6469
 *         return self._ptr[0].subresource.sparseLevel.offsetY
 *     @offsetY.setter
 *     def offsetY(self, unsigned int offsetY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetY = offsetY
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offsetY); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offsetY) {
  unsigned int __pyx_v_offsetY;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offsetY); {
    __pyx_v_offsetY = __Pyx_PyInt_As_unsigned_int(__pyx_arg_offsetY); if (unlikely((__pyx_v_offsetY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6469, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_offsetY));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_offsetY) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6469, 0, __PYX_ERR(0, 6469, __pyx_L1_error));

  /* "cuda/cuda.pyx":6471
 *     def offsetY(self, unsigned int offsetY):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetY = offsetY             # <<<<<<<<<<<<<<
 *     @property
 *     def offsetZ(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.offsetY = __pyx_v_offsetY;

  /* "cuda/cuda.pyx":6469
 *         return self._ptr[0].subresource.sparseLevel.offsetY
 *     @offsetY.setter
 *     def offsetY(self, unsigned int offsetY):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetY = offsetY
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetY.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6473
 *         self._ptr[0].subresource.sparseLevel.offsetY = offsetY
 *     @property
 *     def offsetZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.offsetZ
 *     @offsetZ.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6473, 0, __PYX_ERR(0, 6473, __pyx_L1_error));

  /* "cuda/cuda.pyx":6474
 *     @property
 *     def offsetZ(self):
 *         return self._ptr[0].subresource.sparseLevel.offsetZ             # <<<<<<<<<<<<<<
 *     @offsetZ.setter
 *     def offsetZ(self, unsigned int offsetZ):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.offsetZ); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6473
 *         self._ptr[0].subresource.sparseLevel.offsetY = offsetY
 *     @property
 *     def offsetZ(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.offsetZ
 *     @offsetZ.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetZ.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6476
 *         return self._ptr[0].subresource.sparseLevel.offsetZ
 *     @offsetZ.setter
 *     def offsetZ(self, unsigned int offsetZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetZ = offsetZ
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offsetZ); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offsetZ) {
  unsigned int __pyx_v_offsetZ;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offsetZ); {
    __pyx_v_offsetZ = __Pyx_PyInt_As_unsigned_int(__pyx_arg_offsetZ); if (unlikely((__pyx_v_offsetZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6476, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_offsetZ));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_offsetZ) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6476, 0, __PYX_ERR(0, 6476, __pyx_L1_error));

  /* "cuda/cuda.pyx":6478
 *     def offsetZ(self, unsigned int offsetZ):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetZ = offsetZ             # <<<<<<<<<<<<<<
 *     @property
 *     def extentWidth(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.offsetZ = __pyx_v_offsetZ;

  /* "cuda/cuda.pyx":6476
 *         return self._ptr[0].subresource.sparseLevel.offsetZ
 *     @offsetZ.setter
 *     def offsetZ(self, unsigned int offsetZ):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.offsetZ = offsetZ
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.offsetZ.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6480
 *         self._ptr[0].subresource.sparseLevel.offsetZ = offsetZ
 *     @property
 *     def extentWidth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.extentWidth
 *     @extentWidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6480, 0, __PYX_ERR(0, 6480, __pyx_L1_error));

  /* "cuda/cuda.pyx":6481
 *     @property
 *     def extentWidth(self):
 *         return self._ptr[0].subresource.sparseLevel.extentWidth             # <<<<<<<<<<<<<<
 *     @extentWidth.setter
 *     def extentWidth(self, unsigned int extentWidth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.extentWidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6480
 *         self._ptr[0].subresource.sparseLevel.offsetZ = offsetZ
 *     @property
 *     def extentWidth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.extentWidth
 *     @extentWidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentWidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6483
 *         return self._ptr[0].subresource.sparseLevel.extentWidth
 *     @extentWidth.setter
 *     def extentWidth(self, unsigned int extentWidth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentWidth = extentWidth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extentWidth); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extentWidth) {
  unsigned int __pyx_v_extentWidth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_extentWidth); {
    __pyx_v_extentWidth = __Pyx_PyInt_As_unsigned_int(__pyx_arg_extentWidth); if (unlikely((__pyx_v_extentWidth == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6483, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentWidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_extentWidth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_extentWidth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6483, 0, __PYX_ERR(0, 6483, __pyx_L1_error));

  /* "cuda/cuda.pyx":6485
 *     def extentWidth(self, unsigned int extentWidth):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentWidth = extentWidth             # <<<<<<<<<<<<<<
 *     @property
 *     def extentHeight(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.extentWidth = __pyx_v_extentWidth;

  /* "cuda/cuda.pyx":6483
 *         return self._ptr[0].subresource.sparseLevel.extentWidth
 *     @extentWidth.setter
 *     def extentWidth(self, unsigned int extentWidth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentWidth = extentWidth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentWidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6487
 *         self._ptr[0].subresource.sparseLevel.extentWidth = extentWidth
 *     @property
 *     def extentHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.extentHeight
 *     @extentHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6487, 0, __PYX_ERR(0, 6487, __pyx_L1_error));

  /* "cuda/cuda.pyx":6488
 *     @property
 *     def extentHeight(self):
 *         return self._ptr[0].subresource.sparseLevel.extentHeight             # <<<<<<<<<<<<<<
 *     @extentHeight.setter
 *     def extentHeight(self, unsigned int extentHeight):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.extentHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6487
 *         self._ptr[0].subresource.sparseLevel.extentWidth = extentWidth
 *     @property
 *     def extentHeight(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.extentHeight
 *     @extentHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6490
 *         return self._ptr[0].subresource.sparseLevel.extentHeight
 *     @extentHeight.setter
 *     def extentHeight(self, unsigned int extentHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentHeight = extentHeight
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extentHeight); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extentHeight) {
  unsigned int __pyx_v_extentHeight;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_extentHeight); {
    __pyx_v_extentHeight = __Pyx_PyInt_As_unsigned_int(__pyx_arg_extentHeight); if (unlikely((__pyx_v_extentHeight == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6490, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_extentHeight));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_extentHeight) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6490, 0, __PYX_ERR(0, 6490, __pyx_L1_error));

  /* "cuda/cuda.pyx":6492
 *     def extentHeight(self, unsigned int extentHeight):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentHeight = extentHeight             # <<<<<<<<<<<<<<
 *     @property
 *     def extentDepth(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.extentHeight = __pyx_v_extentHeight;

  /* "cuda/cuda.pyx":6490
 *         return self._ptr[0].subresource.sparseLevel.extentHeight
 *     @extentHeight.setter
 *     def extentHeight(self, unsigned int extentHeight):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentHeight = extentHeight
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6494
 *         self._ptr[0].subresource.sparseLevel.extentHeight = extentHeight
 *     @property
 *     def extentDepth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.extentDepth
 *     @extentDepth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6494, 0, __PYX_ERR(0, 6494, __pyx_L1_error));

  /* "cuda/cuda.pyx":6495
 *     @property
 *     def extentDepth(self):
 *         return self._ptr[0].subresource.sparseLevel.extentDepth             # <<<<<<<<<<<<<<
 *     @extentDepth.setter
 *     def extentDepth(self, unsigned int extentDepth):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.sparseLevel.extentDepth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6494
 *         self._ptr[0].subresource.sparseLevel.extentHeight = extentHeight
 *     @property
 *     def extentDepth(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.sparseLevel.extentDepth
 *     @extentDepth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentDepth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6497
 *         return self._ptr[0].subresource.sparseLevel.extentDepth
 *     @extentDepth.setter
 *     def extentDepth(self, unsigned int extentDepth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentDepth = extentDepth
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extentDepth); /*proto*/
static int __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_extentDepth) {
  unsigned int __pyx_v_extentDepth;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_extentDepth); {
    __pyx_v_extentDepth = __Pyx_PyInt_As_unsigned_int(__pyx_arg_extentDepth); if (unlikely((__pyx_v_extentDepth == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6497, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentDepth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((unsigned int)__pyx_v_extentDepth));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, unsigned int __pyx_v_extentDepth) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6497, 0, __PYX_ERR(0, 6497, __pyx_L1_error));

  /* "cuda/cuda.pyx":6499
 *     def extentDepth(self, unsigned int extentDepth):
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentDepth = extentDepth             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s:
 */
  (__pyx_v_self->_ptr[0]).subresource.sparseLevel.extentDepth = __pyx_v_extentDepth;

  /* "cuda/cuda.pyx":6497
 *         return self._ptr[0].subresource.sparseLevel.extentDepth
 *     @extentDepth.setter
 *     def extentDepth(self, unsigned int extentDepth):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.sparseLevel.extentDepth = extentDepth
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.extentDepth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_8__reduce_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__392)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__393, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_10__setstate_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__394)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__395, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6519
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6519, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6519, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6519, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6519, 0, __PYX_ERR(0, 6519, __pyx_L1_error));

  /* "cuda/cuda.pyx":6520
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6519
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6521
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6521, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6521, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6521, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6521, 0, __PYX_ERR(0, 6521, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6523
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4getPtr[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__396)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6523, 0, __PYX_ERR(0, 6523, __pyx_L1_error));

  /* "cuda/cuda.pyx":6524
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6523
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6525
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6525, 0, __PYX_ERR(0, 6525, __pyx_L1_error));

  /* "cuda/cuda.pyx":6526
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['layer : ' + str(self.layer)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6527
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['layer : ' + str(self.layer)]
 *             str_list += ['offset : ' + str(self.offset)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6528
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['layer : ' + str(self.layer)]             # <<<<<<<<<<<<<<
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['size : ' + str(self.size)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_layer_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_layer, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6529
 *             str_list = []
 *             str_list += ['layer : ' + str(self.layer)]
 *             str_list += ['offset : ' + str(self.offset)]             # <<<<<<<<<<<<<<
 *             str_list += ['size : ' + str(self.size)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offset_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offset, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6530
 *             str_list += ['layer : ' + str(self.layer)]
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['size : ' + str(self.size)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6531
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['size : ' + str(self.size)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6526
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['layer : ' + str(self.layer)]
 */
  }

  /* "cuda/cuda.pyx":6533
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6525
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6536
 * 
 *     @property
 *     def layer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.miptail.layer
 *     @layer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6536, 0, __PYX_ERR(0, 6536, __pyx_L1_error));

  /* "cuda/cuda.pyx":6537
 *     @property
 *     def layer(self):
 *         return self._ptr[0].subresource.miptail.layer             # <<<<<<<<<<<<<<
 *     @layer.setter
 *     def layer(self, unsigned int layer):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).subresource.miptail.layer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6536
 * 
 *     @property
 *     def layer(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.miptail.layer
 *     @layer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.layer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6539
 *         return self._ptr[0].subresource.miptail.layer
 *     @layer.setter
 *     def layer(self, unsigned int layer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.miptail.layer = layer
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_layer); /*proto*/
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_layer) {
  unsigned int __pyx_v_layer;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_layer); {
    __pyx_v_layer = __Pyx_PyInt_As_unsigned_int(__pyx_arg_layer); if (unlikely((__pyx_v_layer == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6539, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.layer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self), ((unsigned int)__pyx_v_layer));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, unsigned int __pyx_v_layer) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6539, 0, __PYX_ERR(0, 6539, __pyx_L1_error));

  /* "cuda/cuda.pyx":6541
 *     def layer(self, unsigned int layer):
 *         pass
 *         self._ptr[0].subresource.miptail.layer = layer             # <<<<<<<<<<<<<<
 *     @property
 *     def offset(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.miptail.layer = __pyx_v_layer;

  /* "cuda/cuda.pyx":6539
 *         return self._ptr[0].subresource.miptail.layer
 *     @layer.setter
 *     def layer(self, unsigned int layer):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.miptail.layer = layer
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.layer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6543
 *         self._ptr[0].subresource.miptail.layer = layer
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.miptail.offset
 *     @offset.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6543, 0, __PYX_ERR(0, 6543, __pyx_L1_error));

  /* "cuda/cuda.pyx":6544
 *     @property
 *     def offset(self):
 *         return self._ptr[0].subresource.miptail.offset             # <<<<<<<<<<<<<<
 *     @offset.setter
 *     def offset(self, unsigned long long offset):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).subresource.miptail.offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6543
 *         self._ptr[0].subresource.miptail.layer = layer
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.miptail.offset
 *     @offset.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6546
 *         return self._ptr[0].subresource.miptail.offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.miptail.offset = offset
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset); /*proto*/
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset) {
  unsigned PY_LONG_LONG __pyx_v_offset;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offset); {
    __pyx_v_offset = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_offset); if (unlikely((__pyx_v_offset == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6546, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_offset));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6546, 0, __PYX_ERR(0, 6546, __pyx_L1_error));

  /* "cuda/cuda.pyx":6548
 *     def offset(self, unsigned long long offset):
 *         pass
 *         self._ptr[0].subresource.miptail.offset = offset             # <<<<<<<<<<<<<<
 *     @property
 *     def size(self):
 */
  (__pyx_v_self->_ptr[0]).subresource.miptail.offset = __pyx_v_offset;

  /* "cuda/cuda.pyx":6546
 *         return self._ptr[0].subresource.miptail.offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.miptail.offset = offset
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6550
 *         self._ptr[0].subresource.miptail.offset = offset
 *     @property
 *     def size(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.miptail.size
 *     @size.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6550, 0, __PYX_ERR(0, 6550, __pyx_L1_error));

  /* "cuda/cuda.pyx":6551
 *     @property
 *     def size(self):
 *         return self._ptr[0].subresource.miptail.size             # <<<<<<<<<<<<<<
 *     @size.setter
 *     def size(self, unsigned long long size):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).subresource.miptail.size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6550
 *         self._ptr[0].subresource.miptail.offset = offset
 *     @property
 *     def size(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].subresource.miptail.size
 *     @size.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6553
 *         return self._ptr[0].subresource.miptail.size
 *     @size.setter
 *     def size(self, unsigned long long size):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.miptail.size = size
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_size); /*proto*/
static int __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_size) {
  unsigned PY_LONG_LONG __pyx_v_size;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_size); {
    __pyx_v_size = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_size); if (unlikely((__pyx_v_size == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6553, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_size));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_size) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6553, 0, __PYX_ERR(0, 6553, __pyx_L1_error));

  /* "cuda/cuda.pyx":6555
 *     def size(self, unsigned long long size):
 *         pass
 *         self._ptr[0].subresource.miptail.size = size             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u:
 */
  (__pyx_v_self->_ptr[0]).subresource.miptail.size = __pyx_v_size;

  /* "cuda/cuda.pyx":6553
 *         return self._ptr[0].subresource.miptail.size
 *     @size.setter
 *     def size(self, unsigned long long size):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresource.miptail.size = size
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_8__reduce_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__397)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__398, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_10__setstate_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__399)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__400, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6573
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6573, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6573, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6573, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6573, 0, __PYX_ERR(0, 6573, __pyx_L1_error));

  /* "cuda/cuda.pyx":6574
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6573
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6575
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6575, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6575, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6575, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6575, 0, __PYX_ERR(0, 6575, __pyx_L1_error));

  /* "cuda/cuda.pyx":6576
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6576, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_sparseLevel);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_sparseLevel));
  __pyx_v_self->_sparseLevel = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6577
 *     def __init__(self, void_ptr _ptr):
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 6577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_miptail);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_miptail));
  __pyx_v_self->_miptail = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6575
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6578
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_4getPtr[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__401)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6578, 0, __PYX_ERR(0, 6578, __pyx_L1_error));

  /* "cuda/cuda.pyx":6579
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6578
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6580
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr37__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr38__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6580, 0, __PYX_ERR(0, 6580, __pyx_L1_error));

  /* "cuda/cuda.pyx":6581
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['sparseLevel :\n' + '\n'.join(['    ' + line for line in str(self.sparseLevel).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6582
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['sparseLevel :\n' + '\n'.join(['    ' + line for line in str(self.sparseLevel).splitlines()])]
 *             str_list += ['miptail :\n' + '\n'.join(['    ' + line for line in str(self.miptail).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6583
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['sparseLevel :\n' + '\n'.join(['    ' + line for line in str(self.sparseLevel).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['miptail :\n' + '\n'.join(['    ' + line for line in str(self.miptail).splitlines()])]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6583, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_sparseLevel_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6583, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6583, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6583, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6583, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6583, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr37__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr37__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6583, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6583, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_line); __pyx_9genexpr37__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_line); __pyx_9genexpr37__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_sparseLevel, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6584
 *             str_list = []
 *             str_list += ['sparseLevel :\n' + '\n'.join(['    ' + line for line in str(self.sparseLevel).splitlines()])]
 *             str_list += ['miptail :\n' + '\n'.join(['    ' + line for line in str(self.miptail).splitlines()])]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6584, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_miptail_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6584, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6584, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6584, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6584, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6584, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr38__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr38__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6584, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 6584, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_9genexpr38__pyx_v_line); __pyx_9genexpr38__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_9genexpr38__pyx_v_line); __pyx_9genexpr38__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_miptail, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6585
 *             str_list += ['sparseLevel :\n' + '\n'.join(['    ' + line for line in str(self.sparseLevel).splitlines()])]
 *             str_list += ['miptail :\n' + '\n'.join(['    ' + line for line in str(self.miptail).splitlines()])]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6585, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6581
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['sparseLevel :\n' + '\n'.join(['    ' + line for line in str(self.sparseLevel).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":6587
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6580
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr38__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6590
 * 
 *     @property
 *     def sparseLevel(self):             # <<<<<<<<<<<<<<
 *         return self._sparseLevel
 *     @sparseLevel.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6590, 0, __PYX_ERR(0, 6590, __pyx_L1_error));

  /* "cuda/cuda.pyx":6591
 *     @property
 *     def sparseLevel(self):
 *         return self._sparseLevel             # <<<<<<<<<<<<<<
 *     @sparseLevel.setter
 *     def sparseLevel(self, sparseLevel not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_sparseLevel));
  __pyx_r = ((PyObject *)__pyx_v_self->_sparseLevel);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6590
 * 
 *     @property
 *     def sparseLevel(self):             # <<<<<<<<<<<<<<
 *         return self._sparseLevel
 *     @sparseLevel.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.sparseLevel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6593
 *         return self._sparseLevel
 *     @sparseLevel.setter
 *     def sparseLevel(self, sparseLevel not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(sparseLevel):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_sparseLevel); /*proto*/
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_sparseLevel) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sparseLevel), __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s, 0, "sparseLevel", 0))) __PYX_ERR(0, 6593, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)__pyx_v_sparseLevel));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *__pyx_v_sparseLevel) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6593, 0, __PYX_ERR(0, 6593, __pyx_L1_error));

  /* "cuda/cuda.pyx":6595
 *     def sparseLevel(self, sparseLevel not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s):
 *         pass
 *         for _attr in dir(sparseLevel):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_sparseLevel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6595, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6595, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6595, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6595, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6595, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6595, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6596
 *         pass
 *         for _attr in dir(sparseLevel):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6596, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6597
 *         for _attr in dir(sparseLevel):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._sparseLevel, _attr, getattr(sparseLevel, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6596
 *         pass
 *         for _attr in dir(sparseLevel):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6598
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._sparseLevel, _attr, getattr(sparseLevel, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6598, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6599
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._sparseLevel, _attr, getattr(sparseLevel, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def miptail(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_sparseLevel);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_sparseLevel), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6599, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6599, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6598
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._sparseLevel, _attr, getattr(sparseLevel, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6595
 *     def sparseLevel(self, sparseLevel not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s):
 *         pass
 *         for _attr in dir(sparseLevel):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6593
 *         return self._sparseLevel
 *     @sparseLevel.setter
 *     def sparseLevel(self, sparseLevel not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(sparseLevel):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.sparseLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6601
 *                 setattr(self._sparseLevel, _attr, getattr(sparseLevel, _attr))
 *     @property
 *     def miptail(self):             # <<<<<<<<<<<<<<
 *         return self._miptail
 *     @miptail.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6601, 0, __PYX_ERR(0, 6601, __pyx_L1_error));

  /* "cuda/cuda.pyx":6602
 *     @property
 *     def miptail(self):
 *         return self._miptail             # <<<<<<<<<<<<<<
 *     @miptail.setter
 *     def miptail(self, miptail not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_miptail));
  __pyx_r = ((PyObject *)__pyx_v_self->_miptail);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6601
 *                 setattr(self._sparseLevel, _attr, getattr(sparseLevel, _attr))
 *     @property
 *     def miptail(self):             # <<<<<<<<<<<<<<
 *         return self._miptail
 *     @miptail.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.miptail.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6604
 *         return self._miptail
 *     @miptail.setter
 *     def miptail(self, miptail not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(miptail):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_miptail); /*proto*/
static int __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_miptail) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_miptail), __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s, 0, "miptail", 0))) __PYX_ERR(0, 6604, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)__pyx_v_miptail));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *__pyx_v_miptail) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6604, 0, __PYX_ERR(0, 6604, __pyx_L1_error));

  /* "cuda/cuda.pyx":6606
 *     def miptail(self, miptail not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s):
 *         pass
 *         for _attr in dir(miptail):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_miptail)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6606, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6606, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6606, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6606, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6606, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6606, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6606, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6607
 *         pass
 *         for _attr in dir(miptail):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6607, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6608
 *         for _attr in dir(miptail):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._miptail, _attr, getattr(miptail, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6607
 *         pass
 *         for _attr in dir(miptail):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6609
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._miptail, _attr, getattr(miptail, _attr))
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6609, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6609, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6609, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6610
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._miptail, _attr, getattr(miptail, _attr))             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u:
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_miptail);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_miptail), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6610, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6610, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6609
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._miptail, _attr, getattr(miptail, _attr))
 * 
 */
    }

    /* "cuda/cuda.pyx":6606
 *     def miptail(self, miptail not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s):
 *         pass
 *         for _attr in dir(miptail):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6604
 *         return self._miptail
 *     @miptail.setter
 *     def miptail(self, miptail not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(miptail):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.miptail.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_8__reduce_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__402)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__403, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_10__setstate_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__404)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__405, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6626
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6626, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6626, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6626, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u___cinit__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u___cinit__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6626, 0, __PYX_ERR(0, 6626, __pyx_L1_error));

  /* "cuda/cuda.pyx":6627
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6626
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6628
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6628, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6628, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6628, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_2__init__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_2__init__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6628, 0, __PYX_ERR(0, 6628, __pyx_L1_error));

  /* "cuda/cuda.pyx":6629
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).memHandle.memHandle))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6629, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_memHandle);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_memHandle));
  __pyx_v_self->_memHandle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6628
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6630
 *     def __init__(self, void_ptr _ptr):
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_4getPtr[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_4getPtr(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__406)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6630, 0, __PYX_ERR(0, 6630, __pyx_L1_error));

  /* "cuda/cuda.pyx":6631
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6630
 *     def __init__(self, void_ptr _ptr):
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6632
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_6__repr__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6632, 0, __PYX_ERR(0, 6632, __pyx_L1_error));

  /* "cuda/cuda.pyx":6633
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['memHandle : ' + str(self.memHandle)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6634
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['memHandle : ' + str(self.memHandle)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6635
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['memHandle : ' + str(self.memHandle)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memHandle_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_memHandle, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6636
 *             str_list = []
 *             str_list += ['memHandle : ' + str(self.memHandle)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6633
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['memHandle : ' + str(self.memHandle)]
 */
  }

  /* "cuda/cuda.pyx":6638
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6632
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6641
 * 
 *     @property
 *     def memHandle(self):             # <<<<<<<<<<<<<<
 *         return self._memHandle
 *     @memHandle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle___get__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle___get__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6641, 0, __PYX_ERR(0, 6641, __pyx_L1_error));

  /* "cuda/cuda.pyx":6642
 *     @property
 *     def memHandle(self):
 *         return self._memHandle             # <<<<<<<<<<<<<<
 *     @memHandle.setter
 *     def memHandle(self, memHandle : CUmemGenericAllocationHandle):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_memHandle));
  __pyx_r = ((PyObject *)__pyx_v_self->_memHandle);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6641
 * 
 *     @property
 *     def memHandle(self):             # <<<<<<<<<<<<<<
 *         return self._memHandle
 *     @memHandle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.memHandle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6644
 *         return self._memHandle
 *     @memHandle.setter
 *     def memHandle(self, memHandle : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *         pass
 *         self._memHandle._ptr[0] = <ccuda.CUmemGenericAllocationHandle> NULL if memHandle == None else (<CUmemGenericAllocationHandle>memHandle)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memHandle); /*proto*/
static int __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memHandle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memHandle), __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle, 1, "memHandle", 0))) __PYX_ERR(0, 6644, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_2__set__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_memHandle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_2__set__(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_memHandle) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6644, 0, __PYX_ERR(0, 6644, __pyx_L1_error));

  /* "cuda/cuda.pyx":6646
 *     def memHandle(self, memHandle : CUmemGenericAllocationHandle):
 *         pass
 *         self._memHandle._ptr[0] = <ccuda.CUmemGenericAllocationHandle> NULL if memHandle == None else (<CUmemGenericAllocationHandle>memHandle)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class CUarrayMapInfo_st:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_memHandle), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6646, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_memHandle->_ptr[0]);
  }
  (__pyx_v_self->_memHandle->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":6644
 *         return self._memHandle
 *     @memHandle.setter
 *     def memHandle(self, memHandle : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *         pass
 *         self._memHandle._ptr[0] = <ccuda.CUmemGenericAllocationHandle> NULL if memHandle == None else (<CUmemGenericAllocationHandle>memHandle)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.memHandle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_8__reduce_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__407)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__408, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_10__setstate_cython__[] = "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__409)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__410, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6684
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6684, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6684, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6684, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6684, 0, __PYX_ERR(0, 6684, __pyx_L1_error));

  /* "cuda/cuda.pyx":6685
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6686
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":6687
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarrayMapInfo_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st))));

    /* "cuda/cuda.pyx":6688
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarrayMapInfo_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":6689
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarrayMapInfo_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 6689, __pyx_L1_error)

      /* "cuda/cuda.pyx":6688
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarrayMapInfo_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":6685
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>calloc(1, sizeof(ccuda.CUarrayMapInfo_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6691
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUarrayMapInfo_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":6692
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._resource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(_ptr=<void_ptr>self._ptr)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6684
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6693
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._resource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(_ptr=<void_ptr>self._ptr)
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6693, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6693, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6693, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6693, 0, __PYX_ERR(0, 6693, __pyx_L1_error));

  /* "cuda/cuda.pyx":6694
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._resource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6694, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_resource);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_resource));
  __pyx_v_self->_resource = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6695
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._resource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(_ptr=<void_ptr>self._ptr)
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 6695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_subresource);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_subresource));
  __pyx_v_self->_subresource = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6696
 *         self._resource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(_ptr=<void_ptr>self._ptr)
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_memHandle);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_memHandle));
  __pyx_v_self->_memHandle = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6693
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUarrayMapInfo_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._resource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(_ptr=<void_ptr>self._ptr)
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6697
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 6697, 0, __PYX_ERR(0, 6697, __pyx_L1_error));

  /* "cuda/cuda.pyx":6698
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6699
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":6698
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":6697
 *         self._subresource = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(_ptr=<void_ptr>self._ptr)
 *         self._memHandle = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUarrayMapInfo_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":6701
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_6getPtr[] = "CUarrayMapInfo_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUarrayMapInfo_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__411)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6701, 0, __PYX_ERR(0, 6701, __pyx_L1_error));

  /* "cuda/cuda.pyx":6702
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6701
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6703
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr39__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr40__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr41__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6703, 0, __PYX_ERR(0, 6703, __pyx_L1_error));

  /* "cuda/cuda.pyx":6704
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['resourceType : ' + str(self.resourceType)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6705
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['resourceType : ' + str(self.resourceType)]
 *             str_list += ['resource :\n' + '\n'.join(['    ' + line for line in str(self.resource).splitlines()])]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6706
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['resourceType : ' + str(self.resourceType)]             # <<<<<<<<<<<<<<
 *             str_list += ['resource :\n' + '\n'.join(['    ' + line for line in str(self.resource).splitlines()])]
 *             str_list += ['subresourceType : ' + str(self.subresourceType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resourceType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_resourceType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6707
 *             str_list = []
 *             str_list += ['resourceType : ' + str(self.resourceType)]
 *             str_list += ['resource :\n' + '\n'.join(['    ' + line for line in str(self.resource).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['subresourceType : ' + str(self.subresourceType)]
 *             str_list += ['subresource :\n' + '\n'.join(['    ' + line for line in str(self.subresource).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6707, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resource_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6707, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6707, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6707, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6707, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6707, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr39__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr39__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6707, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6707, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr39__pyx_v_line); __pyx_9genexpr39__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr39__pyx_v_line); __pyx_9genexpr39__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_resource, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6708
 *             str_list += ['resourceType : ' + str(self.resourceType)]
 *             str_list += ['resource :\n' + '\n'.join(['    ' + line for line in str(self.resource).splitlines()])]
 *             str_list += ['subresourceType : ' + str(self.subresourceType)]             # <<<<<<<<<<<<<<
 *             str_list += ['subresource :\n' + '\n'.join(['    ' + line for line in str(self.subresource).splitlines()])]
 *             str_list += ['memOperationType : ' + str(self.memOperationType)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_subresourceType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_subresourceType, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6709
 *             str_list += ['resource :\n' + '\n'.join(['    ' + line for line in str(self.resource).splitlines()])]
 *             str_list += ['subresourceType : ' + str(self.subresourceType)]
 *             str_list += ['subresource :\n' + '\n'.join(['    ' + line for line in str(self.subresource).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['memOperationType : ' + str(self.memOperationType)]
 *             str_list += ['memHandleType : ' + str(self.memHandleType)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6709, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_subresource_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6709, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6709, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6709, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6709, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6709, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr40__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr40__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6709, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 6709, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_9genexpr40__pyx_v_line); __pyx_9genexpr40__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_9genexpr40__pyx_v_line); __pyx_9genexpr40__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_subresource, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6710
 *             str_list += ['subresourceType : ' + str(self.subresourceType)]
 *             str_list += ['subresource :\n' + '\n'.join(['    ' + line for line in str(self.subresource).splitlines()])]
 *             str_list += ['memOperationType : ' + str(self.memOperationType)]             # <<<<<<<<<<<<<<
 *             str_list += ['memHandleType : ' + str(self.memHandleType)]
 *             str_list += ['memHandle :\n' + '\n'.join(['    ' + line for line in str(self.memHandle).splitlines()])]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memOperationType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_memOperationType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6711
 *             str_list += ['subresource :\n' + '\n'.join(['    ' + line for line in str(self.subresource).splitlines()])]
 *             str_list += ['memOperationType : ' + str(self.memOperationType)]
 *             str_list += ['memHandleType : ' + str(self.memHandleType)]             # <<<<<<<<<<<<<<
 *             str_list += ['memHandle :\n' + '\n'.join(['    ' + line for line in str(self.memHandle).splitlines()])]
 *             str_list += ['offset : ' + str(self.offset)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memHandleType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_memHandleType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6712
 *             str_list += ['memOperationType : ' + str(self.memOperationType)]
 *             str_list += ['memHandleType : ' + str(self.memHandleType)]
 *             str_list += ['memHandle :\n' + '\n'.join(['    ' + line for line in str(self.memHandle).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['deviceBitMask : ' + str(self.deviceBitMask)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6712, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memHandle_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6712, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6712, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6712, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6712, __pyx_L18_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6712, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr41__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr41__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6712, __pyx_L18_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6712, __pyx_L18_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr41__pyx_v_line); __pyx_9genexpr41__pyx_v_line = 0;
      goto __pyx_L21_exit_scope;
      __pyx_L18_error:;
      __Pyx_XDECREF(__pyx_9genexpr41__pyx_v_line); __pyx_9genexpr41__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L21_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_memHandle_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6713
 *             str_list += ['memHandleType : ' + str(self.memHandleType)]
 *             str_list += ['memHandle :\n' + '\n'.join(['    ' + line for line in str(self.memHandle).splitlines()])]
 *             str_list += ['offset : ' + str(self.offset)]             # <<<<<<<<<<<<<<
 *             str_list += ['deviceBitMask : ' + str(self.deviceBitMask)]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_offset_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_offset, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6714
 *             str_list += ['memHandle :\n' + '\n'.join(['    ' + line for line in str(self.memHandle).splitlines()])]
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['deviceBitMask : ' + str(self.deviceBitMask)]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_deviceBitMask_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_deviceBitMask, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6715
 *             str_list += ['offset : ' + str(self.offset)]
 *             str_list += ['deviceBitMask : ' + str(self.deviceBitMask)]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6716
 *             str_list += ['deviceBitMask : ' + str(self.deviceBitMask)]
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6717
 *             str_list += ['flags : ' + str(self.flags)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6704
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['resourceType : ' + str(self.resourceType)]
 */
  }

  /* "cuda/cuda.pyx":6719
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6703
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr39__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr40__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr41__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6722
 * 
 *     @property
 *     def resourceType(self):             # <<<<<<<<<<<<<<
 *         return CUresourcetype(self._ptr[0].resourceType)
 *     @resourceType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6722, 0, __PYX_ERR(0, 6722, __pyx_L1_error));

  /* "cuda/cuda.pyx":6723
 *     @property
 *     def resourceType(self):
 *         return CUresourcetype(self._ptr[0].resourceType)             # <<<<<<<<<<<<<<
 *     @resourceType.setter
 *     def resourceType(self, resourceType not None : CUresourcetype):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresourcetype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum((__pyx_v_self->_ptr[0]).resourceType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6722
 * 
 *     @property
 *     def resourceType(self):             # <<<<<<<<<<<<<<
 *         return CUresourcetype(self._ptr[0].resourceType)
 *     @resourceType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.resourceType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6725
 *         return CUresourcetype(self._ptr[0].resourceType)
 *     @resourceType.setter
 *     def resourceType(self, resourceType not None : CUresourcetype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].resourceType = resourceType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_resourceType); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_resourceType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_resourceType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "resourceType"); __PYX_ERR(0, 6725, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((PyObject *)__pyx_v_resourceType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_resourceType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresourcetype __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6725, 0, __PYX_ERR(0, 6725, __pyx_L1_error));

  /* "cuda/cuda.pyx":6727
 *     def resourceType(self, resourceType not None : CUresourcetype):
 *         pass
 *         self._ptr[0].resourceType = resourceType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def resource(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_resourceType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6727, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).resourceType = __pyx_t_2;

  /* "cuda/cuda.pyx":6725
 *         return CUresourcetype(self._ptr[0].resourceType)
 *     @resourceType.setter
 *     def resourceType(self, resourceType not None : CUresourcetype):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].resourceType = resourceType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.resourceType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6729
 *         self._ptr[0].resourceType = resourceType.value
 *     @property
 *     def resource(self):             # <<<<<<<<<<<<<<
 *         return self._resource
 *     @resource.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8resource_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8resource_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8resource___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8resource___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6729, 0, __PYX_ERR(0, 6729, __pyx_L1_error));

  /* "cuda/cuda.pyx":6730
 *     @property
 *     def resource(self):
 *         return self._resource             # <<<<<<<<<<<<<<
 *     @resource.setter
 *     def resource(self, resource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_resource));
  __pyx_r = ((PyObject *)__pyx_v_self->_resource);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6729
 *         self._ptr[0].resourceType = resourceType.value
 *     @property
 *     def resource(self):             # <<<<<<<<<<<<<<
 *         return self._resource
 *     @resource.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.resource.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6732
 *         return self._resource
 *     @resource.setter
 *     def resource(self, resource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(resource):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8resource_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_resource); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8resource_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_resource) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resource), __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, 0, "resource", 0))) __PYX_ERR(0, 6732, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8resource_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)__pyx_v_resource));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8resource_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *__pyx_v_resource) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6732, 0, __PYX_ERR(0, 6732, __pyx_L1_error));

  /* "cuda/cuda.pyx":6734
 *     def resource(self, resource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u):
 *         pass
 *         for _attr in dir(resource):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_resource)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6734, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6734, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6734, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6734, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6734, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6734, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6735
 *         pass
 *         for _attr in dir(resource):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6735, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6736
 *         for _attr in dir(resource):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._resource, _attr, getattr(resource, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6735
 *         pass
 *         for _attr in dir(resource):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6737
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._resource, _attr, getattr(resource, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6737, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6738
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._resource, _attr, getattr(resource, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def subresourceType(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_resource);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_resource), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6738, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6738, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6737
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._resource, _attr, getattr(resource, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6734
 *     def resource(self, resource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u):
 *         pass
 *         for _attr in dir(resource):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6732
 *         return self._resource
 *     @resource.setter
 *     def resource(self, resource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(resource):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.resource.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6740
 *                 setattr(self._resource, _attr, getattr(resource, _attr))
 *     @property
 *     def subresourceType(self):             # <<<<<<<<<<<<<<
 *         return CUarraySparseSubresourceType(self._ptr[0].subresourceType)
 *     @subresourceType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6740, 0, __PYX_ERR(0, 6740, __pyx_L1_error));

  /* "cuda/cuda.pyx":6741
 *     @property
 *     def subresourceType(self):
 *         return CUarraySparseSubresourceType(self._ptr[0].subresourceType)             # <<<<<<<<<<<<<<
 *     @subresourceType.setter
 *     def subresourceType(self, subresourceType not None : CUarraySparseSubresourceType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUarraySparseSubresourceType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum((__pyx_v_self->_ptr[0]).subresourceType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6740
 *                 setattr(self._resource, _attr, getattr(resource, _attr))
 *     @property
 *     def subresourceType(self):             # <<<<<<<<<<<<<<
 *         return CUarraySparseSubresourceType(self._ptr[0].subresourceType)
 *     @subresourceType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.subresourceType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6743
 *         return CUarraySparseSubresourceType(self._ptr[0].subresourceType)
 *     @subresourceType.setter
 *     def subresourceType(self, subresourceType not None : CUarraySparseSubresourceType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresourceType = subresourceType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_subresourceType); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_subresourceType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_subresourceType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "subresourceType"); __PYX_ERR(0, 6743, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((PyObject *)__pyx_v_subresourceType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_subresourceType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6743, 0, __PYX_ERR(0, 6743, __pyx_L1_error));

  /* "cuda/cuda.pyx":6745
 *     def subresourceType(self, subresourceType not None : CUarraySparseSubresourceType):
 *         pass
 *         self._ptr[0].subresourceType = subresourceType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def subresource(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_subresourceType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6745, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).subresourceType = __pyx_t_2;

  /* "cuda/cuda.pyx":6743
 *         return CUarraySparseSubresourceType(self._ptr[0].subresourceType)
 *     @subresourceType.setter
 *     def subresourceType(self, subresourceType not None : CUarraySparseSubresourceType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].subresourceType = subresourceType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.subresourceType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6747
 *         self._ptr[0].subresourceType = subresourceType.value
 *     @property
 *     def subresource(self):             # <<<<<<<<<<<<<<
 *         return self._subresource
 *     @subresource.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_11subresource___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_11subresource___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6747, 0, __PYX_ERR(0, 6747, __pyx_L1_error));

  /* "cuda/cuda.pyx":6748
 *     @property
 *     def subresource(self):
 *         return self._subresource             # <<<<<<<<<<<<<<
 *     @subresource.setter
 *     def subresource(self, subresource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_subresource));
  __pyx_r = ((PyObject *)__pyx_v_self->_subresource);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6747
 *         self._ptr[0].subresourceType = subresourceType.value
 *     @property
 *     def subresource(self):             # <<<<<<<<<<<<<<
 *         return self._subresource
 *     @subresource.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.subresource.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6750
 *         return self._subresource
 *     @subresource.setter
 *     def subresource(self, subresource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(subresource):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_subresource); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_subresource) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subresource), __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, 0, "subresource", 0))) __PYX_ERR(0, 6750, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)__pyx_v_subresource));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *__pyx_v_subresource) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6750, 0, __PYX_ERR(0, 6750, __pyx_L1_error));

  /* "cuda/cuda.pyx":6752
 *     def subresource(self, subresource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u):
 *         pass
 *         for _attr in dir(subresource):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_subresource)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6752, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6752, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6752, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6752, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6752, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6753
 *         pass
 *         for _attr in dir(subresource):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6753, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6754
 *         for _attr in dir(subresource):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._subresource, _attr, getattr(subresource, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6753
 *         pass
 *         for _attr in dir(subresource):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6755
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._subresource, _attr, getattr(subresource, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6755, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6756
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._subresource, _attr, getattr(subresource, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def memOperationType(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_subresource);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_subresource), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6756, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6755
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._subresource, _attr, getattr(subresource, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6752
 *     def subresource(self, subresource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u):
 *         pass
 *         for _attr in dir(subresource):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6750
 *         return self._subresource
 *     @subresource.setter
 *     def subresource(self, subresource not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(subresource):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.subresource.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6758
 *                 setattr(self._subresource, _attr, getattr(subresource, _attr))
 *     @property
 *     def memOperationType(self):             # <<<<<<<<<<<<<<
 *         return CUmemOperationType(self._ptr[0].memOperationType)
 *     @memOperationType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6758, 0, __PYX_ERR(0, 6758, __pyx_L1_error));

  /* "cuda/cuda.pyx":6759
 *     @property
 *     def memOperationType(self):
 *         return CUmemOperationType(self._ptr[0].memOperationType)             # <<<<<<<<<<<<<<
 *     @memOperationType.setter
 *     def memOperationType(self, memOperationType not None : CUmemOperationType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemOperationType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum((__pyx_v_self->_ptr[0]).memOperationType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6758
 *                 setattr(self._subresource, _attr, getattr(subresource, _attr))
 *     @property
 *     def memOperationType(self):             # <<<<<<<<<<<<<<
 *         return CUmemOperationType(self._ptr[0].memOperationType)
 *     @memOperationType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.memOperationType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6761
 *         return CUmemOperationType(self._ptr[0].memOperationType)
 *     @memOperationType.setter
 *     def memOperationType(self, memOperationType not None : CUmemOperationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].memOperationType = memOperationType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memOperationType); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memOperationType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_memOperationType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "memOperationType"); __PYX_ERR(0, 6761, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((PyObject *)__pyx_v_memOperationType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_memOperationType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemOperationType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6761, 0, __PYX_ERR(0, 6761, __pyx_L1_error));

  /* "cuda/cuda.pyx":6763
 *     def memOperationType(self, memOperationType not None : CUmemOperationType):
 *         pass
 *         self._ptr[0].memOperationType = memOperationType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def memHandleType(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_memOperationType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6763, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).memOperationType = __pyx_t_2;

  /* "cuda/cuda.pyx":6761
 *         return CUmemOperationType(self._ptr[0].memOperationType)
 *     @memOperationType.setter
 *     def memOperationType(self, memOperationType not None : CUmemOperationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].memOperationType = memOperationType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.memOperationType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6765
 *         self._ptr[0].memOperationType = memOperationType.value
 *     @property
 *     def memHandleType(self):             # <<<<<<<<<<<<<<
 *         return CUmemHandleType(self._ptr[0].memHandleType)
 *     @memHandleType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6765, 0, __PYX_ERR(0, 6765, __pyx_L1_error));

  /* "cuda/cuda.pyx":6766
 *     @property
 *     def memHandleType(self):
 *         return CUmemHandleType(self._ptr[0].memHandleType)             # <<<<<<<<<<<<<<
 *     @memHandleType.setter
 *     def memHandleType(self, memHandleType not None : CUmemHandleType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemHandleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum((__pyx_v_self->_ptr[0]).memHandleType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6765
 *         self._ptr[0].memOperationType = memOperationType.value
 *     @property
 *     def memHandleType(self):             # <<<<<<<<<<<<<<
 *         return CUmemHandleType(self._ptr[0].memHandleType)
 *     @memHandleType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.memHandleType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6768
 *         return CUmemHandleType(self._ptr[0].memHandleType)
 *     @memHandleType.setter
 *     def memHandleType(self, memHandleType not None : CUmemHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].memHandleType = memHandleType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memHandleType); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memHandleType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_memHandleType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "memHandleType"); __PYX_ERR(0, 6768, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((PyObject *)__pyx_v_memHandleType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_memHandleType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemHandleType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6768, 0, __PYX_ERR(0, 6768, __pyx_L1_error));

  /* "cuda/cuda.pyx":6770
 *     def memHandleType(self, memHandleType not None : CUmemHandleType):
 *         pass
 *         self._ptr[0].memHandleType = memHandleType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def memHandle(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_memHandleType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).memHandleType = __pyx_t_2;

  /* "cuda/cuda.pyx":6768
 *         return CUmemHandleType(self._ptr[0].memHandleType)
 *     @memHandleType.setter
 *     def memHandleType(self, memHandleType not None : CUmemHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].memHandleType = memHandleType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.memHandleType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6772
 *         self._ptr[0].memHandleType = memHandleType.value
 *     @property
 *     def memHandle(self):             # <<<<<<<<<<<<<<
 *         return self._memHandle
 *     @memHandle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6772, 0, __PYX_ERR(0, 6772, __pyx_L1_error));

  /* "cuda/cuda.pyx":6773
 *     @property
 *     def memHandle(self):
 *         return self._memHandle             # <<<<<<<<<<<<<<
 *     @memHandle.setter
 *     def memHandle(self, memHandle not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_memHandle));
  __pyx_r = ((PyObject *)__pyx_v_self->_memHandle);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6772
 *         self._ptr[0].memHandleType = memHandleType.value
 *     @property
 *     def memHandle(self):             # <<<<<<<<<<<<<<
 *         return self._memHandle
 *     @memHandle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.memHandle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6775
 *         return self._memHandle
 *     @memHandle.setter
 *     def memHandle(self, memHandle not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(memHandle):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memHandle); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_memHandle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memHandle), __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, 0, "memHandle", 0))) __PYX_ERR(0, 6775, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)__pyx_v_memHandle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *__pyx_v_memHandle) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6775, 0, __PYX_ERR(0, 6775, __pyx_L1_error));

  /* "cuda/cuda.pyx":6777
 *     def memHandle(self, memHandle not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u):
 *         pass
 *         for _attr in dir(memHandle):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_memHandle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6777, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6777, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6777, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6777, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6777, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6777, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":6778
 *         pass
 *         for _attr in dir(memHandle):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6778, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":6779
 *         for _attr in dir(memHandle):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._memHandle, _attr, getattr(memHandle, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":6778
 *         pass
 *         for _attr in dir(memHandle):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":6780
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._memHandle, _attr, getattr(memHandle, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6780, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":6781
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._memHandle, _attr, getattr(memHandle, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def offset(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_memHandle);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_memHandle), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6781, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 6781, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":6780
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._memHandle, _attr, getattr(memHandle, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":6777
 *     def memHandle(self, memHandle not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u):
 *         pass
 *         for _attr in dir(memHandle):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6775
 *         return self._memHandle
 *     @memHandle.setter
 *     def memHandle(self, memHandle not None : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(memHandle):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.memHandle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6783
 *                 setattr(self._memHandle, _attr, getattr(memHandle, _attr))
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].offset
 *     @offset.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_6offset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_6offset_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6offset___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6offset___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6783, 0, __PYX_ERR(0, 6783, __pyx_L1_error));

  /* "cuda/cuda.pyx":6784
 *     @property
 *     def offset(self):
 *         return self._ptr[0].offset             # <<<<<<<<<<<<<<
 *     @offset.setter
 *     def offset(self, unsigned long long offset):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((__pyx_v_self->_ptr[0]).offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6783
 *                 setattr(self._memHandle, _attr, getattr(memHandle, _attr))
 *     @property
 *     def offset(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].offset
 *     @offset.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6786
 *         return self._ptr[0].offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].offset = offset
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_offset) {
  unsigned PY_LONG_LONG __pyx_v_offset;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_offset); {
    __pyx_v_offset = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_arg_offset); if (unlikely((__pyx_v_offset == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6786, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6offset_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((unsigned PY_LONG_LONG)__pyx_v_offset));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_6offset_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_offset) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6786, 0, __PYX_ERR(0, 6786, __pyx_L1_error));

  /* "cuda/cuda.pyx":6788
 *     def offset(self, unsigned long long offset):
 *         pass
 *         self._ptr[0].offset = offset             # <<<<<<<<<<<<<<
 *     @property
 *     def deviceBitMask(self):
 */
  (__pyx_v_self->_ptr[0]).offset = __pyx_v_offset;

  /* "cuda/cuda.pyx":6786
 *         return self._ptr[0].offset
 *     @offset.setter
 *     def offset(self, unsigned long long offset):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].offset = offset
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6790
 *         self._ptr[0].offset = offset
 *     @property
 *     def deviceBitMask(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].deviceBitMask
 *     @deviceBitMask.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6790, 0, __PYX_ERR(0, 6790, __pyx_L1_error));

  /* "cuda/cuda.pyx":6791
 *     @property
 *     def deviceBitMask(self):
 *         return self._ptr[0].deviceBitMask             # <<<<<<<<<<<<<<
 *     @deviceBitMask.setter
 *     def deviceBitMask(self, unsigned int deviceBitMask):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).deviceBitMask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6790
 *         self._ptr[0].offset = offset
 *     @property
 *     def deviceBitMask(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].deviceBitMask
 *     @deviceBitMask.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.deviceBitMask.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6793
 *         return self._ptr[0].deviceBitMask
 *     @deviceBitMask.setter
 *     def deviceBitMask(self, unsigned int deviceBitMask):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].deviceBitMask = deviceBitMask
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_deviceBitMask); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_deviceBitMask) {
  unsigned int __pyx_v_deviceBitMask;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_deviceBitMask); {
    __pyx_v_deviceBitMask = __Pyx_PyInt_As_unsigned_int(__pyx_arg_deviceBitMask); if (unlikely((__pyx_v_deviceBitMask == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6793, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.deviceBitMask.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((unsigned int)__pyx_v_deviceBitMask));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, unsigned int __pyx_v_deviceBitMask) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6793, 0, __PYX_ERR(0, 6793, __pyx_L1_error));

  /* "cuda/cuda.pyx":6795
 *     def deviceBitMask(self, unsigned int deviceBitMask):
 *         pass
 *         self._ptr[0].deviceBitMask = deviceBitMask             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
  (__pyx_v_self->_ptr[0]).deviceBitMask = __pyx_v_deviceBitMask;

  /* "cuda/cuda.pyx":6793
 *         return self._ptr[0].deviceBitMask
 *     @deviceBitMask.setter
 *     def deviceBitMask(self, unsigned int deviceBitMask):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].deviceBitMask = deviceBitMask
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.deviceBitMask.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6797
 *         self._ptr[0].deviceBitMask = deviceBitMask
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6797, 0, __PYX_ERR(0, 6797, __pyx_L1_error));

  /* "cuda/cuda.pyx":6798
 *     @property
 *     def flags(self):
 *         return self._ptr[0].flags             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, unsigned int flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6797
 *         self._ptr[0].deviceBitMask = deviceBitMask
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].flags
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6800
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6800, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, unsigned int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6800, 0, __PYX_ERR(0, 6800, __pyx_L1_error));

  /* "cuda/cuda.pyx":6802
 *     def flags(self, unsigned int flags):
 *         pass
 *         self._ptr[0].flags = flags             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).flags = __pyx_v_flags;

  /* "cuda/cuda.pyx":6800
 *         return self._ptr[0].flags
 *     @flags.setter
 *     def flags(self, unsigned int flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6804
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6804, 0, __PYX_ERR(0, 6804, __pyx_L1_error));

  /* "cuda/cuda.pyx":6805
 *     @property
 *     def reserved(self):
 *         return self._ptr[0].reserved             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_carray_to_py_unsigned_int((__pyx_v_self->_ptr[0]).reserved, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6804
 *         self._ptr[0].flags = flags
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].reserved
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6807
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  unsigned int __pyx_t_1[2];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6807, 0, __PYX_ERR(0, 6807, __pyx_L1_error));

  /* "cuda/cuda.pyx":6809
 *     def reserved(self, reserved):
 *         pass
 *         self._ptr[0].reserved = reserved             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemLocation_st:
 */
  if (unlikely(__Pyx_carray_from_py_unsigned_int(__pyx_v_reserved, __pyx_t_1, 2) < 0)) __PYX_ERR(0, 6809, __pyx_L1_error)
  memcpy(&((__pyx_v_self->_ptr[0]).reserved[0]), __pyx_t_1, sizeof((__pyx_v_self->_ptr[0]).reserved[0]) * (2));

  /* "cuda/cuda.pyx":6807
 *         return self._ptr[0].reserved
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].reserved = reserved
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_10__reduce_cython__[] = "CUarrayMapInfo_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUarrayMapInfo_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__412)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__413, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_12__setstate_cython__[] = "CUarrayMapInfo_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUarrayMapInfo_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUarrayMapInfo_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__414)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__415, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUarrayMapInfo_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6828
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6828, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6828, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6828, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6828, 0, __PYX_ERR(0, 6828, __pyx_L1_error));

  /* "cuda/cuda.pyx":6829
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6830
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":6831
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemLocation_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemLocation_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUmemLocation_st))));

    /* "cuda/cuda.pyx":6832
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemLocation_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":6833
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemLocation_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemLocation_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6833, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6833, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6833, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6833, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 6833, __pyx_L1_error)

      /* "cuda/cuda.pyx":6832
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemLocation_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":6829
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemLocation_st *>calloc(1, sizeof(ccuda.CUmemLocation_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6835
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemLocation_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemLocation_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":6836
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemLocation_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemLocation_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6828
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6837
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemLocation_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6837, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6837, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6837, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6837, 0, __PYX_ERR(0, 6837, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6839
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_16CUmemLocation_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_16CUmemLocation_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 6839, 0, __PYX_ERR(0, 6839, __pyx_L1_error));

  /* "cuda/cuda.pyx":6840
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6841
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":6840
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":6839
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemLocation_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":6843
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUmemLocation_st_6getPtr[] = "CUmemLocation_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUmemLocation_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmemLocation_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmemLocation_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__416)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6843, 0, __PYX_ERR(0, 6843, __pyx_L1_error));

  /* "cuda/cuda.pyx":6844
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6843
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6845
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6845, 0, __PYX_ERR(0, 6845, __pyx_L1_error));

  /* "cuda/cuda.pyx":6846
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6847
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['id : ' + str(self.id)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6847, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6848
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]             # <<<<<<<<<<<<<<
 *             str_list += ['id : ' + str(self.id)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_type, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6849
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['id : ' + str(self.id)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_id_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_id, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6850
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['id : ' + str(self.id)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6850, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6846
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  }

  /* "cuda/cuda.pyx":6852
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6845
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6855
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUmemLocationType(self._ptr[0].type)
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_4type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4type___get__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6855, 0, __PYX_ERR(0, 6855, __pyx_L1_error));

  /* "cuda/cuda.pyx":6856
 *     @property
 *     def type(self):
 *         return CUmemLocationType(self._ptr[0].type)             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, type not None : CUmemLocationType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemLocationType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum((__pyx_v_self->_ptr[0]).type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6855
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUmemLocationType(self._ptr[0].type)
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6858
 *         return CUmemLocationType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUmemLocationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_type) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "type"); __PYX_ERR(0, 6858, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4type_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self), ((PyObject *)__pyx_v_type));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemLocationType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6858, 0, __PYX_ERR(0, 6858, __pyx_L1_error));

  /* "cuda/cuda.pyx":6860
 *     def type(self, type not None : CUmemLocationType):
 *         pass
 *         self._ptr[0].type = type.value             # <<<<<<<<<<<<<<
 *     @property
 *     def id(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).type = __pyx_t_2;

  /* "cuda/cuda.pyx":6858
 *         return CUmemLocationType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUmemLocationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6862
 *         self._ptr[0].type = type.value
 *     @property
 *     def id(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].id
 *     @id.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_2id_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2id___get__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_2id___get__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6862, 0, __PYX_ERR(0, 6862, __pyx_L1_error));

  /* "cuda/cuda.pyx":6863
 *     @property
 *     def id(self):
 *         return self._ptr[0].id             # <<<<<<<<<<<<<<
 *     @id.setter
 *     def id(self, int id):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_self->_ptr[0]).id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6862
 *         self._ptr[0].type = type.value
 *     @property
 *     def id(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].id
 *     @id.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6865
 *         return self._ptr[0].id
 *     @id.setter
 *     def id(self, int id):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].id = id
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_2id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_id); /*proto*/
static int __pyx_pw_4cuda_4cuda_16CUmemLocation_st_2id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_id) {
  int __pyx_v_id;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_id); {
    __pyx_v_id = __Pyx_PyInt_As_int(__pyx_arg_id); if (unlikely((__pyx_v_id == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6865, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.id.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2id_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self), ((int)__pyx_v_id));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_16CUmemLocation_st_2id_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, int __pyx_v_id) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6865, 0, __PYX_ERR(0, 6865, __pyx_L1_error));

  /* "cuda/cuda.pyx":6867
 *     def id(self, int id):
 *         pass
 *         self._ptr[0].id = id             # <<<<<<<<<<<<<<
 * 
 * cdef class _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s:
 */
  (__pyx_v_self->_ptr[0]).id = __pyx_v_id;

  /* "cuda/cuda.pyx":6865
 *         return self._ptr[0].id
 *     @id.setter
 *     def id(self, int id):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].id = id
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.id.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUmemLocation_st_10__reduce_cython__[] = "CUmemLocation_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUmemLocation_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmemLocation_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmemLocation_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__417)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__418, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_16CUmemLocation_st_12__setstate_cython__[] = "CUmemLocation_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_16CUmemLocation_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmemLocation_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUmemLocation_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_16CUmemLocation_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_16CUmemLocation_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16CUmemLocation_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemLocation_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__419)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__420, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemLocation_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6889
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6889, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6889, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6889, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s___cinit__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s___cinit__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6889, 0, __PYX_ERR(0, 6889, __pyx_L1_error));

  /* "cuda/cuda.pyx":6890
 *     """
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr):
 *         pass
 */
  __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *)__pyx_v__ptr);

  /* "cuda/cuda.pyx":6889
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6891
 *     def __cinit__(self, void_ptr _ptr):
 *         self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr):             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6891, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6891, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6891, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_2__init__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6891, 0, __PYX_ERR(0, 6891, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6893
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_4getPtr[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_4getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_4getPtr(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_4getPtr(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__421)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6893, 0, __PYX_ERR(0, 6893, __pyx_L1_error));

  /* "cuda/cuda.pyx":6894
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6893
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6895
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_7__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_6__repr__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_6__repr__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6895, 0, __PYX_ERR(0, 6895, __pyx_L1_error));

  /* "cuda/cuda.pyx":6896
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['compressionType : ' + str(self.compressionType)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6897
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['compressionType : ' + str(self.compressionType)]
 *             str_list += ['gpuDirectRDMACapable : ' + str(self.gpuDirectRDMACapable)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6897, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6898
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['compressionType : ' + str(self.compressionType)]             # <<<<<<<<<<<<<<
 *             str_list += ['gpuDirectRDMACapable : ' + str(self.gpuDirectRDMACapable)]
 *             str_list += ['usage : ' + str(self.usage)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_compressionType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_compressionType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6899
 *             str_list = []
 *             str_list += ['compressionType : ' + str(self.compressionType)]
 *             str_list += ['gpuDirectRDMACapable : ' + str(self.gpuDirectRDMACapable)]             # <<<<<<<<<<<<<<
 *             str_list += ['usage : ' + str(self.usage)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gpuDirectRDMACapable_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_gpuDirectRDMACapable, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6900
 *             str_list += ['compressionType : ' + str(self.compressionType)]
 *             str_list += ['gpuDirectRDMACapable : ' + str(self.gpuDirectRDMACapable)]
 *             str_list += ['usage : ' + str(self.usage)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_usage_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_usage, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6901
 *             str_list += ['gpuDirectRDMACapable : ' + str(self.gpuDirectRDMACapable)]
 *             str_list += ['usage : ' + str(self.usage)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6902
 *             str_list += ['usage : ' + str(self.usage)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6896
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['compressionType : ' + str(self.compressionType)]
 */
  }

  /* "cuda/cuda.pyx":6904
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6895
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6907
 * 
 *     @property
 *     def compressionType(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].allocFlags.compressionType
 *     @compressionType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType___get__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6907, 0, __PYX_ERR(0, 6907, __pyx_L1_error));

  /* "cuda/cuda.pyx":6908
 *     @property
 *     def compressionType(self):
 *         return self._ptr[0].allocFlags.compressionType             # <<<<<<<<<<<<<<
 *     @compressionType.setter
 *     def compressionType(self, unsigned char compressionType):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_char((__pyx_v_self->_ptr[0]).allocFlags.compressionType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6907
 * 
 *     @property
 *     def compressionType(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].allocFlags.compressionType
 *     @compressionType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.compressionType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6910
 *         return self._ptr[0].allocFlags.compressionType
 *     @compressionType.setter
 *     def compressionType(self, unsigned char compressionType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocFlags.compressionType = compressionType
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_compressionType); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_compressionType) {
  unsigned char __pyx_v_compressionType;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_compressionType); {
    __pyx_v_compressionType = __Pyx_PyInt_As_unsigned_char(__pyx_arg_compressionType); if (unlikely((__pyx_v_compressionType == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 6910, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.compressionType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_2__set__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), ((unsigned char)__pyx_v_compressionType));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, unsigned char __pyx_v_compressionType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6910, 0, __PYX_ERR(0, 6910, __pyx_L1_error));

  /* "cuda/cuda.pyx":6912
 *     def compressionType(self, unsigned char compressionType):
 *         pass
 *         self._ptr[0].allocFlags.compressionType = compressionType             # <<<<<<<<<<<<<<
 *     @property
 *     def gpuDirectRDMACapable(self):
 */
  (__pyx_v_self->_ptr[0]).allocFlags.compressionType = __pyx_v_compressionType;

  /* "cuda/cuda.pyx":6910
 *         return self._ptr[0].allocFlags.compressionType
 *     @compressionType.setter
 *     def compressionType(self, unsigned char compressionType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocFlags.compressionType = compressionType
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.compressionType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6914
 *         self._ptr[0].allocFlags.compressionType = compressionType
 *     @property
 *     def gpuDirectRDMACapable(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].allocFlags.gpuDirectRDMACapable
 *     @gpuDirectRDMACapable.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable___get__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6914, 0, __PYX_ERR(0, 6914, __pyx_L1_error));

  /* "cuda/cuda.pyx":6915
 *     @property
 *     def gpuDirectRDMACapable(self):
 *         return self._ptr[0].allocFlags.gpuDirectRDMACapable             # <<<<<<<<<<<<<<
 *     @gpuDirectRDMACapable.setter
 *     def gpuDirectRDMACapable(self, unsigned char gpuDirectRDMACapable):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_char((__pyx_v_self->_ptr[0]).allocFlags.gpuDirectRDMACapable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6914
 *         self._ptr[0].allocFlags.compressionType = compressionType
 *     @property
 *     def gpuDirectRDMACapable(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].allocFlags.gpuDirectRDMACapable
 *     @gpuDirectRDMACapable.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.gpuDirectRDMACapable.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6917
 *         return self._ptr[0].allocFlags.gpuDirectRDMACapable
 *     @gpuDirectRDMACapable.setter
 *     def gpuDirectRDMACapable(self, unsigned char gpuDirectRDMACapable):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocFlags.gpuDirectRDMACapable = gpuDirectRDMACapable
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gpuDirectRDMACapable); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_gpuDirectRDMACapable) {
  unsigned char __pyx_v_gpuDirectRDMACapable;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_gpuDirectRDMACapable); {
    __pyx_v_gpuDirectRDMACapable = __Pyx_PyInt_As_unsigned_char(__pyx_arg_gpuDirectRDMACapable); if (unlikely((__pyx_v_gpuDirectRDMACapable == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 6917, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.gpuDirectRDMACapable.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_2__set__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), ((unsigned char)__pyx_v_gpuDirectRDMACapable));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, unsigned char __pyx_v_gpuDirectRDMACapable) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6917, 0, __PYX_ERR(0, 6917, __pyx_L1_error));

  /* "cuda/cuda.pyx":6919
 *     def gpuDirectRDMACapable(self, unsigned char gpuDirectRDMACapable):
 *         pass
 *         self._ptr[0].allocFlags.gpuDirectRDMACapable = gpuDirectRDMACapable             # <<<<<<<<<<<<<<
 *     @property
 *     def usage(self):
 */
  (__pyx_v_self->_ptr[0]).allocFlags.gpuDirectRDMACapable = __pyx_v_gpuDirectRDMACapable;

  /* "cuda/cuda.pyx":6917
 *         return self._ptr[0].allocFlags.gpuDirectRDMACapable
 *     @gpuDirectRDMACapable.setter
 *     def gpuDirectRDMACapable(self, unsigned char gpuDirectRDMACapable):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocFlags.gpuDirectRDMACapable = gpuDirectRDMACapable
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.gpuDirectRDMACapable.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6921
 *         self._ptr[0].allocFlags.gpuDirectRDMACapable = gpuDirectRDMACapable
 *     @property
 *     def usage(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].allocFlags.usage
 *     @usage.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage___get__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6921, 0, __PYX_ERR(0, 6921, __pyx_L1_error));

  /* "cuda/cuda.pyx":6922
 *     @property
 *     def usage(self):
 *         return self._ptr[0].allocFlags.usage             # <<<<<<<<<<<<<<
 *     @usage.setter
 *     def usage(self, unsigned short usage):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_short((__pyx_v_self->_ptr[0]).allocFlags.usage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6921
 *         self._ptr[0].allocFlags.gpuDirectRDMACapable = gpuDirectRDMACapable
 *     @property
 *     def usage(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].allocFlags.usage
 *     @usage.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.usage.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6924
 *         return self._ptr[0].allocFlags.usage
 *     @usage.setter
 *     def usage(self, unsigned short usage):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocFlags.usage = usage
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_usage); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_usage) {
  unsigned short __pyx_v_usage;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_usage); {
    __pyx_v_usage = __Pyx_PyInt_As_unsigned_short(__pyx_arg_usage); if (unlikely((__pyx_v_usage == (unsigned short)-1) && PyErr_Occurred())) __PYX_ERR(0, 6924, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.usage.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_2__set__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), ((unsigned short)__pyx_v_usage));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, unsigned short __pyx_v_usage) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6924, 0, __PYX_ERR(0, 6924, __pyx_L1_error));

  /* "cuda/cuda.pyx":6926
 *     def usage(self, unsigned short usage):
 *         pass
 *         self._ptr[0].allocFlags.usage = usage             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  (__pyx_v_self->_ptr[0]).allocFlags.usage = __pyx_v_usage;

  /* "cuda/cuda.pyx":6924
 *         return self._ptr[0].allocFlags.usage
 *     @usage.setter
 *     def usage(self, unsigned short usage):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocFlags.usage = usage
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.usage.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6928
 *         self._ptr[0].allocFlags.usage = usage
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].allocFlags.reserved, 4)
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved___get__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved___get__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6928, 0, __PYX_ERR(0, 6928, __pyx_L1_error));

  /* "cuda/cuda.pyx":6929
 *     @property
 *     def reserved(self):
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].allocFlags.reserved, 4)             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromStringAndSize(((char *)(__pyx_v_self->_ptr[0]).allocFlags.reserved), 4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6928
 *         self._ptr[0].allocFlags.usage = usage
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].allocFlags.reserved, 4)
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6931
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].allocFlags.reserved, 4)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 4:
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, PyObject *__pyx_v_reserved) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_b = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  unsigned char __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6931, 0, __PYX_ERR(0, 6931, __pyx_L1_error));

  /* "cuda/cuda.pyx":6932
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 4:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6932, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 != 4) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":6933
 *     def reserved(self, reserved):
 *         if len(reserved) != 4:
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))             # <<<<<<<<<<<<<<
 *         for i, b in enumerate(reserved):
 *             self._ptr[0].allocFlags.reserved[i] = b
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6933, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6933, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6933, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved_length_must_be_4_is, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6933, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6933, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 6933, __pyx_L1_error)

    /* "cuda/cuda.pyx":6932
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 4:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  }

  /* "cuda/cuda.pyx":6934
 *         if len(reserved) != 4:
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             self._ptr[0].allocFlags.reserved[i] = b
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_4 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_reserved)) || PyTuple_CheckExact(__pyx_v_reserved)) {
    __pyx_t_3 = __pyx_v_reserved; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_reserved); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6934, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6934, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 6934, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 6934, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 6934, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6934, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4);
    __pyx_t_4 = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cuda/cuda.pyx":6935
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             self._ptr[0].allocFlags.reserved[i] = b             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemAllocationProp_st:
 */
    __pyx_t_7 = __Pyx_PyInt_As_unsigned_char(__pyx_v_b); if (unlikely((__pyx_t_7 == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 6935, __pyx_L1_error)
    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6935, __pyx_L1_error)
    ((__pyx_v_self->_ptr[0]).allocFlags.reserved[__pyx_t_8]) = __pyx_t_7;

    /* "cuda/cuda.pyx":6934
 *         if len(reserved) != 4:
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             self._ptr[0].allocFlags.reserved[i] = b
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":6931
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].allocFlags.reserved, 4)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 4:
 *             raise ValueError("reserved length must be 4, is " + str(len(reserved)))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8__reduce_cython__[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8__reduce_cython__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__422)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__423, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_10__setstate_cython__[] = "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_10__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_10__setstate_cython__(((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__424)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__425, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6964
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 6964, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6964, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6964, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 6964, 0, __PYX_ERR(0, 6964, __pyx_L1_error));

  /* "cuda/cuda.pyx":6965
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6966
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":6967
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAllocationProp_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st))));

    /* "cuda/cuda.pyx":6968
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAllocationProp_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":6969
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAllocationProp_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 6969, __pyx_L1_error)

      /* "cuda/cuda.pyx":6968
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAllocationProp_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":6965
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>calloc(1, sizeof(ccuda.CUmemAllocationProp_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":6971
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAllocationProp_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":6972
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":6964
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6973
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 6973, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 6973, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6973, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 6973, 0, __PYX_ERR(0, 6973, __pyx_L1_error));

  /* "cuda/cuda.pyx":6974
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)             # <<<<<<<<<<<<<<
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).location))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 6974, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_location);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_location));
  __pyx_v_self->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":6975
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 6975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_allocFlags);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_allocFlags));
  __pyx_v_self->_allocFlags = ((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6973
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemAllocationProp_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6976
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 6976, 0, __PYX_ERR(0, 6976, __pyx_L1_error));

  /* "cuda/cuda.pyx":6977
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6978
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":6977
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":6976
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *         self._allocFlags = _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(_ptr=<void_ptr>self._ptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemAllocationProp_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":6980
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_6getPtr[] = "CUmemAllocationProp_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_22CUmemAllocationProp_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__426)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 6980, 0, __PYX_ERR(0, 6980, __pyx_L1_error));

  /* "cuda/cuda.pyx":6981
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6980
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6982
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr42__pyx_v_line = NULL;
  PyObject *__pyx_9genexpr43__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 6982, 0, __PYX_ERR(0, 6982, __pyx_L1_error));

  /* "cuda/cuda.pyx":6983
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":6984
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['requestedHandleTypes : ' + str(self.requestedHandleTypes)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6984, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6985
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]             # <<<<<<<<<<<<<<
 *             str_list += ['requestedHandleTypes : ' + str(self.requestedHandleTypes)]
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_type, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6986
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['requestedHandleTypes : ' + str(self.requestedHandleTypes)]             # <<<<<<<<<<<<<<
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['win32HandleMetaData : ' + hex(self.win32HandleMetaData)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_requestedHandleTypes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_requestedHandleTypes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6987
 *             str_list += ['type : ' + str(self.type)]
 *             str_list += ['requestedHandleTypes : ' + str(self.requestedHandleTypes)]
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['win32HandleMetaData : ' + hex(self.win32HandleMetaData)]
 *             str_list += ['allocFlags :\n' + '\n'.join(['    ' + line for line in str(self.allocFlags).splitlines()])]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6987, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_location_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6987, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6987, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6987, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6987, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6987, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr42__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr42__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6987, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6987, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr42__pyx_v_line); __pyx_9genexpr42__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr42__pyx_v_line); __pyx_9genexpr42__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_location, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6988
 *             str_list += ['requestedHandleTypes : ' + str(self.requestedHandleTypes)]
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['win32HandleMetaData : ' + hex(self.win32HandleMetaData)]             # <<<<<<<<<<<<<<
 *             str_list += ['allocFlags :\n' + '\n'.join(['    ' + line for line in str(self.allocFlags).splitlines()])]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_win32HandleMetaData_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_win32HandleMetaData, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6989
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['win32HandleMetaData : ' + hex(self.win32HandleMetaData)]
 *             str_list += ['allocFlags :\n' + '\n'.join(['    ' + line for line in str(self.allocFlags).splitlines()])]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6989, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_allocFlags_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6989, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6989, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Splitlines(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6989, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 6989, __pyx_L12_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6989, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr43__pyx_v_line, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr43__pyx_v_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6989, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 6989, __pyx_L12_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_9genexpr43__pyx_v_line); __pyx_9genexpr43__pyx_v_line = 0;
      goto __pyx_L15_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_9genexpr43__pyx_v_line); __pyx_9genexpr43__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L15_exit_scope:;
    } /* exit inner scope */
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6989, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_allocFlags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6989, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6989, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6989, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":6990
 *             str_list += ['win32HandleMetaData : ' + hex(self.win32HandleMetaData)]
 *             str_list += ['allocFlags :\n' + '\n'.join(['    ' + line for line in str(self.allocFlags).splitlines()])]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6990, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":6983
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['type : ' + str(self.type)]
 */
  }

  /* "cuda/cuda.pyx":6992
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":6982
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr42__pyx_v_line);
  __Pyx_XDECREF(__pyx_9genexpr43__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6995
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationType(self._ptr[0].type)
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_4type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4type___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4type___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 6995, 0, __PYX_ERR(0, 6995, __pyx_L1_error));

  /* "cuda/cuda.pyx":6996
 *     @property
 *     def type(self):
 *         return CUmemAllocationType(self._ptr[0].type)             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, type not None : CUmemAllocationType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemAllocationType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum((__pyx_v_self->_ptr[0]).type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":6995
 * 
 *     @property
 *     def type(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationType(self._ptr[0].type)
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":6998
 *         return CUmemAllocationType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUmemAllocationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_type) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "type"); __PYX_ERR(0, 6998, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4type_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), ((PyObject *)__pyx_v_type));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_4type_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, PyObject *__pyx_v_type) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAllocationType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 6998, 0, __PYX_ERR(0, 6998, __pyx_L1_error));

  /* "cuda/cuda.pyx":7000
 *     def type(self, type not None : CUmemAllocationType):
 *         pass
 *         self._ptr[0].type = type.value             # <<<<<<<<<<<<<<
 *     @property
 *     def requestedHandleTypes(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7000, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).type = __pyx_t_2;

  /* "cuda/cuda.pyx":6998
 *         return CUmemAllocationType(self._ptr[0].type)
 *     @type.setter
 *     def type(self, type not None : CUmemAllocationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].type = type.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7002
 *         self._ptr[0].type = type.value
 *     @property
 *     def requestedHandleTypes(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationHandleType(self._ptr[0].requestedHandleTypes)
 *     @requestedHandleTypes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7002, 0, __PYX_ERR(0, 7002, __pyx_L1_error));

  /* "cuda/cuda.pyx":7003
 *     @property
 *     def requestedHandleTypes(self):
 *         return CUmemAllocationHandleType(self._ptr[0].requestedHandleTypes)             # <<<<<<<<<<<<<<
 *     @requestedHandleTypes.setter
 *     def requestedHandleTypes(self, requestedHandleTypes not None : CUmemAllocationHandleType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemAllocationHandleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum((__pyx_v_self->_ptr[0]).requestedHandleTypes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7002
 *         self._ptr[0].type = type.value
 *     @property
 *     def requestedHandleTypes(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationHandleType(self._ptr[0].requestedHandleTypes)
 *     @requestedHandleTypes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.requestedHandleTypes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7005
 *         return CUmemAllocationHandleType(self._ptr[0].requestedHandleTypes)
 *     @requestedHandleTypes.setter
 *     def requestedHandleTypes(self, requestedHandleTypes not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].requestedHandleTypes = requestedHandleTypes.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_requestedHandleTypes); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_requestedHandleTypes) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_requestedHandleTypes) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "requestedHandleTypes"); __PYX_ERR(0, 7005, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), ((PyObject *)__pyx_v_requestedHandleTypes));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, PyObject *__pyx_v_requestedHandleTypes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7005, 0, __PYX_ERR(0, 7005, __pyx_L1_error));

  /* "cuda/cuda.pyx":7007
 *     def requestedHandleTypes(self, requestedHandleTypes not None : CUmemAllocationHandleType):
 *         pass
 *         self._ptr[0].requestedHandleTypes = requestedHandleTypes.value             # <<<<<<<<<<<<<<
 *     @property
 *     def location(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_requestedHandleTypes, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7007, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).requestedHandleTypes = __pyx_t_2;

  /* "cuda/cuda.pyx":7005
 *         return CUmemAllocationHandleType(self._ptr[0].requestedHandleTypes)
 *     @requestedHandleTypes.setter
 *     def requestedHandleTypes(self, requestedHandleTypes not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].requestedHandleTypes = requestedHandleTypes.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.requestedHandleTypes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7009
 *         self._ptr[0].requestedHandleTypes = requestedHandleTypes.value
 *     @property
 *     def location(self):             # <<<<<<<<<<<<<<
 *         return self._location
 *     @location.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_8location_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_8location_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8location___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8location___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7009, 0, __PYX_ERR(0, 7009, __pyx_L1_error));

  /* "cuda/cuda.pyx":7010
 *     @property
 *     def location(self):
 *         return self._location             # <<<<<<<<<<<<<<
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_location));
  __pyx_r = ((PyObject *)__pyx_v_self->_location);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7009
 *         self._ptr[0].requestedHandleTypes = requestedHandleTypes.value
 *     @property
 *     def location(self):             # <<<<<<<<<<<<<<
 *         return self._location
 *     @location.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.location.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7012
 *         return self._location
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(location):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_8location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_location); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_8location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_location) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_location), __pyx_ptype_4cuda_4cuda_CUmemLocation, 0, "location", 0))) __PYX_ERR(0, 7012, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8location_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)__pyx_v_location));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_8location_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7012, 0, __PYX_ERR(0, 7012, __pyx_L1_error));

  /* "cuda/cuda.pyx":7014
 *     def location(self, location not None : CUmemLocation):
 *         pass
 *         for _attr in dir(location):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_location)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7014, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7014, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7014, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7014, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7014, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7014, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7014, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":7015
 *         pass
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7015, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":7016
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._location, _attr, getattr(location, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":7015
 *         pass
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":7017
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7017, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7017, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7017, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":7018
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._location, _attr, getattr(location, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def win32HandleMetaData(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_location);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_location), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7018, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 7018, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":7017
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":7014
 *     def location(self, location not None : CUmemLocation):
 *         pass
 *         for _attr in dir(location):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7012
 *         return self._location
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(location):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.location.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7020
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 *     def win32HandleMetaData(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].win32HandleMetaData
 *     @win32HandleMetaData.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7020, 0, __PYX_ERR(0, 7020, __pyx_L1_error));

  /* "cuda/cuda.pyx":7021
 *     @property
 *     def win32HandleMetaData(self):
 *         return <void_ptr>self._ptr[0].win32HandleMetaData             # <<<<<<<<<<<<<<
 *     @win32HandleMetaData.setter
 *     def win32HandleMetaData(self, win32HandleMetaData):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).win32HandleMetaData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7020
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 *     def win32HandleMetaData(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].win32HandleMetaData
 *     @win32HandleMetaData.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.win32HandleMetaData.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7023
 *         return <void_ptr>self._ptr[0].win32HandleMetaData
 *     @win32HandleMetaData.setter
 *     def win32HandleMetaData(self, win32HandleMetaData):             # <<<<<<<<<<<<<<
 *         _cwin32HandleMetaData = utils.HelperInputVoidPtr(win32HandleMetaData)
 *         self._ptr[0].win32HandleMetaData = <void*><void_ptr>_cwin32HandleMetaData.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32HandleMetaData); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32HandleMetaData) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), ((PyObject *)__pyx_v_win32HandleMetaData));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, PyObject *__pyx_v_win32HandleMetaData) {
  PyObject *__pyx_v__cwin32HandleMetaData = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7023, 0, __PYX_ERR(0, 7023, __pyx_L1_error));

  /* "cuda/cuda.pyx":7024
 *     @win32HandleMetaData.setter
 *     def win32HandleMetaData(self, win32HandleMetaData):
 *         _cwin32HandleMetaData = utils.HelperInputVoidPtr(win32HandleMetaData)             # <<<<<<<<<<<<<<
 *         self._ptr[0].win32HandleMetaData = <void*><void_ptr>_cwin32HandleMetaData.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_win32HandleMetaData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cwin32HandleMetaData = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7025
 *     def win32HandleMetaData(self, win32HandleMetaData):
 *         _cwin32HandleMetaData = utils.HelperInputVoidPtr(win32HandleMetaData)
 *         self._ptr[0].win32HandleMetaData = <void*><void_ptr>_cwin32HandleMetaData.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def allocFlags(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cwin32HandleMetaData, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7025, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).win32HandleMetaData = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":7023
 *         return <void_ptr>self._ptr[0].win32HandleMetaData
 *     @win32HandleMetaData.setter
 *     def win32HandleMetaData(self, win32HandleMetaData):             # <<<<<<<<<<<<<<
 *         _cwin32HandleMetaData = utils.HelperInputVoidPtr(win32HandleMetaData)
 *         self._ptr[0].win32HandleMetaData = <void*><void_ptr>_cwin32HandleMetaData.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.win32HandleMetaData.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cwin32HandleMetaData);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7027
 *         self._ptr[0].win32HandleMetaData = <void*><void_ptr>_cwin32HandleMetaData.cptr
 *     @property
 *     def allocFlags(self):             # <<<<<<<<<<<<<<
 *         return self._allocFlags
 *     @allocFlags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags___get__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7027, 0, __PYX_ERR(0, 7027, __pyx_L1_error));

  /* "cuda/cuda.pyx":7028
 *     @property
 *     def allocFlags(self):
 *         return self._allocFlags             # <<<<<<<<<<<<<<
 *     @allocFlags.setter
 *     def allocFlags(self, allocFlags not None : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_allocFlags));
  __pyx_r = ((PyObject *)__pyx_v_self->_allocFlags);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7027
 *         self._ptr[0].win32HandleMetaData = <void*><void_ptr>_cwin32HandleMetaData.cptr
 *     @property
 *     def allocFlags(self):             # <<<<<<<<<<<<<<
 *         return self._allocFlags
 *     @allocFlags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.allocFlags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7030
 *         return self._allocFlags
 *     @allocFlags.setter
 *     def allocFlags(self, allocFlags not None : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(allocFlags):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_allocFlags); /*proto*/
static int __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_allocFlags) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_allocFlags), __pyx_ptype_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s, 0, "allocFlags", 0))) __PYX_ERR(0, 7030, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)__pyx_v_allocFlags));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *__pyx_v_allocFlags) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7030, 0, __PYX_ERR(0, 7030, __pyx_L1_error));

  /* "cuda/cuda.pyx":7032
 *     def allocFlags(self, allocFlags not None : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s):
 *         pass
 *         for _attr in dir(allocFlags):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_allocFlags)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7032, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7032, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7032, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7032, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7032, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7032, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":7033
 *         pass
 *         for _attr in dir(allocFlags):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7033, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":7034
 *         for _attr in dir(allocFlags):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._allocFlags, _attr, getattr(allocFlags, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":7033
 *         pass
 *         for _attr in dir(allocFlags):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":7035
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._allocFlags, _attr, getattr(allocFlags, _attr))
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7035, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7035, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7035, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":7036
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._allocFlags, _attr, getattr(allocFlags, _attr))             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemAccessDesc_st:
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_allocFlags);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_allocFlags), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7036, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 7036, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":7035
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._allocFlags, _attr, getattr(allocFlags, _attr))
 * 
 */
    }

    /* "cuda/cuda.pyx":7032
 *     def allocFlags(self, allocFlags not None : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s):
 *         pass
 *         for _attr in dir(allocFlags):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7030
 *         return self._allocFlags
 *     @allocFlags.setter
 *     def allocFlags(self, allocFlags not None : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(allocFlags):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.allocFlags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_10__reduce_cython__[] = "CUmemAllocationProp_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_22CUmemAllocationProp_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__427)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__428, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_12__setstate_cython__[] = "CUmemAllocationProp_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_22CUmemAllocationProp_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22CUmemAllocationProp_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__429)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__430, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAllocationProp_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7055
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7055, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7055, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7055, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7055, 0, __PYX_ERR(0, 7055, __pyx_L1_error));

  /* "cuda/cuda.pyx":7056
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7057
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7058
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAccessDesc_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st))));

    /* "cuda/cuda.pyx":7059
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAccessDesc_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7060
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAccessDesc_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7060, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7060, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7060, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7060, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7060, __pyx_L1_error)

      /* "cuda/cuda.pyx":7059
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAccessDesc_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7056
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>calloc(1, sizeof(ccuda.CUmemAccessDesc_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7062
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemAccessDesc_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7063
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7055
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7064
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7064, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7064, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7064, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 7064, 0, __PYX_ERR(0, 7064, __pyx_L1_error));

  /* "cuda/cuda.pyx":7065
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).location))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 7065, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_location);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_location));
  __pyx_v_self->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7064
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemAccessDesc_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7066
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7066, 0, __PYX_ERR(0, 7066, __pyx_L1_error));

  /* "cuda/cuda.pyx":7067
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7068
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7067
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":7066
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemAccessDesc_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7070
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_6getPtr[] = "CUmemAccessDesc_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUmemAccessDesc_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__431)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7070, 0, __PYX_ERR(0, 7070, __pyx_L1_error));

  /* "cuda/cuda.pyx":7071
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7070
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7072
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr44__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7072, 0, __PYX_ERR(0, 7072, __pyx_L1_error));

  /* "cuda/cuda.pyx":7073
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7074
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7075
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['flags : ' + str(self.flags)]
 *             return '\n'.join(str_list)
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_location_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7075, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7075, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7075, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 7075, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7075, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr44__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr44__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7075, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 7075, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr44__pyx_v_line); __pyx_9genexpr44__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr44__pyx_v_line); __pyx_9genexpr44__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_location, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7076
 *             str_list = []
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_flags_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_flags, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7077
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['flags : ' + str(self.flags)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":7073
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":7079
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":7072
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr44__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7082
 * 
 *     @property
 *     def location(self):             # <<<<<<<<<<<<<<
 *         return self._location
 *     @location.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_8location_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_8location_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8location___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8location___get__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7082, 0, __PYX_ERR(0, 7082, __pyx_L1_error));

  /* "cuda/cuda.pyx":7083
 *     @property
 *     def location(self):
 *         return self._location             # <<<<<<<<<<<<<<
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_location));
  __pyx_r = ((PyObject *)__pyx_v_self->_location);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7082
 * 
 *     @property
 *     def location(self):             # <<<<<<<<<<<<<<
 *         return self._location
 *     @location.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.location.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7085
 *         return self._location
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(location):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_8location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_location); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_8location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_location) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_location), __pyx_ptype_4cuda_4cuda_CUmemLocation, 0, "location", 0))) __PYX_ERR(0, 7085, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8location_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)__pyx_v_location));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_8location_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7085, 0, __PYX_ERR(0, 7085, __pyx_L1_error));

  /* "cuda/cuda.pyx":7087
 *     def location(self, location not None : CUmemLocation):
 *         pass
 *         for _attr in dir(location):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_location)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7087, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7087, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7087, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7087, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7087, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7087, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7087, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":7088
 *         pass
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7088, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":7089
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._location, _attr, getattr(location, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":7088
 *         pass
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":7090
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7090, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7090, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7090, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":7091
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._location, _attr, getattr(location, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_location);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_location), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7091, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 7091, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":7090
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":7087
 *     def location(self, location not None : CUmemLocation):
 *         pass
 *         for _attr in dir(location):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7085
 *         return self._location
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(location):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.location.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7093
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return CUmemAccess_flags(self._ptr[0].flags)
 *     @flags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5flags_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_5flags___get__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_5flags___get__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7093, 0, __PYX_ERR(0, 7093, __pyx_L1_error));

  /* "cuda/cuda.pyx":7094
 *     @property
 *     def flags(self):
 *         return CUmemAccess_flags(self._ptr[0].flags)             # <<<<<<<<<<<<<<
 *     @flags.setter
 *     def flags(self, flags not None : CUmemAccess_flags):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemAccess_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum((__pyx_v_self->_ptr[0]).flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7093
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 *     def flags(self):             # <<<<<<<<<<<<<<
 *         return CUmemAccess_flags(self._ptr[0].flags)
 *     @flags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7096
 *         return CUmemAccess_flags(self._ptr[0].flags)
 *     @flags.setter
 *     def flags(self, flags not None : CUmemAccess_flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_flags); /*proto*/
static int __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5flags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_flags) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "flags"); __PYX_ERR(0, 7096, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_5flags_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self), ((PyObject *)__pyx_v_flags));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_5flags_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAccess_flags __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7096, 0, __PYX_ERR(0, 7096, __pyx_L1_error));

  /* "cuda/cuda.pyx":7098
 *     def flags(self, flags not None : CUmemAccess_flags):
 *         pass
 *         self._ptr[0].flags = flags.value             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemPoolProps_st:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_flags, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).flags = __pyx_t_2;

  /* "cuda/cuda.pyx":7096
 *         return CUmemAccess_flags(self._ptr[0].flags)
 *     @flags.setter
 *     def flags(self, flags not None : CUmemAccess_flags):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].flags = flags.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.flags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_10__reduce_cython__[] = "CUmemAccessDesc_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUmemAccessDesc_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__432)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__433, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_12__setstate_cython__[] = "CUmemAccessDesc_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_18CUmemAccessDesc_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18CUmemAccessDesc_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__434)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__435, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemAccessDesc_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7128
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7128, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7128, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7128, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7128, 0, __PYX_ERR(0, 7128, __pyx_L1_error));

  /* "cuda/cuda.pyx":7129
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7130
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7131
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolProps_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st))));

    /* "cuda/cuda.pyx":7132
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolProps_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7133
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolProps_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7133, __pyx_L1_error)

      /* "cuda/cuda.pyx":7132
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolProps_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7129
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolProps_st *>calloc(1, sizeof(ccuda.CUmemPoolProps_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7135
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolProps_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemPoolProps_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7136
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemPoolProps_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7128
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7137
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemPoolProps_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7137, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7137, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7137, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 7137, 0, __PYX_ERR(0, 7137, __pyx_L1_error));

  /* "cuda/cuda.pyx":7138
 *             self._ptr = <ccuda.CUmemPoolProps_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).location))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 7138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_location);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_location));
  __pyx_v_self->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7137
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemPoolProps_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7139
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7139, 0, __PYX_ERR(0, 7139, __pyx_L1_error));

  /* "cuda/cuda.pyx":7140
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7141
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7140
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":7139
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._location = CUmemLocation(_ptr=<void_ptr>&self._ptr[0].location)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemPoolProps_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7143
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_6getPtr[] = "CUmemPoolProps_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUmemPoolProps_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__436)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7143, 0, __PYX_ERR(0, 7143, __pyx_L1_error));

  /* "cuda/cuda.pyx":7144
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7143
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7145
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr45__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7145, 0, __PYX_ERR(0, 7145, __pyx_L1_error));

  /* "cuda/cuda.pyx":7146
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['allocType : ' + str(self.allocType)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7147
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['allocType : ' + str(self.allocType)]
 *             str_list += ['handleTypes : ' + str(self.handleTypes)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7148
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['allocType : ' + str(self.allocType)]             # <<<<<<<<<<<<<<
 *             str_list += ['handleTypes : ' + str(self.handleTypes)]
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_allocType_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_allocType, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7149
 *             str_list = []
 *             str_list += ['allocType : ' + str(self.allocType)]
 *             str_list += ['handleTypes : ' + str(self.handleTypes)]             # <<<<<<<<<<<<<<
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['win32SecurityAttributes : ' + hex(self.win32SecurityAttributes)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handleTypes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_handleTypes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7150
 *             str_list += ['allocType : ' + str(self.allocType)]
 *             str_list += ['handleTypes : ' + str(self.handleTypes)]
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['win32SecurityAttributes : ' + hex(self.win32SecurityAttributes)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7150, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_location_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7150, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7150, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7150, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 7150, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7150, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr45__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr45__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7150, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 7150, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr45__pyx_v_line); __pyx_9genexpr45__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr45__pyx_v_line); __pyx_9genexpr45__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_location, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7151
 *             str_list += ['handleTypes : ' + str(self.handleTypes)]
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['win32SecurityAttributes : ' + hex(self.win32SecurityAttributes)]             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_win32SecurityAttributes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_kp_u_win32SecurityAttributes, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7152
 *             str_list += ['location :\n' + '\n'.join(['    ' + line for line in str(self.location).splitlines()])]
 *             str_list += ['win32SecurityAttributes : ' + hex(self.win32SecurityAttributes)]
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7153
 *             str_list += ['win32SecurityAttributes : ' + hex(self.win32SecurityAttributes)]
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":7146
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['allocType : ' + str(self.allocType)]
 */
  }

  /* "cuda/cuda.pyx":7155
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":7145
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr45__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7158
 * 
 *     @property
 *     def allocType(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationType(self._ptr[0].allocType)
 *     @allocType.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9allocType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9allocType_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_9allocType___get__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_9allocType___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7158, 0, __PYX_ERR(0, 7158, __pyx_L1_error));

  /* "cuda/cuda.pyx":7159
 *     @property
 *     def allocType(self):
 *         return CUmemAllocationType(self._ptr[0].allocType)             # <<<<<<<<<<<<<<
 *     @allocType.setter
 *     def allocType(self, allocType not None : CUmemAllocationType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemAllocationType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum((__pyx_v_self->_ptr[0]).allocType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7158
 * 
 *     @property
 *     def allocType(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationType(self._ptr[0].allocType)
 *     @allocType.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.allocType.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7161
 *         return CUmemAllocationType(self._ptr[0].allocType)
 *     @allocType.setter
 *     def allocType(self, allocType not None : CUmemAllocationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocType = allocType.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9allocType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_allocType); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9allocType_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_allocType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_allocType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "allocType"); __PYX_ERR(0, 7161, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_9allocType_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), ((PyObject *)__pyx_v_allocType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_9allocType_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_allocType) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAllocationType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7161, 0, __PYX_ERR(0, 7161, __pyx_L1_error));

  /* "cuda/cuda.pyx":7163
 *     def allocType(self, allocType not None : CUmemAllocationType):
 *         pass
 *         self._ptr[0].allocType = allocType.value             # <<<<<<<<<<<<<<
 *     @property
 *     def handleTypes(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_allocType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7163, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).allocType = __pyx_t_2;

  /* "cuda/cuda.pyx":7161
 *         return CUmemAllocationType(self._ptr[0].allocType)
 *     @allocType.setter
 *     def allocType(self, allocType not None : CUmemAllocationType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].allocType = allocType.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.allocType.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7165
 *         self._ptr[0].allocType = allocType.value
 *     @property
 *     def handleTypes(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationHandleType(self._ptr[0].handleTypes)
 *     @handleTypes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes___get__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7165, 0, __PYX_ERR(0, 7165, __pyx_L1_error));

  /* "cuda/cuda.pyx":7166
 *     @property
 *     def handleTypes(self):
 *         return CUmemAllocationHandleType(self._ptr[0].handleTypes)             # <<<<<<<<<<<<<<
 *     @handleTypes.setter
 *     def handleTypes(self, handleTypes not None : CUmemAllocationHandleType):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemAllocationHandleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum((__pyx_v_self->_ptr[0]).handleTypes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7165
 *         self._ptr[0].allocType = allocType.value
 *     @property
 *     def handleTypes(self):             # <<<<<<<<<<<<<<
 *         return CUmemAllocationHandleType(self._ptr[0].handleTypes)
 *     @handleTypes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.handleTypes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7168
 *         return CUmemAllocationHandleType(self._ptr[0].handleTypes)
 *     @handleTypes.setter
 *     def handleTypes(self, handleTypes not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].handleTypes = handleTypes.value
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handleTypes); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_handleTypes) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_handleTypes) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "handleTypes"); __PYX_ERR(0, 7168, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), ((PyObject *)__pyx_v_handleTypes));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_handleTypes) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7168, 0, __PYX_ERR(0, 7168, __pyx_L1_error));

  /* "cuda/cuda.pyx":7170
 *     def handleTypes(self, handleTypes not None : CUmemAllocationHandleType):
 *         pass
 *         self._ptr[0].handleTypes = handleTypes.value             # <<<<<<<<<<<<<<
 *     @property
 *     def location(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_handleTypes, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).handleTypes = __pyx_t_2;

  /* "cuda/cuda.pyx":7168
 *         return CUmemAllocationHandleType(self._ptr[0].handleTypes)
 *     @handleTypes.setter
 *     def handleTypes(self, handleTypes not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].handleTypes = handleTypes.value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.handleTypes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7172
 *         self._ptr[0].handleTypes = handleTypes.value
 *     @property
 *     def location(self):             # <<<<<<<<<<<<<<
 *         return self._location
 *     @location.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8location_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8location_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8location___get__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8location___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7172, 0, __PYX_ERR(0, 7172, __pyx_L1_error));

  /* "cuda/cuda.pyx":7173
 *     @property
 *     def location(self):
 *         return self._location             # <<<<<<<<<<<<<<
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_location));
  __pyx_r = ((PyObject *)__pyx_v_self->_location);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7172
 *         self._ptr[0].handleTypes = handleTypes.value
 *     @property
 *     def location(self):             # <<<<<<<<<<<<<<
 *         return self._location
 *     @location.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.location.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7175
 *         return self._location
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(location):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_location); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_location) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_location), __pyx_ptype_4cuda_4cuda_CUmemLocation, 0, "location", 0))) __PYX_ERR(0, 7175, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8location_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)__pyx_v_location));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8location_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7175, 0, __PYX_ERR(0, 7175, __pyx_L1_error));

  /* "cuda/cuda.pyx":7177
 *     def location(self, location not None : CUmemLocation):
 *         pass
 *         for _attr in dir(location):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_location)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7177, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7177, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7177, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7177, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":7178
 *         pass
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7178, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":7179
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._location, _attr, getattr(location, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":7178
 *         pass
 *         for _attr in dir(location):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":7180
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7180, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":7181
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._location, _attr, getattr(location, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def win32SecurityAttributes(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_location);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_location), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 7181, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":7180
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":7177
 *     def location(self, location not None : CUmemLocation):
 *         pass
 *         for _attr in dir(location):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7175
 *         return self._location
 *     @location.setter
 *     def location(self, location not None : CUmemLocation):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(location):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.location.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7183
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 *     def win32SecurityAttributes(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].win32SecurityAttributes
 *     @win32SecurityAttributes.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes___get__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7183, 0, __PYX_ERR(0, 7183, __pyx_L1_error));

  /* "cuda/cuda.pyx":7184
 *     @property
 *     def win32SecurityAttributes(self):
 *         return <void_ptr>self._ptr[0].win32SecurityAttributes             # <<<<<<<<<<<<<<
 *     @win32SecurityAttributes.setter
 *     def win32SecurityAttributes(self, win32SecurityAttributes):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).win32SecurityAttributes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7183
 *                 setattr(self._location, _attr, getattr(location, _attr))
 *     @property
 *     def win32SecurityAttributes(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr[0].win32SecurityAttributes
 *     @win32SecurityAttributes.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.win32SecurityAttributes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7186
 *         return <void_ptr>self._ptr[0].win32SecurityAttributes
 *     @win32SecurityAttributes.setter
 *     def win32SecurityAttributes(self, win32SecurityAttributes):             # <<<<<<<<<<<<<<
 *         _cwin32SecurityAttributes = utils.HelperInputVoidPtr(win32SecurityAttributes)
 *         self._ptr[0].win32SecurityAttributes = <void*><void_ptr>_cwin32SecurityAttributes.cptr
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32SecurityAttributes); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_win32SecurityAttributes) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), ((PyObject *)__pyx_v_win32SecurityAttributes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_win32SecurityAttributes) {
  PyObject *__pyx_v__cwin32SecurityAttributes = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7186, 0, __PYX_ERR(0, 7186, __pyx_L1_error));

  /* "cuda/cuda.pyx":7187
 *     @win32SecurityAttributes.setter
 *     def win32SecurityAttributes(self, win32SecurityAttributes):
 *         _cwin32SecurityAttributes = utils.HelperInputVoidPtr(win32SecurityAttributes)             # <<<<<<<<<<<<<<
 *         self._ptr[0].win32SecurityAttributes = <void*><void_ptr>_cwin32SecurityAttributes.cptr
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_win32SecurityAttributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__cwin32SecurityAttributes = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7188
 *     def win32SecurityAttributes(self, win32SecurityAttributes):
 *         _cwin32SecurityAttributes = utils.HelperInputVoidPtr(win32SecurityAttributes)
 *         self._ptr[0].win32SecurityAttributes = <void*><void_ptr>_cwin32SecurityAttributes.cptr             # <<<<<<<<<<<<<<
 *     @property
 *     def reserved(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v__cwin32SecurityAttributes, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_self->_ptr[0]).win32SecurityAttributes = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":7186
 *         return <void_ptr>self._ptr[0].win32SecurityAttributes
 *     @win32SecurityAttributes.setter
 *     def win32SecurityAttributes(self, win32SecurityAttributes):             # <<<<<<<<<<<<<<
 *         _cwin32SecurityAttributes = utils.HelperInputVoidPtr(win32SecurityAttributes)
 *         self._ptr[0].win32SecurityAttributes = <void*><void_ptr>_cwin32SecurityAttributes.cptr
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.win32SecurityAttributes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__cwin32SecurityAttributes);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7190
 *         self._ptr[0].win32SecurityAttributes = <void*><void_ptr>_cwin32SecurityAttributes.cptr
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7190, 0, __PYX_ERR(0, 7190, __pyx_L1_error));

  /* "cuda/cuda.pyx":7191
 *     @property
 *     def reserved(self):
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromStringAndSize(((char *)(__pyx_v_self->_ptr[0]).reserved), 64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7190
 *         self._ptr[0].win32SecurityAttributes = <void*><void_ptr>_cwin32SecurityAttributes.cptr
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7193
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_b = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  unsigned char __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7193, 0, __PYX_ERR(0, 7193, __pyx_L1_error));

  /* "cuda/cuda.pyx":7194
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7194, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 != 64) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":7195
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))             # <<<<<<<<<<<<<<
 *         for i, b in enumerate(reserved):
 *             self._ptr[0].reserved[i] = b
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7195, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved_length_must_be_64_is, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 7195, __pyx_L1_error)

    /* "cuda/cuda.pyx":7194
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  }

  /* "cuda/cuda.pyx":7196
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             self._ptr[0].reserved[i] = b
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_4 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_reserved)) || PyTuple_CheckExact(__pyx_v_reserved)) {
    __pyx_t_3 = __pyx_v_reserved; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_reserved); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7196, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 7196, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7196, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 7196, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7196, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7196, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4);
    __pyx_t_4 = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cuda/cuda.pyx":7197
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             self._ptr[0].reserved[i] = b             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemPoolPtrExportData_st:
 */
    __pyx_t_7 = __Pyx_PyInt_As_unsigned_char(__pyx_v_b); if (unlikely((__pyx_t_7 == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 7197, __pyx_L1_error)
    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 7197, __pyx_L1_error)
    ((__pyx_v_self->_ptr[0]).reserved[__pyx_t_8]) = __pyx_t_7;

    /* "cuda/cuda.pyx":7196
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             self._ptr[0].reserved[i] = b
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":7193
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_10__reduce_cython__[] = "CUmemPoolProps_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUmemPoolProps_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__437)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__438, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_12__setstate_cython__[] = "CUmemPoolProps_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17CUmemPoolProps_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_17CUmemPoolProps_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__439)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__440, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolProps_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7214
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7214, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7214, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7214, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7214, 0, __PYX_ERR(0, 7214, __pyx_L1_error));

  /* "cuda/cuda.pyx":7215
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7216
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7217
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolPtrExportData_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st))));

    /* "cuda/cuda.pyx":7218
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolPtrExportData_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7219
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolPtrExportData_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7219, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7219, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7219, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7219, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7219, __pyx_L1_error)

      /* "cuda/cuda.pyx":7218
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolPtrExportData_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7215
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>calloc(1, sizeof(ccuda.CUmemPoolPtrExportData_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7221
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemPoolPtrExportData_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7222
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7214
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7223
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemPoolPtrExportData_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         pass
 *     def __dealloc__(self):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7223, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7223, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7223, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_2__init__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 7223, 0, __PYX_ERR(0, 7223, __pyx_L1_error));

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7225
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7225, 0, __PYX_ERR(0, 7225, __pyx_L1_error));

  /* "cuda/cuda.pyx":7226
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7227
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         pass
 *     def getPtr(self):
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7226
 *         pass
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         pass
 */
  }

  /* "cuda/cuda.pyx":7225
 *     def __init__(self, void_ptr _ptr = 0):
 *         pass
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemPoolPtrExportData_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7229
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_6getPtr[] = "CUmemPoolPtrExportData_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_25CUmemPoolPtrExportData_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__441)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7229, 0, __PYX_ERR(0, 7229, __pyx_L1_error));

  /* "cuda/cuda.pyx":7230
 *         pass
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7229
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7231
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7231, 0, __PYX_ERR(0, 7231, __pyx_L1_error));

  /* "cuda/cuda.pyx":7232
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7233
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7234
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reserved_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7235
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":7232
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['reserved : ' + str(self.reserved)]
 */
  }

  /* "cuda/cuda.pyx":7237
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":7231
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7240
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved___get__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved___get__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7240, 0, __PYX_ERR(0, 7240, __pyx_L1_error));

  /* "cuda/cuda.pyx":7241
 *     @property
 *     def reserved(self):
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)             # <<<<<<<<<<<<<<
 *     @reserved.setter
 *     def reserved(self, reserved):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromStringAndSize(((char *)(__pyx_v_self->_ptr[0]).reserved), 64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7240
 * 
 *     @property
 *     def reserved(self):             # <<<<<<<<<<<<<<
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.reserved.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7243
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved); /*proto*/
static int __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_reserved) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_2__set__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self), ((PyObject *)__pyx_v_reserved));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_2__set__(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, PyObject *__pyx_v_reserved) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_b = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  unsigned char __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7243, 0, __PYX_ERR(0, 7243, __pyx_L1_error));

  /* "cuda/cuda.pyx":7244
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7244, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 != 64) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":7245
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))             # <<<<<<<<<<<<<<
 *         for i, b in enumerate(reserved):
 *             self._ptr[0].reserved[i] = b
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_reserved); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7245, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_reserved_length_must_be_64_is, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 7245, __pyx_L1_error)

    /* "cuda/cuda.pyx":7244
 *     @reserved.setter
 *     def reserved(self, reserved):
 *         if len(reserved) != 64:             # <<<<<<<<<<<<<<
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 */
  }

  /* "cuda/cuda.pyx":7246
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             self._ptr[0].reserved[i] = b
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_4 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_reserved)) || PyTuple_CheckExact(__pyx_v_reserved)) {
    __pyx_t_3 = __pyx_v_reserved; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_reserved); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7246, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 7246, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 7246, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7246, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4);
    __pyx_t_4 = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cuda/cuda.pyx":7247
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):
 *             self._ptr[0].reserved[i] = b             # <<<<<<<<<<<<<<
 * 
 * cdef class CUDA_MEM_ALLOC_NODE_PARAMS_st:
 */
    __pyx_t_7 = __Pyx_PyInt_As_unsigned_char(__pyx_v_b); if (unlikely((__pyx_t_7 == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 7247, __pyx_L1_error)
    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 7247, __pyx_L1_error)
    ((__pyx_v_self->_ptr[0]).reserved[__pyx_t_8]) = __pyx_t_7;

    /* "cuda/cuda.pyx":7246
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 *         for i, b in enumerate(reserved):             # <<<<<<<<<<<<<<
 *             self._ptr[0].reserved[i] = b
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":7243
 *         return PyBytes_FromStringAndSize(<char*>self._ptr[0].reserved, 64)
 *     @reserved.setter
 *     def reserved(self, reserved):             # <<<<<<<<<<<<<<
 *         if len(reserved) != 64:
 *             raise ValueError("reserved length must be 64, is " + str(len(reserved)))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_10__reduce_cython__[] = "CUmemPoolPtrExportData_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_25CUmemPoolPtrExportData_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__442)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__443, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_12__setstate_cython__[] = "CUmemPoolPtrExportData_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_25CUmemPoolPtrExportData_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_25CUmemPoolPtrExportData_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__444)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__445, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemPoolPtrExportData_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7276
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7276, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7276, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7276, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st___cinit__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st___cinit__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7276, 0, __PYX_ERR(0, 7276, __pyx_L1_error));

  /* "cuda/cuda.pyx":7277
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7278
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7279
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)))
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)calloc(1, (sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st))));

    /* "cuda/cuda.pyx":7280
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7281
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7281, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7281, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7281, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7281, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7281, __pyx_L1_error)

      /* "cuda/cuda.pyx":7280
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7277
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>calloc(1, sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7283
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7284
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>_ptr             # <<<<<<<<<<<<<<
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)
 */
    __pyx_v_self->_ptr = ((struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7276
 * 
 *     """
 *     def __cinit__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7285
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7285, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7285, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7285, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_2__init__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_2__init__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 7285, 0, __PYX_ERR(0, 7285, __pyx_L1_error));

  /* "cuda/cuda.pyx":7286
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)             # <<<<<<<<<<<<<<
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).poolProps))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr, __pyx_t_2) < 0) __PYX_ERR(0, 7286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolProps), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_poolProps);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_poolProps));
  __pyx_v_self->_poolProps = ((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7287
 *     def __init__(self, void_ptr _ptr = 0):
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(&(__pyx_v_self->_ptr[0]).dptr))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr, __pyx_t_1) < 0) __PYX_ERR(0, 7287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_dptr);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_dptr));
  __pyx_v_self->_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7285
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st *>_ptr
 *     def __init__(self, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7288
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_5__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4__dealloc__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7288, 0, __PYX_ERR(0, 7288, __pyx_L1_error));

  /* "cuda/cuda.pyx":7289
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         if self._accessDescs is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7290
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *         if self._accessDescs is not NULL:
 *             free(self._accessDescs)
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7289
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *         if self._accessDescs is not NULL:
 */
  }

  /* "cuda/cuda.pyx":7291
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *         if self._accessDescs is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._accessDescs)
 *     def getPtr(self):
 */
  __pyx_t_1 = ((__pyx_v_self->_accessDescs != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7292
 *             free(self._ptr)
 *         if self._accessDescs is not NULL:
 *             free(self._accessDescs)             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
    free(__pyx_v_self->_accessDescs);

    /* "cuda/cuda.pyx":7291
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *         if self._accessDescs is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._accessDescs)
 *     def getPtr(self):
 */
  }

  /* "cuda/cuda.pyx":7288
 *         self._poolProps = CUmemPoolProps(_ptr=<void_ptr>&self._ptr[0].poolProps)
 *         self._dptr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].dptr)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7293
 *         if self._accessDescs is not NULL:
 *             free(self._accessDescs)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_6getPtr[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_7getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_6getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_7getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_6getPtr(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_6getPtr(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__446)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7293, 0, __PYX_ERR(0, 7293, __pyx_L1_error));

  /* "cuda/cuda.pyx":7294
 *             free(self._accessDescs)
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7293
 *         if self._accessDescs is not NULL:
 *             free(self._accessDescs)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7295
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8__repr__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8__repr__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_str_list = NULL;
  PyObject *__pyx_9genexpr46__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7295, 0, __PYX_ERR(0, 7295, __pyx_L1_error));

  /* "cuda/cuda.pyx":7296
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['poolProps :\n' + '\n'.join(['    ' + line for line in str(self.poolProps).splitlines()])]
 */
  __pyx_t_1 = ((__pyx_v_self->_ptr != NULL) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7297
 *     def __repr__(self):
 *         if self._ptr is not NULL:
 *             str_list = []             # <<<<<<<<<<<<<<
 *             str_list += ['poolProps :\n' + '\n'.join(['    ' + line for line in str(self.poolProps).splitlines()])]
 *             str_list += ['accessDescs : ' + str(self.accessDescs)]
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_str_list = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7298
 *         if self._ptr is not NULL:
 *             str_list = []
 *             str_list += ['poolProps :\n' + '\n'.join(['    ' + line for line in str(self.poolProps).splitlines()])]             # <<<<<<<<<<<<<<
 *             str_list += ['accessDescs : ' + str(self.accessDescs)]
 *             str_list += ['accessDescCount : ' + str(self.accessDescCount)]
 */
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7298, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_poolProps_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7298, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7298, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyUnicode_Splitlines(((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7298, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 7298, __pyx_L6_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7298, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_9genexpr46__pyx_v_line, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_kp_u__140, __pyx_9genexpr46__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7298, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 7298, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_9genexpr46__pyx_v_line); __pyx_9genexpr46__pyx_v_line = 0;
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_9genexpr46__pyx_v_line); __pyx_9genexpr46__pyx_v_line = 0;
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__108, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_poolProps, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7299
 *             str_list = []
 *             str_list += ['poolProps :\n' + '\n'.join(['    ' + line for line in str(self.poolProps).splitlines()])]
 *             str_list += ['accessDescs : ' + str(self.accessDescs)]             # <<<<<<<<<<<<<<
 *             str_list += ['accessDescCount : ' + str(self.accessDescCount)]
 *             str_list += ['bytesize : ' + str(self.bytesize)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accessDescs_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_accessDescs, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7300
 *             str_list += ['poolProps :\n' + '\n'.join(['    ' + line for line in str(self.poolProps).splitlines()])]
 *             str_list += ['accessDescs : ' + str(self.accessDescs)]
 *             str_list += ['accessDescCount : ' + str(self.accessDescCount)]             # <<<<<<<<<<<<<<
 *             str_list += ['bytesize : ' + str(self.bytesize)]
 *             str_list += ['dptr : ' + str(self.dptr)]
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accessDescCount_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_accessDescCount, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7301
 *             str_list += ['accessDescs : ' + str(self.accessDescs)]
 *             str_list += ['accessDescCount : ' + str(self.accessDescCount)]
 *             str_list += ['bytesize : ' + str(self.bytesize)]             # <<<<<<<<<<<<<<
 *             str_list += ['dptr : ' + str(self.dptr)]
 *             return '\n'.join(str_list)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytesize_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_bytesize, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7302
 *             str_list += ['accessDescCount : ' + str(self.accessDescCount)]
 *             str_list += ['bytesize : ' + str(self.bytesize)]
 *             str_list += ['dptr : ' + str(self.dptr)]             # <<<<<<<<<<<<<<
 *             return '\n'.join(str_list)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dptr_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_dptr, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_str_list, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_str_list, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "cuda/cuda.pyx":7303
 *             str_list += ['bytesize : ' + str(self.bytesize)]
 *             str_list += ['dptr : ' + str(self.dptr)]
 *             return '\n'.join(str_list)             # <<<<<<<<<<<<<<
 *         else:
 *             return ''
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__108, __pyx_v_str_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":7296
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 *         if self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             str_list = []
 *             str_list += ['poolProps :\n' + '\n'.join(['    ' + line for line in str(self.poolProps).splitlines()])]
 */
  }

  /* "cuda/cuda.pyx":7305
 *             return '\n'.join(str_list)
 *         else:
 *             return ''             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__109);
    __pyx_r = __pyx_kp_u__109;
    goto __pyx_L0;
  }

  /* "cuda/cuda.pyx":7295
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr is not NULL:
 *             str_list = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_str_list);
  __Pyx_XDECREF(__pyx_9genexpr46__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7308
 * 
 *     @property
 *     def poolProps(self):             # <<<<<<<<<<<<<<
 *         return self._poolProps
 *     @poolProps.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7308, 0, __PYX_ERR(0, 7308, __pyx_L1_error));

  /* "cuda/cuda.pyx":7309
 *     @property
 *     def poolProps(self):
 *         return self._poolProps             # <<<<<<<<<<<<<<
 *     @poolProps.setter
 *     def poolProps(self, poolProps not None : CUmemPoolProps):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_poolProps));
  __pyx_r = ((PyObject *)__pyx_v_self->_poolProps);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7308
 * 
 *     @property
 *     def poolProps(self):             # <<<<<<<<<<<<<<
 *         return self._poolProps
 *     @poolProps.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.poolProps.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7311
 *         return self._poolProps
 *     @poolProps.setter
 *     def poolProps(self, poolProps not None : CUmemPoolProps):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(poolProps):
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_poolProps); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_poolProps) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_poolProps), __pyx_ptype_4cuda_4cuda_CUmemPoolProps, 0, "poolProps", 0))) __PYX_ERR(0, 7311, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *)__pyx_v_poolProps));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *__pyx_v_poolProps) {
  PyObject *__pyx_v__attr = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7311, 0, __PYX_ERR(0, 7311, __pyx_L1_error));

  /* "cuda/cuda.pyx":7313
 *     def poolProps(self, poolProps not None : CUmemPoolProps):
 *         pass
 *         for _attr in dir(poolProps):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
  __pyx_t_1 = PyObject_Dir(((PyObject *)__pyx_v_poolProps)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7313, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7313, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 7313, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 7313, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v__attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":7314
 *         pass
 *         for _attr in dir(poolProps):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v__attr, __pyx_n_u_getPtr, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7314, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "cuda/cuda.pyx":7315
 *         for _attr in dir(poolProps):
 *             if _attr == 'getPtr':
 *                 continue             # <<<<<<<<<<<<<<
 *             if not _attr.startswith('_'):
 *                 setattr(self._poolProps, _attr, getattr(poolProps, _attr))
 */
      goto __pyx_L3_continue;

      /* "cuda/cuda.pyx":7314
 *         pass
 *         for _attr in dir(poolProps):
 *             if _attr == 'getPtr':             # <<<<<<<<<<<<<<
 *                 continue
 *             if not _attr.startswith('_'):
 */
    }

    /* "cuda/cuda.pyx":7316
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._poolProps, _attr, getattr(poolProps, _attr))
 *     @property
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_n_u__141) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_u__141);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7316, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = ((!__pyx_t_5) != 0);
    if (__pyx_t_8) {

      /* "cuda/cuda.pyx":7317
 *                 continue
 *             if not _attr.startswith('_'):
 *                 setattr(self._poolProps, _attr, getattr(poolProps, _attr))             # <<<<<<<<<<<<<<
 *     @property
 *     def accessDescs(self):
 */
      __pyx_t_1 = ((PyObject *)__pyx_v_self->_poolProps);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_poolProps), __pyx_v__attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7317, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_1, __pyx_v__attr, __pyx_t_6); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 7317, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cuda/cuda.pyx":7316
 *             if _attr == 'getPtr':
 *                 continue
 *             if not _attr.startswith('_'):             # <<<<<<<<<<<<<<
 *                 setattr(self._poolProps, _attr, getattr(poolProps, _attr))
 *     @property
 */
    }

    /* "cuda/cuda.pyx":7313
 *     def poolProps(self, poolProps not None : CUmemPoolProps):
 *         pass
 *         for _attr in dir(poolProps):             # <<<<<<<<<<<<<<
 *             if _attr == 'getPtr':
 *                 continue
 */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7311
 *         return self._poolProps
 *     @poolProps.setter
 *     def poolProps(self, poolProps not None : CUmemPoolProps):             # <<<<<<<<<<<<<<
 *         pass
 *         for _attr in dir(poolProps):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.poolProps.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__attr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7319
 *                 setattr(self._poolProps, _attr, getattr(poolProps, _attr))
 *     @property
 *     def accessDescs(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].accessDescs + x*sizeof(ccuda.CUmemAccessDesc) for x in range(self._accessDescs_length)]
 *         return [CUmemAccessDesc(_ptr=arr) for arr in arrs]
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_v_arrs = NULL;
  size_t __pyx_9genexpr47__pyx_v_x;
  PyObject *__pyx_9genexpr48__pyx_v_arr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7319, 0, __PYX_ERR(0, 7319, __pyx_L1_error));

  /* "cuda/cuda.pyx":7320
 *     @property
 *     def accessDescs(self):
 *         arrs = [<void_ptr>self._ptr[0].accessDescs + x*sizeof(ccuda.CUmemAccessDesc) for x in range(self._accessDescs_length)]             # <<<<<<<<<<<<<<
 *         return [CUmemAccessDesc(_ptr=arr) for arr in arrs]
 *     @accessDescs.setter
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_self->_accessDescs_length;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_9genexpr47__pyx_v_x = __pyx_t_4;
      __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG((((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_self->_ptr[0]).accessDescs) + (__pyx_9genexpr47__pyx_v_x * (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 7320, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __pyx_v_arrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7321
 *     def accessDescs(self):
 *         arrs = [<void_ptr>self._ptr[0].accessDescs + x*sizeof(ccuda.CUmemAccessDesc) for x in range(self._accessDescs_length)]
 *         return [CUmemAccessDesc(_ptr=arr) for arr in arrs]             # <<<<<<<<<<<<<<
 *     @accessDescs.setter
 *     def accessDescs(self, val):
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7321, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __pyx_v_arrs; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 7321, __pyx_L7_error)
      #else
      __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7321, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr48__pyx_v_arr, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7321, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_ptr, __pyx_9genexpr48__pyx_v_arr) < 0) __PYX_ERR(0, 7321, __pyx_L7_error)
      __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc), __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7321, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 7321, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_9genexpr48__pyx_v_arr); __pyx_9genexpr48__pyx_v_arr = 0;
    goto __pyx_L10_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr48__pyx_v_arr); __pyx_9genexpr48__pyx_v_arr = 0;
    goto __pyx_L1_error;
    __pyx_L10_exit_scope:;
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7319
 *                 setattr(self._poolProps, _attr, getattr(poolProps, _attr))
 *     @property
 *     def accessDescs(self):             # <<<<<<<<<<<<<<
 *         arrs = [<void_ptr>self._ptr[0].accessDescs + x*sizeof(ccuda.CUmemAccessDesc) for x in range(self._accessDescs_length)]
 *         return [CUmemAccessDesc(_ptr=arr) for arr in arrs]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.accessDescs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_arrs);
  __Pyx_XDECREF(__pyx_9genexpr48__pyx_v_arr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7323
 *         return [CUmemAccessDesc(_ptr=arr) for arr in arrs]
 *     @accessDescs.setter
 *     def accessDescs(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._accessDescs)
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, PyObject *__pyx_v_val) {
  Py_ssize_t __pyx_v_idx;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAccessDesc *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7323, 0, __PYX_ERR(0, 7323, __pyx_L1_error));

  /* "cuda/cuda.pyx":7324
 *     @accessDescs.setter
 *     def accessDescs(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._accessDescs)
 *             self._accessDescs_length = 0
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7324, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":7325
 *     def accessDescs(self, val):
 *         if len(val) == 0:
 *             free(self._accessDescs)             # <<<<<<<<<<<<<<
 *             self._accessDescs_length = 0
 *             self._ptr[0].accessDescs = NULL
 */
    free(__pyx_v_self->_accessDescs);

    /* "cuda/cuda.pyx":7326
 *         if len(val) == 0:
 *             free(self._accessDescs)
 *             self._accessDescs_length = 0             # <<<<<<<<<<<<<<
 *             self._ptr[0].accessDescs = NULL
 *         else:
 */
    __pyx_v_self->_accessDescs_length = 0;

    /* "cuda/cuda.pyx":7327
 *             free(self._accessDescs)
 *             self._accessDescs_length = 0
 *             self._ptr[0].accessDescs = NULL             # <<<<<<<<<<<<<<
 *         else:
 *             if self._accessDescs_length != <size_t>len(val):
 */
    (__pyx_v_self->_ptr[0]).accessDescs = NULL;

    /* "cuda/cuda.pyx":7324
 *     @accessDescs.setter
 *     def accessDescs(self, val):
 *         if len(val) == 0:             # <<<<<<<<<<<<<<
 *             free(self._accessDescs)
 *             self._accessDescs_length = 0
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7329
 *             self._ptr[0].accessDescs = NULL
 *         else:
 *             if self._accessDescs_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._accessDescs)
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))
 */
  /*else*/ {
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7329, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_v_self->_accessDescs_length != ((size_t)__pyx_t_1)) != 0);
    if (__pyx_t_2) {

      /* "cuda/cuda.pyx":7330
 *         else:
 *             if self._accessDescs_length != <size_t>len(val):
 *                 free(self._accessDescs)             # <<<<<<<<<<<<<<
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))
 *                 if self._accessDescs is NULL:
 */
      free(__pyx_v_self->_accessDescs);

      /* "cuda/cuda.pyx":7331
 *             if self._accessDescs_length != <size_t>len(val):
 *                 free(self._accessDescs)
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))             # <<<<<<<<<<<<<<
 *                 if self._accessDescs is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7331, __pyx_L1_error)
      __pyx_v_self->_accessDescs = ((__pyx_t_4cuda_5ccuda_CUmemAccessDesc *)calloc(__pyx_t_1, (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))));

      /* "cuda/cuda.pyx":7332
 *                 free(self._accessDescs)
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))
 *                 if self._accessDescs is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *                 self._accessDescs_length = <size_t>len(val)
 */
      __pyx_t_2 = ((__pyx_v_self->_accessDescs == NULL) != 0);
      if (unlikely(__pyx_t_2)) {

        /* "cuda/cuda.pyx":7333
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))
 *                 if self._accessDescs is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))             # <<<<<<<<<<<<<<
 *                 self._accessDescs_length = <size_t>len(val)
 *                 self._ptr[0].accessDescs = self._accessDescs
 */
        __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7333, __pyx_L1_error)
        __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_5, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __PYX_ERR(0, 7333, __pyx_L1_error)

        /* "cuda/cuda.pyx":7332
 *                 free(self._accessDescs)
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))
 *                 if self._accessDescs is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *                 self._accessDescs_length = <size_t>len(val)
 */
      }

      /* "cuda/cuda.pyx":7334
 *                 if self._accessDescs is NULL:
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *                 self._accessDescs_length = <size_t>len(val)             # <<<<<<<<<<<<<<
 *                 self._ptr[0].accessDescs = self._accessDescs
 *             for idx in range(len(val)):
 */
      __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7334, __pyx_L1_error)
      __pyx_v_self->_accessDescs_length = ((size_t)__pyx_t_1);

      /* "cuda/cuda.pyx":7335
 *                     raise MemoryError('Failed to allocate length x size memory: ' + str(len(val)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *                 self._accessDescs_length = <size_t>len(val)
 *                 self._ptr[0].accessDescs = self._accessDescs             # <<<<<<<<<<<<<<
 *             for idx in range(len(val)):
 *                 memcpy(&self._accessDescs[idx], (<CUmemAccessDesc>val[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 */
      __pyx_t_6 = __pyx_v_self->_accessDescs;
      (__pyx_v_self->_ptr[0]).accessDescs = __pyx_t_6;

      /* "cuda/cuda.pyx":7329
 *             self._ptr[0].accessDescs = NULL
 *         else:
 *             if self._accessDescs_length != <size_t>len(val):             # <<<<<<<<<<<<<<
 *                 free(self._accessDescs)
 *                 self._accessDescs = <ccuda.CUmemAccessDesc*> calloc(len(val), sizeof(ccuda.CUmemAccessDesc))
 */
    }

    /* "cuda/cuda.pyx":7336
 *                 self._accessDescs_length = <size_t>len(val)
 *                 self._ptr[0].accessDescs = self._accessDescs
 *             for idx in range(len(val)):             # <<<<<<<<<<<<<<
 *                 memcpy(&self._accessDescs[idx], (<CUmemAccessDesc>val[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 *     @property
 */
    __pyx_t_1 = PyObject_Length(__pyx_v_val); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7336, __pyx_L1_error)
    __pyx_t_7 = __pyx_t_1;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":7337
 *                 self._ptr[0].accessDescs = self._accessDescs
 *             for idx in range(len(val)):
 *                 memcpy(&self._accessDescs[idx], (<CUmemAccessDesc>val[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))             # <<<<<<<<<<<<<<
 *     @property
 *     def accessDescCount(self):
 */
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_val, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7337, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      (void)(memcpy((&(__pyx_v_self->_accessDescs[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc *)__pyx_t_5)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))));
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7323
 *         return [CUmemAccessDesc(_ptr=arr) for arr in arrs]
 *     @accessDescs.setter
 *     def accessDescs(self, val):             # <<<<<<<<<<<<<<
 *         if len(val) == 0:
 *             free(self._accessDescs)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.accessDescs.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7339
 *                 memcpy(&self._accessDescs[idx], (<CUmemAccessDesc>val[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 *     @property
 *     def accessDescCount(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].accessDescCount
 *     @accessDescCount.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7339, 0, __PYX_ERR(0, 7339, __pyx_L1_error));

  /* "cuda/cuda.pyx":7340
 *     @property
 *     def accessDescCount(self):
 *         return self._ptr[0].accessDescCount             # <<<<<<<<<<<<<<
 *     @accessDescCount.setter
 *     def accessDescCount(self, size_t accessDescCount):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).accessDescCount); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7339
 *                 memcpy(&self._accessDescs[idx], (<CUmemAccessDesc>val[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 *     @property
 *     def accessDescCount(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].accessDescCount
 *     @accessDescCount.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.accessDescCount.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7342
 *         return self._ptr[0].accessDescCount
 *     @accessDescCount.setter
 *     def accessDescCount(self, size_t accessDescCount):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].accessDescCount = accessDescCount
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_accessDescCount); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_accessDescCount) {
  size_t __pyx_v_accessDescCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_accessDescCount); {
    __pyx_v_accessDescCount = __Pyx_PyInt_As_size_t(__pyx_arg_accessDescCount); if (unlikely((__pyx_v_accessDescCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 7342, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.accessDescCount.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), ((size_t)__pyx_v_accessDescCount));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_accessDescCount) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7342, 0, __PYX_ERR(0, 7342, __pyx_L1_error));

  /* "cuda/cuda.pyx":7344
 *     def accessDescCount(self, size_t accessDescCount):
 *         pass
 *         self._ptr[0].accessDescCount = accessDescCount             # <<<<<<<<<<<<<<
 *     @property
 *     def bytesize(self):
 */
  (__pyx_v_self->_ptr[0]).accessDescCount = __pyx_v_accessDescCount;

  /* "cuda/cuda.pyx":7342
 *         return self._ptr[0].accessDescCount
 *     @accessDescCount.setter
 *     def accessDescCount(self, size_t accessDescCount):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].accessDescCount = accessDescCount
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.accessDescCount.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7346
 *         self._ptr[0].accessDescCount = accessDescCount
 *     @property
 *     def bytesize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].bytesize
 *     @bytesize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7346, 0, __PYX_ERR(0, 7346, __pyx_L1_error));

  /* "cuda/cuda.pyx":7347
 *     @property
 *     def bytesize(self):
 *         return self._ptr[0].bytesize             # <<<<<<<<<<<<<<
 *     @bytesize.setter
 *     def bytesize(self, size_t bytesize):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->_ptr[0]).bytesize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7346
 *         self._ptr[0].accessDescCount = accessDescCount
 *     @property
 *     def bytesize(self):             # <<<<<<<<<<<<<<
 *         return self._ptr[0].bytesize
 *     @bytesize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.bytesize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7349
 *         return self._ptr[0].bytesize
 *     @bytesize.setter
 *     def bytesize(self, size_t bytesize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].bytesize = bytesize
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_bytesize); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_bytesize) {
  size_t __pyx_v_bytesize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  assert(__pyx_arg_bytesize); {
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(__pyx_arg_bytesize); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 7349, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.bytesize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), ((size_t)__pyx_v_bytesize));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, size_t __pyx_v_bytesize) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7349, 0, __PYX_ERR(0, 7349, __pyx_L1_error));

  /* "cuda/cuda.pyx":7351
 *     def bytesize(self, size_t bytesize):
 *         pass
 *         self._ptr[0].bytesize = bytesize             # <<<<<<<<<<<<<<
 *     @property
 *     def dptr(self):
 */
  (__pyx_v_self->_ptr[0]).bytesize = __pyx_v_bytesize;

  /* "cuda/cuda.pyx":7349
 *         return self._ptr[0].bytesize
 *     @bytesize.setter
 *     def bytesize(self, size_t bytesize):             # <<<<<<<<<<<<<<
 *         pass
 *         self._ptr[0].bytesize = bytesize
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.bytesize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7353
 *         self._ptr[0].bytesize = bytesize
 *     @property
 *     def dptr(self):             # <<<<<<<<<<<<<<
 *         return self._dptr
 *     @dptr.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr___get__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr___get__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 7353, 0, __PYX_ERR(0, 7353, __pyx_L1_error));

  /* "cuda/cuda.pyx":7354
 *     @property
 *     def dptr(self):
 *         return self._dptr             # <<<<<<<<<<<<<<
 *     @dptr.setter
 *     def dptr(self, dptr : CUdeviceptr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_dptr));
  __pyx_r = ((PyObject *)__pyx_v_self->_dptr);
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7353
 *         self._ptr[0].bytesize = bytesize
 *     @property
 *     def dptr(self):             # <<<<<<<<<<<<<<
 *         return self._dptr
 *     @dptr.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.dptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7356
 *         return self._dptr
 *     @dptr.setter
 *     def dptr(self, dptr : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dptr._ptr[0] = <ccuda.CUdeviceptr> NULL if dptr == None else (<CUdeviceptr>dptr)._ptr[0]
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dptr); /*proto*/
static int __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dptr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 1, "dptr", 0))) __PYX_ERR(0, 7356, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_2__set__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dptr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_2__set__(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUdeviceptr __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 7356, 0, __PYX_ERR(0, 7356, __pyx_L1_error));

  /* "cuda/cuda.pyx":7358
 *     def dptr(self, dptr : CUdeviceptr):
 *         pass
 *         self._dptr._ptr[0] = <ccuda.CUdeviceptr> NULL if dptr == None else (<CUdeviceptr>dptr)._ptr[0]             # <<<<<<<<<<<<<<
 * 
 * cdef class cuuint32_t:
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_dptr), Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7358, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 7358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = ((__pyx_t_4cuda_5ccuda_CUdeviceptr)NULL);
  } else {
    __pyx_t_1 = (__pyx_v_dptr->_ptr[0]);
  }
  (__pyx_v_self->_dptr->_ptr[0]) = __pyx_t_1;

  /* "cuda/cuda.pyx":7356
 *         return self._dptr
 *     @dptr.setter
 *     def dptr(self, dptr : CUdeviceptr):             # <<<<<<<<<<<<<<
 *         pass
 *         self._dptr._ptr[0] = <ccuda.CUdeviceptr> NULL if dptr == None else (<CUdeviceptr>dptr)._ptr[0]
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.dptr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_10__reduce_cython__[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__447)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__448, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_12__setstate_cython__[] = "CUDA_MEM_ALLOC_NODE_PARAMS_st.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__449)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__450, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7370
 * 
 *     """
 *     def __cinit__(self, uint32_t init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_10cuuint32_t_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_10cuuint32_t_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  uint32_t __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7370, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_uint32_t(values[0]); if (unlikely((__pyx_v_init_value == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 7370, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((uint32_t)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7370, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7370, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint32_t___cinit__(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_10cuuint32_t___cinit__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self, uint32_t __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7370, 0, __PYX_ERR(0, 7370, __pyx_L1_error));

  /* "cuda/cuda.pyx":7371
 *     """
 *     def __cinit__(self, uint32_t init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7372
 *     def __cinit__(self, uint32_t init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7373
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint32_t)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_cuuint32_t *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_cuuint32_t))));

    /* "cuda/cuda.pyx":7374
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint32_t)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7375
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint32_t)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_cuuint32_t))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7375, __pyx_L1_error)

      /* "cuda/cuda.pyx":7374
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint32_t)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7371
 *     """
 *     def __cinit__(self, uint32_t init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint32_t *>calloc(1, sizeof(ccuda.cuuint32_t))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7377
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint32_t)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.cuuint32_t *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7378
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.cuuint32_t *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_cuuint32_t *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7379
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.cuuint32_t *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7380
 *             self._ptr = <ccuda.cuuint32_t *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7379
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.cuuint32_t *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7370
 * 
 *     """
 *     def __cinit__(self, uint32_t init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7381
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_10cuuint32_t_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_10cuuint32_t_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_10cuuint32_t_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_10cuuint32_t_2__dealloc__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7381, 0, __PYX_ERR(0, 7381, __pyx_L1_error));

  /* "cuda/cuda.pyx":7382
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7383
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7382
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7381
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.cuuint32_t.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7384
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint32_t_4__repr__(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_4__repr__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7384, 0, __PYX_ERR(0, 7384, __pyx_L1_error));

  /* "cuda/cuda.pyx":7385
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <uint32_t>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_cuuint32_t, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7384
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7386
 *     def __repr__(self):
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint32_t_6__int__(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_6__int__(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7386, 0, __PYX_ERR(0, 7386, __pyx_L1_error));

  /* "cuda/cuda.pyx":7387
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <uint32_t>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(((uint32_t)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7386
 *     def __repr__(self):
 *         return '<cuuint32_t ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7388
 *     def __int__(self):
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuuint32_t_8getPtr[] = "cuuint32_t.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10cuuint32_t_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint32_t_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint32_t_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint32_t_8getPtr(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_8getPtr(struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__451)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7388, 0, __PYX_ERR(0, 7388, __pyx_L1_error));

  /* "cuda/cuda.pyx":7389
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class cuuint64_t:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7388
 *     def __int__(self):
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuuint32_t_10__reduce_cython__[] = "cuuint32_t.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10cuuint32_t_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint32_t_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint32_t_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint32_t_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__452)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__453, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuuint32_t_12__setstate_cython__[] = "cuuint32_t.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10cuuint32_t_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint32_t_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_10cuuint32_t_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint32_t_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint32_t_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint32_t_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__454)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__455, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint32_t.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7401
 * 
 *     """
 *     def __cinit__(self, uint64_t init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_10cuuint64_t_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_10cuuint64_t_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  uint64_t __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7401, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_uint64_t(values[0]); if (unlikely((__pyx_v_init_value == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 7401, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((uint64_t)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7401, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7401, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint64_t___cinit__(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_10cuuint64_t___cinit__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self, uint64_t __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7401, 0, __PYX_ERR(0, 7401, __pyx_L1_error));

  /* "cuda/cuda.pyx":7402
 *     """
 *     def __cinit__(self, uint64_t init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7403
 *     def __cinit__(self, uint64_t init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7404
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint64_t)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_cuuint64_t *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_cuuint64_t))));

    /* "cuda/cuda.pyx":7405
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint64_t)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7406
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint64_t)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_cuuint64_t))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7406, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7406, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7406, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7406, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7406, __pyx_L1_error)

      /* "cuda/cuda.pyx":7405
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint64_t)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7402
 *     """
 *     def __cinit__(self, uint64_t init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.cuuint64_t *>calloc(1, sizeof(ccuda.cuuint64_t))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7408
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.cuuint64_t)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.cuuint64_t *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7409
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.cuuint64_t *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_cuuint64_t *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7410
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.cuuint64_t *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7411
 *             self._ptr = <ccuda.cuuint64_t *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7410
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.cuuint64_t *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7401
 * 
 *     """
 *     def __cinit__(self, uint64_t init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7412
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_10cuuint64_t_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_10cuuint64_t_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_10cuuint64_t_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_10cuuint64_t_2__dealloc__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7412, 0, __PYX_ERR(0, 7412, __pyx_L1_error));

  /* "cuda/cuda.pyx":7413
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7414
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7413
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7412
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.cuuint64_t.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7415
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint64_t_4__repr__(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_4__repr__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7415, 0, __PYX_ERR(0, 7415, __pyx_L1_error));

  /* "cuda/cuda.pyx":7416
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <uint64_t>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_cuuint64_t, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7415
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7417
 *     def __repr__(self):
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint64_t_6__int__(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_6__int__(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7417, 0, __PYX_ERR(0, 7417, __pyx_L1_error));

  /* "cuda/cuda.pyx":7418
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <uint64_t>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint64_t(((uint64_t)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7417
 *     def __repr__(self):
 *         return '<cuuint64_t ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7419
 *     def __int__(self):
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuuint64_t_8getPtr[] = "cuuint64_t.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10cuuint64_t_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint64_t_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint64_t_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint64_t_8getPtr(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_8getPtr(struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__456)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7419, 0, __PYX_ERR(0, 7419, __pyx_L1_error));

  /* "cuda/cuda.pyx":7420
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUdeviceptr_v2:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7419
 *     def __int__(self):
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuuint64_t_10__reduce_cython__[] = "cuuint64_t.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10cuuint64_t_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint64_t_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint64_t_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint64_t_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__457)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__458, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuuint64_t_12__setstate_cython__[] = "cuuint64_t.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_10cuuint64_t_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint64_t_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_10cuuint64_t_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_10cuuint64_t_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuuint64_t_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuuint64_t_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__459)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__460, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.cuuint64_t.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7432
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7432, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7432, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7432, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7432, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2___cinit__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2___cinit__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7432, 0, __PYX_ERR(0, 7432, __pyx_L1_error));

  /* "cuda/cuda.pyx":7433
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7434
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7435
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr_v2)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdeviceptr_v2 *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUdeviceptr_v2))));

    /* "cuda/cuda.pyx":7436
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr_v2)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7437
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr_v2)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdeviceptr_v2))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7437, __pyx_L1_error)

      /* "cuda/cuda.pyx":7436
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr_v2)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7433
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>calloc(1, sizeof(ccuda.CUdeviceptr_v2))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7439
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr_v2)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7440
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdeviceptr_v2 *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7441
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7442
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7441
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdeviceptr_v2 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7432
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7443
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7443, 0, __PYX_ERR(0, 7443, __pyx_L1_error));

  /* "cuda/cuda.pyx":7444
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7445
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7444
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7443
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUdeviceptr_v2.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7446
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7446, 0, __PYX_ERR(0, 7446, __pyx_L1_error));

  /* "cuda/cuda.pyx":7447
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUdeviceptr_v2, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7446
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7448
 *     def __repr__(self):
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_6__int__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_6__int__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7448, 0, __PYX_ERR(0, 7448, __pyx_L1_error));

  /* "cuda/cuda.pyx":7449
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7448
 *     def __repr__(self):
 *         return '<CUdeviceptr_v2 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7450
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_8getPtr[] = "CUdeviceptr_v2.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_14CUdeviceptr_v2_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__461)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7450, 0, __PYX_ERR(0, 7450, __pyx_L1_error));

  /* "cuda/cuda.pyx":7451
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUdeviceptr:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7450
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_10__reduce_cython__[] = "CUdeviceptr_v2.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_14CUdeviceptr_v2_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__462)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__463, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_12__setstate_cython__[] = "CUdeviceptr_v2.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_14CUdeviceptr_v2_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUdeviceptr_v2_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__464)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__465, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr_v2.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7463
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUdeviceptr_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUdeviceptr_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7463, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7463, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7463, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7463, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdeviceptr___cinit__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUdeviceptr___cinit__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7463, 0, __PYX_ERR(0, 7463, __pyx_L1_error));

  /* "cuda/cuda.pyx":7464
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7465
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7466
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdeviceptr *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUdeviceptr))));

    /* "cuda/cuda.pyx":7467
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7468
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdeviceptr))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7468, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7468, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7468, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7468, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7468, __pyx_L1_error)

      /* "cuda/cuda.pyx":7467
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7464
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdeviceptr *>calloc(1, sizeof(ccuda.CUdeviceptr))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7470
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdeviceptr)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdeviceptr *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7471
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdeviceptr *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdeviceptr *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7472
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdeviceptr *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7473
 *             self._ptr = <ccuda.CUdeviceptr *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7472
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdeviceptr *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7463
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7474
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_11CUdeviceptr_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_11CUdeviceptr_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_11CUdeviceptr_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_11CUdeviceptr_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7474, 0, __PYX_ERR(0, 7474, __pyx_L1_error));

  /* "cuda/cuda.pyx":7475
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7476
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7475
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7474
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUdeviceptr.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7477
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdeviceptr_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7477, 0, __PYX_ERR(0, 7477, __pyx_L1_error));

  /* "cuda/cuda.pyx":7478
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUdeviceptr, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7477
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7479
 *     def __repr__(self):
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdeviceptr_6__int__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_6__int__(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7479, 0, __PYX_ERR(0, 7479, __pyx_L1_error));

  /* "cuda/cuda.pyx":7480
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7479
 *     def __repr__(self):
 *         return '<CUdeviceptr ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7481
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUdeviceptr_8getPtr[] = "CUdeviceptr.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUdeviceptr_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdeviceptr_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdeviceptr_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdeviceptr_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__466)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7481, 0, __PYX_ERR(0, 7481, __pyx_L1_error));

  /* "cuda/cuda.pyx":7482
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUdevice_v1:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7481
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUdeviceptr_10__reduce_cython__[] = "CUdeviceptr.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUdeviceptr_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdeviceptr_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdeviceptr_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdeviceptr_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__467)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__468, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUdeviceptr_12__setstate_cython__[] = "CUdeviceptr.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUdeviceptr_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdeviceptr_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUdeviceptr_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUdeviceptr_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdeviceptr_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdeviceptr_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__469)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__470, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdeviceptr.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7494
 * 
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUdevice_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUdevice_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7494, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_init_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 7494, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((int)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7494, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7494, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdevice_v1___cinit__(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUdevice_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self, int __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7494, 0, __PYX_ERR(0, 7494, __pyx_L1_error));

  /* "cuda/cuda.pyx":7495
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7496
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7497
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice_v1)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdevice_v1 *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUdevice_v1))));

    /* "cuda/cuda.pyx":7498
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice_v1)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7499
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice_v1)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdevice_v1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7499, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7499, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7499, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7499, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7499, __pyx_L1_error)

      /* "cuda/cuda.pyx":7498
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice_v1)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7495
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice_v1 *>calloc(1, sizeof(ccuda.CUdevice_v1))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7501
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice_v1)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdevice_v1 *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7502
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevice_v1 *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdevice_v1 *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7503
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevice_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7504
 *             self._ptr = <ccuda.CUdevice_v1 *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7503
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevice_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7494
 * 
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7505
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_11CUdevice_v1_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_11CUdevice_v1_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_11CUdevice_v1_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_11CUdevice_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7505, 0, __PYX_ERR(0, 7505, __pyx_L1_error));

  /* "cuda/cuda.pyx":7506
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7507
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7506
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7505
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUdevice_v1.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7508
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdevice_v1_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7508, 0, __PYX_ERR(0, 7508, __pyx_L1_error));

  /* "cuda/cuda.pyx":7509
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <int>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUdevice_v1, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7508
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7510
 *     def __repr__(self):
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <int>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdevice_v1_6__int__(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7510, 0, __PYX_ERR(0, 7510, __pyx_L1_error));

  /* "cuda/cuda.pyx":7511
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <int>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(((int)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7510
 *     def __repr__(self):
 *         return '<CUdevice_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <int>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7512
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUdevice_v1_8getPtr[] = "CUdevice_v1.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUdevice_v1_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdevice_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdevice_v1_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdevice_v1_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__471)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7512, 0, __PYX_ERR(0, 7512, __pyx_L1_error));

  /* "cuda/cuda.pyx":7513
 *         return <int>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUdevice:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7512
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUdevice_v1_10__reduce_cython__[] = "CUdevice_v1.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUdevice_v1_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdevice_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdevice_v1_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdevice_v1_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__472)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__473, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUdevice_v1_12__setstate_cython__[] = "CUdevice_v1.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUdevice_v1_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdevice_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUdevice_v1_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUdevice_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUdevice_v1_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUdevice_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__474)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__475, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice_v1.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7525
 * 
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_8CUdevice_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_8CUdevice_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7525, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_init_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 7525, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((int)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7525, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUdevice.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUdevice___cinit__(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_8CUdevice___cinit__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self, int __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7525, 0, __PYX_ERR(0, 7525, __pyx_L1_error));

  /* "cuda/cuda.pyx":7526
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7527
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7528
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdevice *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUdevice))));

    /* "cuda/cuda.pyx":7529
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7530
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdevice))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7530, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7530, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7530, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7530, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7530, __pyx_L1_error)

      /* "cuda/cuda.pyx":7529
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7526
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUdevice *>calloc(1, sizeof(ccuda.CUdevice))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7532
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUdevice)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUdevice *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7533
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevice *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUdevice *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7534
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevice *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7535
 *             self._ptr = <ccuda.CUdevice *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7534
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUdevice *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7525
 * 
 *     """
 *     def __cinit__(self, int init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdevice.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7536
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_8CUdevice_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_8CUdevice_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_8CUdevice_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_8CUdevice_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7536, 0, __PYX_ERR(0, 7536, __pyx_L1_error));

  /* "cuda/cuda.pyx":7537
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7538
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUdevice ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7537
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7536
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUdevice.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7539
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdevice ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUdevice_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_4__repr__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7539, 0, __PYX_ERR(0, 7539, __pyx_L1_error));

  /* "cuda/cuda.pyx":7540
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUdevice ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <int>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUdevice, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7539
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUdevice ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUdevice.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7541
 *     def __repr__(self):
 *         return '<CUdevice ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <int>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUdevice_6__int__(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_6__int__(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7541, 0, __PYX_ERR(0, 7541, __pyx_L1_error));

  /* "cuda/cuda.pyx":7542
 *         return '<CUdevice ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <int>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(((int)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7541
 *     def __repr__(self):
 *         return '<CUdevice ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <int>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7543
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUdevice_8getPtr[] = "CUdevice.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUdevice_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUdevice_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUdevice_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUdevice_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_8getPtr(struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__476)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7543, 0, __PYX_ERR(0, 7543, __pyx_L1_error));

  /* "cuda/cuda.pyx":7544
 *         return <int>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUtexObject_v1:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7543
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUdevice_10__reduce_cython__[] = "CUdevice.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUdevice_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUdevice_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUdevice_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUdevice_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__477)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__478, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_8CUdevice_12__setstate_cython__[] = "CUdevice.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_8CUdevice_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUdevice_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUdevice_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_8CUdevice_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_8CUdevice_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8CUdevice_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__479)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__480, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUdevice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7556
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_14CUtexObject_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_14CUtexObject_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7556, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7556, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7556, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7556, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUtexObject_v1___cinit__(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_14CUtexObject_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7556, 0, __PYX_ERR(0, 7556, __pyx_L1_error));

  /* "cuda/cuda.pyx":7557
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7558
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7559
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject_v1)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUtexObject_v1 *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUtexObject_v1))));

    /* "cuda/cuda.pyx":7560
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject_v1)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7561
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject_v1)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUtexObject_v1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7561, __pyx_L1_error)

      /* "cuda/cuda.pyx":7560
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject_v1)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7557
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject_v1 *>calloc(1, sizeof(ccuda.CUtexObject_v1))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7563
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject_v1)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUtexObject_v1 *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7564
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexObject_v1 *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUtexObject_v1 *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7565
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexObject_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7566
 *             self._ptr = <ccuda.CUtexObject_v1 *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7565
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexObject_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7556
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7567
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_14CUtexObject_v1_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_14CUtexObject_v1_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_14CUtexObject_v1_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_14CUtexObject_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7567, 0, __PYX_ERR(0, 7567, __pyx_L1_error));

  /* "cuda/cuda.pyx":7568
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7569
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7568
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7567
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUtexObject_v1.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7570
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUtexObject_v1_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7570, 0, __PYX_ERR(0, 7570, __pyx_L1_error));

  /* "cuda/cuda.pyx":7571
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUtexObject_v1, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7570
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7572
 *     def __repr__(self):
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUtexObject_v1_6__int__(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7572, 0, __PYX_ERR(0, 7572, __pyx_L1_error));

  /* "cuda/cuda.pyx":7573
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7572
 *     def __repr__(self):
 *         return '<CUtexObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7574
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_14CUtexObject_v1_8getPtr[] = "CUtexObject_v1.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_14CUtexObject_v1_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUtexObject_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUtexObject_v1_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUtexObject_v1_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__481)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7574, 0, __PYX_ERR(0, 7574, __pyx_L1_error));

  /* "cuda/cuda.pyx":7575
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUtexObject:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7574
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_14CUtexObject_v1_10__reduce_cython__[] = "CUtexObject_v1.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_14CUtexObject_v1_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUtexObject_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUtexObject_v1_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUtexObject_v1_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__482)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__483, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_14CUtexObject_v1_12__setstate_cython__[] = "CUtexObject_v1.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_14CUtexObject_v1_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUtexObject_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_14CUtexObject_v1_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_14CUtexObject_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_14CUtexObject_v1_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14CUtexObject_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__484)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__485, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject_v1.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7587
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_11CUtexObject_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_11CUtexObject_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7587, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7587, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7587, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7587, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUtexObject___cinit__(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_11CUtexObject___cinit__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7587, 0, __PYX_ERR(0, 7587, __pyx_L1_error));

  /* "cuda/cuda.pyx":7588
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7589
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7590
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUtexObject *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUtexObject))));

    /* "cuda/cuda.pyx":7591
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7592
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUtexObject))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7592, __pyx_L1_error)

      /* "cuda/cuda.pyx":7591
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7588
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUtexObject *>calloc(1, sizeof(ccuda.CUtexObject))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7594
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUtexObject)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUtexObject *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7595
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexObject *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUtexObject *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7596
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexObject *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7597
 *             self._ptr = <ccuda.CUtexObject *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7596
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUtexObject *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7587
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7598
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_11CUtexObject_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_11CUtexObject_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_11CUtexObject_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_11CUtexObject_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7598, 0, __PYX_ERR(0, 7598, __pyx_L1_error));

  /* "cuda/cuda.pyx":7599
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7600
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUtexObject ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7599
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7598
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUtexObject.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7601
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUtexObject ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUtexObject_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_4__repr__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7601, 0, __PYX_ERR(0, 7601, __pyx_L1_error));

  /* "cuda/cuda.pyx":7602
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUtexObject ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUtexObject, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7601
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUtexObject ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7603
 *     def __repr__(self):
 *         return '<CUtexObject ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUtexObject_6__int__(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_6__int__(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7603, 0, __PYX_ERR(0, 7603, __pyx_L1_error));

  /* "cuda/cuda.pyx":7604
 *         return '<CUtexObject ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7603
 *     def __repr__(self):
 *         return '<CUtexObject ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7605
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUtexObject_8getPtr[] = "CUtexObject.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUtexObject_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUtexObject_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUtexObject_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUtexObject_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_8getPtr(struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__486)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7605, 0, __PYX_ERR(0, 7605, __pyx_L1_error));

  /* "cuda/cuda.pyx":7606
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUsurfObject_v1:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7605
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUtexObject_10__reduce_cython__[] = "CUtexObject.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUtexObject_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUtexObject_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUtexObject_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUtexObject_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__487)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__488, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_11CUtexObject_12__setstate_cython__[] = "CUtexObject.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11CUtexObject_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUtexObject_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUtexObject_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_11CUtexObject_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_11CUtexObject_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_11CUtexObject_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__489)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__490, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUtexObject.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7618
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7618, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7618, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7618, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7618, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_15CUsurfObject_v1___cinit__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_15CUsurfObject_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7618, 0, __PYX_ERR(0, 7618, __pyx_L1_error));

  /* "cuda/cuda.pyx":7619
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7620
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7621
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject_v1)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUsurfObject_v1 *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUsurfObject_v1))));

    /* "cuda/cuda.pyx":7622
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject_v1)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7623
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject_v1)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUsurfObject_v1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7623, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7623, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7623, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7623, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7623, __pyx_L1_error)

      /* "cuda/cuda.pyx":7622
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject_v1)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7619
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject_v1 *>calloc(1, sizeof(ccuda.CUsurfObject_v1))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7625
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject_v1)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUsurfObject_v1 *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7626
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfObject_v1 *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUsurfObject_v1 *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7627
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfObject_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7628
 *             self._ptr = <ccuda.CUsurfObject_v1 *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7627
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfObject_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7618
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7629
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7629, 0, __PYX_ERR(0, 7629, __pyx_L1_error));

  /* "cuda/cuda.pyx":7630
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7631
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7630
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7629
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUsurfObject_v1.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7632
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7632, 0, __PYX_ERR(0, 7632, __pyx_L1_error));

  /* "cuda/cuda.pyx":7633
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUsurfObject_v1, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7632
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7634
 *     def __repr__(self):
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_6__int__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7634, 0, __PYX_ERR(0, 7634, __pyx_L1_error));

  /* "cuda/cuda.pyx":7635
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7634
 *     def __repr__(self):
 *         return '<CUsurfObject_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7636
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_8getPtr[] = "CUsurfObject_v1.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_15CUsurfObject_v1_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__491)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7636, 0, __PYX_ERR(0, 7636, __pyx_L1_error));

  /* "cuda/cuda.pyx":7637
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUsurfObject:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7636
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_10__reduce_cython__[] = "CUsurfObject_v1.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_15CUsurfObject_v1_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__492)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__493, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_12__setstate_cython__[] = "CUsurfObject_v1.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_15CUsurfObject_v1_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_15CUsurfObject_v1_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_15CUsurfObject_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__494)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__495, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject_v1.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7649
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_12CUsurfObject_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_12CUsurfObject_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7649, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7649, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7649, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7649, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUsurfObject___cinit__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_12CUsurfObject___cinit__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7649, 0, __PYX_ERR(0, 7649, __pyx_L1_error));

  /* "cuda/cuda.pyx":7650
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7651
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7652
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUsurfObject *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUsurfObject))));

    /* "cuda/cuda.pyx":7653
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7654
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUsurfObject))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7654, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7654, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7654, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7654, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7654, __pyx_L1_error)

      /* "cuda/cuda.pyx":7653
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7650
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUsurfObject *>calloc(1, sizeof(ccuda.CUsurfObject))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7656
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUsurfObject)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUsurfObject *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7657
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfObject *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUsurfObject *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7658
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfObject *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7659
 *             self._ptr = <ccuda.CUsurfObject *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7658
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUsurfObject *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7649
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7660
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_12CUsurfObject_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_12CUsurfObject_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_12CUsurfObject_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_12CUsurfObject_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7660, 0, __PYX_ERR(0, 7660, __pyx_L1_error));

  /* "cuda/cuda.pyx":7661
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7662
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7661
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7660
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUsurfObject.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7663
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUsurfObject_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_4__repr__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7663, 0, __PYX_ERR(0, 7663, __pyx_L1_error));

  /* "cuda/cuda.pyx":7664
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUsurfObject, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7663
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7665
 *     def __repr__(self):
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUsurfObject_6__int__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_6__int__(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7665, 0, __PYX_ERR(0, 7665, __pyx_L1_error));

  /* "cuda/cuda.pyx":7666
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7665
 *     def __repr__(self):
 *         return '<CUsurfObject ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7667
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUsurfObject_8getPtr[] = "CUsurfObject.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUsurfObject_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUsurfObject_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUsurfObject_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUsurfObject_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_8getPtr(struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__496)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7667, 0, __PYX_ERR(0, 7667, __pyx_L1_error));

  /* "cuda/cuda.pyx":7668
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemGenericAllocationHandle_v1:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7667
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUsurfObject_10__reduce_cython__[] = "CUsurfObject.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUsurfObject_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUsurfObject_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUsurfObject_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUsurfObject_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__497)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__498, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_12CUsurfObject_12__setstate_cython__[] = "CUsurfObject.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_12CUsurfObject_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUsurfObject_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUsurfObject_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_12CUsurfObject_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_12CUsurfObject_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12CUsurfObject_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__499)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__500, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUsurfObject.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7680
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7680, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7680, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7680, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7680, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7680, 0, __PYX_ERR(0, 7680, __pyx_L1_error));

  /* "cuda/cuda.pyx":7681
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7682
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7683
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle_v1)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1 *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1))));

    /* "cuda/cuda.pyx":7684
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle_v1)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7685
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle_v1)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7685, __pyx_L1_error)

      /* "cuda/cuda.pyx":7684
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle_v1)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7681
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle_v1))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7687
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle_v1)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7688
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1 *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7689
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7690
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7689
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle_v1 *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7680
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7691
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7691, 0, __PYX_ERR(0, 7691, __pyx_L1_error));

  /* "cuda/cuda.pyx":7692
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7693
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7692
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7691
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemGenericAllocationHandle_v1.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7694
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_4__repr__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7694, 0, __PYX_ERR(0, 7694, __pyx_L1_error));

  /* "cuda/cuda.pyx":7695
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUmemGenericAllocationHandle_v1, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7694
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7696
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_6__int__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_6__int__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7696, 0, __PYX_ERR(0, 7696, __pyx_L1_error));

  /* "cuda/cuda.pyx":7697
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7696
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle_v1 ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7698
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_8getPtr[] = "CUmemGenericAllocationHandle_v1.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_8getPtr(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__501)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7698, 0, __PYX_ERR(0, 7698, __pyx_L1_error));

  /* "cuda/cuda.pyx":7699
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * cdef class CUmemGenericAllocationHandle:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7698
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_10__reduce_cython__[] = "CUmemGenericAllocationHandle_v1.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__502)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__503, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_12__setstate_cython__[] = "CUmemGenericAllocationHandle_v1.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1 *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__504)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__505, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle_v1.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7711
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

/* Python wrapper */
static int __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned PY_LONG_LONG __pyx_v_init_value;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_init_value,&__pyx_n_s_ptr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_init_value);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 7711, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_init_value = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[0]); if (unlikely((__pyx_v_init_value == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7711, __pyx_L3_error)
    } else {
      __pyx_v_init_value = ((unsigned PY_LONG_LONG)0);
    }
    if (values[1]) {
      __pyx_v__ptr = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v__ptr == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 7711, __pyx_L3_error)
    } else {
      __pyx_v__ptr = ((__pyx_t_4cuda_4cuda_void_ptr)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7711, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle___cinit__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self), __pyx_v_init_value, __pyx_v__ptr);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle___cinit__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self, unsigned PY_LONG_LONG __pyx_v_init_value, __pyx_t_4cuda_4cuda_void_ptr __pyx_v__ptr) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 7711, 0, __PYX_ERR(0, 7711, __pyx_L1_error));

  /* "cuda/cuda.pyx":7712
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))
 */
  __pyx_t_1 = ((__pyx_v__ptr == 0) != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7713
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:
 *             self._ptr_owner = True             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))
 *             if self._ptr is NULL:
 */
    __pyx_v_self->_ptr_owner = 1;

    /* "cuda/cuda.pyx":7714
 *         if _ptr == 0:
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))             # <<<<<<<<<<<<<<
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle)))
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *)calloc(1, (sizeof(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle))));

    /* "cuda/cuda.pyx":7715
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle)))
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_self->_ptr == NULL) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cuda/cuda.pyx":7716
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))
 *             if self._ptr is NULL:
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle)))             # <<<<<<<<<<<<<<
 *         else:
 *             self._ptr_owner = False
 */
      __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 7716, __pyx_L1_error)

      /* "cuda/cuda.pyx":7715
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))
 *             if self._ptr is NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":7712
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):
 *         if _ptr == 0:             # <<<<<<<<<<<<<<
 *             self._ptr_owner = True
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>calloc(1, sizeof(ccuda.CUmemGenericAllocationHandle))
 */
    goto __pyx_L3;
  }

  /* "cuda/cuda.pyx":7718
 *                 raise MemoryError('Failed to allocate length x size memory: 1x' + str(sizeof(ccuda.CUmemGenericAllocationHandle)))
 *         else:
 *             self._ptr_owner = False             # <<<<<<<<<<<<<<
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>_ptr
 *         if init_value:
 */
  /*else*/ {
    __pyx_v_self->_ptr_owner = 0;

    /* "cuda/cuda.pyx":7719
 *         else:
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>_ptr             # <<<<<<<<<<<<<<
 *         if init_value:
 *             self._ptr[0] = init_value
 */
    __pyx_v_self->_ptr = ((__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *)__pyx_v__ptr);
  }
  __pyx_L3:;

  /* "cuda/cuda.pyx":7720
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  __pyx_t_1 = (__pyx_v_init_value != 0);
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7721
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>_ptr
 *         if init_value:
 *             self._ptr[0] = init_value             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 */
    (__pyx_v_self->_ptr[0]) = __pyx_v_init_value;

    /* "cuda/cuda.pyx":7720
 *             self._ptr_owner = False
 *             self._ptr = <ccuda.CUmemGenericAllocationHandle *>_ptr
 *         if init_value:             # <<<<<<<<<<<<<<
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 */
  }

  /* "cuda/cuda.pyx":7711
 * 
 *     """
 *     def __cinit__(self, unsigned long long init_value = 0, void_ptr _ptr = 0):             # <<<<<<<<<<<<<<
 *         if _ptr == 0:
 *             self._ptr_owner = True
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7722
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

/* Python wrapper */
static void __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_2__dealloc__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_2__dealloc__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 7722, 0, __PYX_ERR(0, 7722, __pyx_L1_error));

  /* "cuda/cuda.pyx":7723
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  __pyx_t_2 = ((__pyx_v_self->_ptr_owner == 1) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->_ptr != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cuda/cuda.pyx":7724
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'
 */
    free(__pyx_v_self->_ptr);

    /* "cuda/cuda.pyx":7723
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):
 *         if self._ptr_owner is True and self._ptr is not NULL:             # <<<<<<<<<<<<<<
 *             free(self._ptr)
 *     def __repr__(self):
 */
  }

  /* "cuda/cuda.pyx":7722
 *         if init_value:
 *             self._ptr[0] = init_value
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cuda.cuda.CUmemGenericAllocationHandle.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cuda/cuda.pyx":7725
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_4__repr__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_4__repr__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);
  __Pyx_TraceCall("__repr__", __pyx_f[0], 7725, 0, __PYX_ERR(0, 7725, __pyx_L1_error));

  /* "cuda/cuda.pyx":7726
 *             free(self._ptr)
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'             # <<<<<<<<<<<<<<
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_int); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_CUmemGenericAllocationHandle, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7725
 *         if self._ptr_owner is True and self._ptr is not NULL:
 *             free(self._ptr)
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'
 *     def __int__(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7727
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_7__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_7__int__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_6__int__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_6__int__(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);
  __Pyx_TraceCall("__int__", __pyx_f[0], 7727, 0, __PYX_ERR(0, 7727, __pyx_L1_error));

  /* "cuda/cuda.pyx":7728
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]             # <<<<<<<<<<<<<<
 *     def getPtr(self):
 *         return <void_ptr>self._ptr
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((unsigned PY_LONG_LONG)(__pyx_v_self->_ptr[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7727
 *     def __repr__(self):
 *         return '<CUmemGenericAllocationHandle ' + str(self.__int__()) + '>'
 *     def __int__(self):             # <<<<<<<<<<<<<<
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7729
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_8getPtr[] = "CUmemGenericAllocationHandle.getPtr(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_28CUmemGenericAllocationHandle_9getPtr = {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_8getPtr};
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_9getPtr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPtr (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_8getPtr(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_8getPtr(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__506)
  __Pyx_RefNannySetupContext("getPtr", 0);
  __Pyx_TraceCall("getPtr", __pyx_f[0], 7729, 0, __PYX_ERR(0, 7729, __pyx_L1_error));

  /* "cuda/cuda.pyx":7730
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):
 *         return <void_ptr>self._ptr             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)__pyx_v_self->_ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7729
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.getPtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_10__reduce_cython__[] = "CUmemGenericAllocationHandle.__reduce_cython__(self)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_28CUmemGenericAllocationHandle_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_10__reduce_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_10__reduce_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__507)
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__508, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_12__setstate_cython__[] = "CUmemGenericAllocationHandle.__setstate_cython__(self, __pyx_state)";
static PyMethodDef __pyx_mdef_4cuda_4cuda_28CUmemGenericAllocationHandle_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_12__setstate_cython__};
static PyObject *__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_12__setstate_cython__(((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_28CUmemGenericAllocationHandle_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__509)
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__510, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cuda.cuda.CUmemGenericAllocationHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7733
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorString(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string description of an error code.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_1cuGetErrorString(PyObject *__pyx_self, PyObject *__pyx_v_error); /*proto*/
static char __pyx_doc_4cuda_4cuda_cuGetErrorString[] = "cuGetErrorString(error: CUresult)\n Gets the string description of an error code.\n\n    Sets `*pStr` to the address of a NULL-terminated string description of\n    the error code `error`. If the error code is not recognized,\n    CUDA_ERROR_INVALID_VALUE will be returned and `*pStr` will be set to\n    the NULL address.\n\n    Parameters\n    ----------\n    error : CUresult\n        Error code to convert to string\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    pStr : bytes\n        Address of the string pointer.\n\n    See Also\n    --------\n    CUresult\n    cudaGetErrorString\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_1cuGetErrorString = {"cuGetErrorString", (PyCFunction)__pyx_pw_4cuda_4cuda_1cuGetErrorString, METH_O, __pyx_doc_4cuda_4cuda_cuGetErrorString};
static PyObject *__pyx_pw_4cuda_4cuda_1cuGetErrorString(PyObject *__pyx_self, PyObject *__pyx_v_error) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGetErrorString (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_error) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "error"); __PYX_ERR(0, 7733, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_cuGetErrorString(__pyx_self, ((PyObject *)__pyx_v_error));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_cuGetErrorString(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_error) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_cerror;
  char const *__pyx_v_pStr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__511)
  __Pyx_RefNannySetupContext("cuGetErrorString", 0);
  __Pyx_TraceCall("cuGetErrorString", __pyx_f[0], 7733, 0, __PYX_ERR(0, 7733, __pyx_L1_error));

  /* "cuda/cuda.pyx":7759
 *     cudaGetErrorString
 *     """
 *     cdef ccuda.CUresult cerror = error.value             # <<<<<<<<<<<<<<
 *     cdef const char* pStr = NULL
 *     err = ccuda.cuGetErrorString(cerror, &pStr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_cudaError_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7759, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cerror = __pyx_t_2;

  /* "cuda/cuda.pyx":7760
 *     """
 *     cdef ccuda.CUresult cerror = error.value
 *     cdef const char* pStr = NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGetErrorString(cerror, &pStr)
 *     return (CUresult(err), <bytes>pStr)
 */
  __pyx_v_pStr = NULL;

  /* "cuda/cuda.pyx":7761
 *     cdef ccuda.CUresult cerror = error.value
 *     cdef const char* pStr = NULL
 *     err = ccuda.cuGetErrorString(cerror, &pStr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), <bytes>pStr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGetErrorString(__pyx_v_cerror, (&__pyx_v_pStr)); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7761, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":7762
 *     cdef const char* pStr = NULL
 *     err = ccuda.cuGetErrorString(cerror, &pStr)
 *     return (CUresult(err), <bytes>pStr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_pStr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7733
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorString(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string description of an error code.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGetErrorString", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7765
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorName(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string representation of an error code enum name.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_3cuGetErrorName(PyObject *__pyx_self, PyObject *__pyx_v_error); /*proto*/
static char __pyx_doc_4cuda_4cuda_2cuGetErrorName[] = "cuGetErrorName(error: CUresult)\n Gets the string representation of an error code enum name.\n\n    Sets `*pStr` to the address of a NULL-terminated string representation\n    of the name of the enum error code `error`. If the error code is not\n    recognized, CUDA_ERROR_INVALID_VALUE will be returned and `*pStr` will\n    be set to the NULL address.\n\n    Parameters\n    ----------\n    error : CUresult\n        Error code to convert to string\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    pStr : bytes\n        Address of the string pointer.\n\n    See Also\n    --------\n    CUresult\n    cudaGetErrorName\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_3cuGetErrorName = {"cuGetErrorName", (PyCFunction)__pyx_pw_4cuda_4cuda_3cuGetErrorName, METH_O, __pyx_doc_4cuda_4cuda_2cuGetErrorName};
static PyObject *__pyx_pw_4cuda_4cuda_3cuGetErrorName(PyObject *__pyx_self, PyObject *__pyx_v_error) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGetErrorName (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_error) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "error"); __PYX_ERR(0, 7765, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_2cuGetErrorName(__pyx_self, ((PyObject *)__pyx_v_error));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_2cuGetErrorName(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_error) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_cerror;
  char const *__pyx_v_pStr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__512)
  __Pyx_RefNannySetupContext("cuGetErrorName", 0);
  __Pyx_TraceCall("cuGetErrorName", __pyx_f[0], 7765, 0, __PYX_ERR(0, 7765, __pyx_L1_error));

  /* "cuda/cuda.pyx":7791
 *     cudaGetErrorName
 *     """
 *     cdef ccuda.CUresult cerror = error.value             # <<<<<<<<<<<<<<
 *     cdef const char* pStr = NULL
 *     err = ccuda.cuGetErrorName(cerror, &pStr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_cudaError_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 7791, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cerror = __pyx_t_2;

  /* "cuda/cuda.pyx":7792
 *     """
 *     cdef ccuda.CUresult cerror = error.value
 *     cdef const char* pStr = NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGetErrorName(cerror, &pStr)
 *     return (CUresult(err), <bytes>pStr)
 */
  __pyx_v_pStr = NULL;

  /* "cuda/cuda.pyx":7793
 *     cdef ccuda.CUresult cerror = error.value
 *     cdef const char* pStr = NULL
 *     err = ccuda.cuGetErrorName(cerror, &pStr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), <bytes>pStr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGetErrorName(__pyx_v_cerror, (&__pyx_v_pStr)); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7793, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":7794
 *     cdef const char* pStr = NULL
 *     err = ccuda.cuGetErrorName(cerror, &pStr)
 *     return (CUresult(err), <bytes>pStr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_pStr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7765
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorName(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string representation of an error code enum name.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGetErrorName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7797
 * 
 * @cython.embedsignature(True)
 * def cuInit(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Initialize the CUDA driver API.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_5cuInit(PyObject *__pyx_self, PyObject *__pyx_arg_Flags); /*proto*/
static char __pyx_doc_4cuda_4cuda_4cuInit[] = "cuInit(unsigned int Flags)\n Initialize the CUDA driver API.\n\n    Initializes the driver API and must be called before any other function\n    from the driver API. Currently, the `Flags` parameter must be 0. If\n    cuInit() has not been called, any function from the driver API will\n    return CUDA_ERROR_NOT_INITIALIZED.\n\n    Parameters\n    ----------\n    Flags : unsigned int\n        Initialization flag for CUDA.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_SYSTEM_DRIVER_MISMATCH\n        CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_5cuInit = {"cuInit", (PyCFunction)__pyx_pw_4cuda_4cuda_5cuInit, METH_O, __pyx_doc_4cuda_4cuda_4cuInit};
static PyObject *__pyx_pw_4cuda_4cuda_5cuInit(PyObject *__pyx_self, PyObject *__pyx_arg_Flags) {
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuInit (wrapper)", 0);
  assert(__pyx_arg_Flags); {
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_Flags); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 7797, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuInit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_4cuInit(__pyx_self, ((unsigned int)__pyx_v_Flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_4cuInit(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__513)
  __Pyx_RefNannySetupContext("cuInit", 0);
  __Pyx_TraceCall("cuInit", __pyx_f[0], 7797, 0, __PYX_ERR(0, 7797, __pyx_L1_error));

  /* "cuda/cuda.pyx":7821
 *         None
 *     """
 *     err = ccuda.cuInit(Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuInit(__pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7821, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":7822
 *     """
 *     err = ccuda.cuInit(Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7797
 * 
 * @cython.embedsignature(True)
 * def cuInit(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Initialize the CUDA driver API.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuInit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7825
 * 
 * @cython.embedsignature(True)
 * def cuDriverGetVersion():             # <<<<<<<<<<<<<<
 *     """ Returns the latest CUDA version supported by driver.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_7cuDriverGetVersion(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_6cuDriverGetVersion[] = "cuDriverGetVersion()\n Returns the latest CUDA version supported by driver.\n\n    Returns in `*driverVersion` the version of CUDA supported by the\n    driver. The version is returned as (1000 * major + 10 * minor). For\n    example, CUDA 9.2 would be represented by 9020.\n\n    This function automatically returns CUDA_ERROR_INVALID_VALUE if\n    `driverVersion` is NULL.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    driverVersion : int\n        Returns the CUDA driver version\n\n    See Also\n    --------\n    cudaDriverGetVersion\n    cudaRuntimeGetVersion\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_7cuDriverGetVersion = {"cuDriverGetVersion", (PyCFunction)__pyx_pw_4cuda_4cuda_7cuDriverGetVersion, METH_NOARGS, __pyx_doc_4cuda_4cuda_6cuDriverGetVersion};
static PyObject *__pyx_pw_4cuda_4cuda_7cuDriverGetVersion(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDriverGetVersion (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_6cuDriverGetVersion(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_6cuDriverGetVersion(CYTHON_UNUSED PyObject *__pyx_self) {
  int __pyx_v_driverVersion;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__514)
  __Pyx_RefNannySetupContext("cuDriverGetVersion", 0);
  __Pyx_TraceCall("cuDriverGetVersion", __pyx_f[0], 7825, 0, __PYX_ERR(0, 7825, __pyx_L1_error));

  /* "cuda/cuda.pyx":7848
 *     cudaRuntimeGetVersion
 *     """
 *     cdef int driverVersion = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDriverGetVersion(&driverVersion)
 *     return (CUresult(err), driverVersion)
 */
  __pyx_v_driverVersion = 0;

  /* "cuda/cuda.pyx":7849
 *     """
 *     cdef int driverVersion = 0
 *     err = ccuda.cuDriverGetVersion(&driverVersion)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), driverVersion)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDriverGetVersion((&__pyx_v_driverVersion)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7849, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":7850
 *     cdef int driverVersion = 0
 *     err = ccuda.cuDriverGetVersion(&driverVersion)
 *     return (CUresult(err), driverVersion)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_driverVersion); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7825
 * 
 * @cython.embedsignature(True)
 * def cuDriverGetVersion():             # <<<<<<<<<<<<<<
 *     """ Returns the latest CUDA version supported by driver.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDriverGetVersion", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7853
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGet(int ordinal):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_9cuDeviceGet(PyObject *__pyx_self, PyObject *__pyx_arg_ordinal); /*proto*/
static char __pyx_doc_4cuda_4cuda_8cuDeviceGet[] = "cuDeviceGet(int ordinal)\n Returns a handle to a compute device.\n\n    Returns in `*device` a device handle given an ordinal in the range [0,\n    cuDeviceGetCount()-1].\n\n    Parameters\n    ----------\n    ordinal : int\n        Device number to get handle for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    device : CUdevice\n        Returned device handle\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGetLuid\n    cuDeviceTotalMem\n    cuDeviceGetExecAffinitySupport\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_9cuDeviceGet = {"cuDeviceGet", (PyCFunction)__pyx_pw_4cuda_4cuda_9cuDeviceGet, METH_O, __pyx_doc_4cuda_4cuda_8cuDeviceGet};
static PyObject *__pyx_pw_4cuda_4cuda_9cuDeviceGet(PyObject *__pyx_self, PyObject *__pyx_arg_ordinal) {
  int __pyx_v_ordinal;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGet (wrapper)", 0);
  assert(__pyx_arg_ordinal); {
    __pyx_v_ordinal = __Pyx_PyInt_As_int(__pyx_arg_ordinal); if (unlikely((__pyx_v_ordinal == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 7853, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_8cuDeviceGet(__pyx_self, ((int)__pyx_v_ordinal));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_8cuDeviceGet(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_ordinal) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__515)
  __Pyx_RefNannySetupContext("cuDeviceGet", 0);
  __Pyx_TraceCall("cuDeviceGet", __pyx_f[0], 7853, 0, __PYX_ERR(0, 7853, __pyx_L1_error));

  /* "cuda/cuda.pyx":7886
 *     cuDeviceGetExecAffinitySupport
 *     """
 *     cdef CUdevice device = CUdevice()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGet(device._ptr, ordinal)
 *     return (CUresult(err), device)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_device = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7887
 *     """
 *     cdef CUdevice device = CUdevice()
 *     err = ccuda.cuDeviceGet(device._ptr, ordinal)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), device)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGet(__pyx_v_device->_ptr, __pyx_v_ordinal); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7887, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":7888
 *     cdef CUdevice device = CUdevice()
 *     err = ccuda.cuDeviceGet(device._ptr, ordinal)
 *     return (CUresult(err), device)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_device));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_device));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_device));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7853
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGet(int ordinal):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_device);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7891
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetCount():             # <<<<<<<<<<<<<<
 *     """ Returns the number of compute-capable devices.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_11cuDeviceGetCount(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_10cuDeviceGetCount[] = "cuDeviceGetCount()\n Returns the number of compute-capable devices.\n\n    Returns in `*count` the number of devices with compute capability\n    greater than or equal to 2.0 that are available for execution. If there\n    is no such device, cuDeviceGetCount() returns 0.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    count : int\n        Returned number of compute-capable devices\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGetLuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    cuDeviceGetExecAffinitySupport\n    cudaGetDeviceCount\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_11cuDeviceGetCount = {"cuDeviceGetCount", (PyCFunction)__pyx_pw_4cuda_4cuda_11cuDeviceGetCount, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuDeviceGetCount};
static PyObject *__pyx_pw_4cuda_4cuda_11cuDeviceGetCount(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetCount (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_10cuDeviceGetCount(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_10cuDeviceGetCount(CYTHON_UNUSED PyObject *__pyx_self) {
  int __pyx_v_count;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__516)
  __Pyx_RefNannySetupContext("cuDeviceGetCount", 0);
  __Pyx_TraceCall("cuDeviceGetCount", __pyx_f[0], 7891, 0, __PYX_ERR(0, 7891, __pyx_L1_error));

  /* "cuda/cuda.pyx":7920
 *     cudaGetDeviceCount
 *     """
 *     cdef int count = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetCount(&count)
 *     return (CUresult(err), count)
 */
  __pyx_v_count = 0;

  /* "cuda/cuda.pyx":7921
 *     """
 *     cdef int count = 0
 *     err = ccuda.cuDeviceGetCount(&count)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), count)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceGetCount((&__pyx_v_count)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7921, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":7922
 *     cdef int count = 0
 *     err = ccuda.cuDeviceGetCount(&count)
 *     return (CUresult(err), count)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7891
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetCount():             # <<<<<<<<<<<<<<
 *     """ Returns the number of compute-capable devices.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetCount", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7925
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetName(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns an identifer string for the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_13cuDeviceGetName(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_12cuDeviceGetName[] = "cuDeviceGetName(int length, CUdevice dev: CUdevice)\n Returns an identifer string for the device.\n\n    Returns an ASCII string identifying the device `dev` in the NULL-\n    terminated string pointed to by `name`. `length` specifies the maximum\n    length of the string that may be returned.\n\n    Parameters\n    ----------\n    length : int\n        Maximum length of string to store in `name`\n    dev : CUdevice\n        Device to get identifier string for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    name : bytes\n        Returned identifier string for the device\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetUuid\n    cuDeviceGetLuid\n    cuDeviceGetCount\n    cuDeviceGet\n    cuDeviceTotalMem\n    cuDeviceGetExecAffinitySupport\n    cudaGetDeviceProperties\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_13cuDeviceGetName = {"cuDeviceGetName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_13cuDeviceGetName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_12cuDeviceGetName};
static PyObject *__pyx_pw_4cuda_4cuda_13cuDeviceGetName(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_length;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetName (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_length,&__pyx_n_s_dev,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetName", 1, 2, 2, 1); __PYX_ERR(0, 7925, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetName") < 0)) __PYX_ERR(0, 7925, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_length = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_length == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 7925, __pyx_L3_error)
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7925, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 7925, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_12cuDeviceGetName(__pyx_self, __pyx_v_length, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_12cuDeviceGetName(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_length, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  char *__pyx_v_name;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__517)
  __Pyx_RefNannySetupContext("cuDeviceGetName", 0);
  __Pyx_TraceCall("cuDeviceGetName", __pyx_f[0], 7925, 0, __PYX_ERR(0, 7925, __pyx_L1_error));

  /* "cuda/cuda.pyx":7962
 *     cudaGetDeviceProperties
 *     """
 *     cdef char* name = <char*>calloc(1, length)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetName(name, length, dev._ptr[0])
 *     return (CUresult(err), <bytes>name)
 */
  __pyx_v_name = ((char *)calloc(1, __pyx_v_length));

  /* "cuda/cuda.pyx":7963
 *     """
 *     cdef char* name = <char*>calloc(1, length)
 *     err = ccuda.cuDeviceGetName(name, length, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), <bytes>name)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceGetName(__pyx_v_name, __pyx_v_length, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 7963, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":7964
 *     cdef char* name = <char*>calloc(1, length)
 *     err = ccuda.cuDeviceGetName(name, length, dev._ptr[0])
 *     return (CUresult(err), <bytes>name)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_INCREF(((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7925
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetName(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns an identifer string for the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":7967
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_15cuDeviceGetUuid(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_14cuDeviceGetUuid[] = "cuDeviceGetUuid(CUdevice dev: CUdevice)\n Return an UUID for the device.\n\n    Note there is a later version of this API, cuDeviceGetUuid_v2. It will\n    supplant this version in 12.0, which is retained for minor version\n    compatibility.\n\n    Returns 16-octets identifing the device `dev` in the structure pointed\n    by the `uuid`.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device to get identifier string for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    uuid : CUuuid\n        Returned UUID\n\n    See Also\n    --------\n    cuDeviceGetUuid_v2\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetLuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    cuDeviceGetExecAffinitySupport\n    cudaGetDeviceProperties\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_15cuDeviceGetUuid = {"cuDeviceGetUuid", (PyCFunction)__pyx_pw_4cuda_4cuda_15cuDeviceGetUuid, METH_O, __pyx_doc_4cuda_4cuda_14cuDeviceGetUuid};
static PyObject *__pyx_pw_4cuda_4cuda_15cuDeviceGetUuid(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetUuid (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 7967, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_14cuDeviceGetUuid(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_14cuDeviceGetUuid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUuuid *__pyx_v_uuid = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__518)
  __Pyx_RefNannySetupContext("cuDeviceGetUuid", 0);
  __Pyx_TraceCall("cuDeviceGetUuid", __pyx_f[0], 7967, 0, __PYX_ERR(0, 7967, __pyx_L1_error));

  /* "cuda/cuda.pyx":8005
 *     cudaGetDeviceProperties
 *     """
 *     cdef CUuuid uuid = CUuuid()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetUuid(uuid._ptr, dev._ptr[0])
 *     return (CUresult(err), uuid)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUuuid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_uuid = ((struct __pyx_obj_4cuda_4cuda_CUuuid *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8006
 *     """
 *     cdef CUuuid uuid = CUuuid()
 *     err = ccuda.cuDeviceGetUuid(uuid._ptr, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), uuid)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGetUuid(__pyx_v_uuid->__pyx_base._ptr, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8006, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":8007
 *     cdef CUuuid uuid = CUuuid()
 *     err = ccuda.cuDeviceGetUuid(uuid._ptr, dev._ptr[0])
 *     return (CUresult(err), uuid)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_uuid));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_uuid));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_uuid));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":7967
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetUuid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_uuid);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8010
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid_v2(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device (11.4+)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_17cuDeviceGetUuid_v2(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_16cuDeviceGetUuid_v2[] = "cuDeviceGetUuid_v2(CUdevice dev: CUdevice)\n Return an UUID for the device (11.4+)\n\n    Returns 16-octets identifing the device `dev` in the structure pointed\n    by the `uuid`. If the device is in MIG mode, returns its MIG UUID which\n    uniquely identifies the subscribed MIG compute instance.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device to get identifier string for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    uuid : CUuuid\n        Returned UUID\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetLuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    cudaGetDeviceProperties\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_17cuDeviceGetUuid_v2 = {"cuDeviceGetUuid_v2", (PyCFunction)__pyx_pw_4cuda_4cuda_17cuDeviceGetUuid_v2, METH_O, __pyx_doc_4cuda_4cuda_16cuDeviceGetUuid_v2};
static PyObject *__pyx_pw_4cuda_4cuda_17cuDeviceGetUuid_v2(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetUuid_v2 (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8010, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_16cuDeviceGetUuid_v2(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_16cuDeviceGetUuid_v2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUuuid *__pyx_v_uuid = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__519)
  __Pyx_RefNannySetupContext("cuDeviceGetUuid_v2", 0);
  __Pyx_TraceCall("cuDeviceGetUuid_v2", __pyx_f[0], 8010, 0, __PYX_ERR(0, 8010, __pyx_L1_error));

  /* "cuda/cuda.pyx":8043
 *     cudaGetDeviceProperties
 *     """
 *     cdef CUuuid uuid = CUuuid()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetUuid_v2(uuid._ptr, dev._ptr[0])
 *     return (CUresult(err), uuid)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUuuid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_uuid = ((struct __pyx_obj_4cuda_4cuda_CUuuid *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8044
 *     """
 *     cdef CUuuid uuid = CUuuid()
 *     err = ccuda.cuDeviceGetUuid_v2(uuid._ptr, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), uuid)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGetUuid_v2(__pyx_v_uuid->__pyx_base._ptr, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8044, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":8045
 *     cdef CUuuid uuid = CUuuid()
 *     err = ccuda.cuDeviceGetUuid_v2(uuid._ptr, dev._ptr[0])
 *     return (CUresult(err), uuid)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_uuid));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_uuid));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_uuid));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8010
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid_v2(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device (11.4+)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetUuid_v2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_uuid);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8048
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetLuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an LUID and device node mask for the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_19cuDeviceGetLuid(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_18cuDeviceGetLuid[] = "cuDeviceGetLuid(CUdevice dev: CUdevice)\n Return an LUID and device node mask for the device.\n\n    Return identifying information (`luid` and `deviceNodeMask`) to allow\n    matching device with graphics APIs.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device to get identifier string for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    luid : bytes\n        Returned LUID\n    deviceNodeMask : unsigned int\n        Returned device node mask\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGet\n    cuDeviceTotalMem\n    cuDeviceGetExecAffinitySupport\n    cudaGetDeviceProperties\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_19cuDeviceGetLuid = {"cuDeviceGetLuid", (PyCFunction)__pyx_pw_4cuda_4cuda_19cuDeviceGetLuid, METH_O, __pyx_doc_4cuda_4cuda_18cuDeviceGetLuid};
static PyObject *__pyx_pw_4cuda_4cuda_19cuDeviceGetLuid(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetLuid (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8048, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_18cuDeviceGetLuid(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_18cuDeviceGetLuid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  char __pyx_v_luid[8];
  unsigned int __pyx_v_deviceNodeMask;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__520)
  __Pyx_RefNannySetupContext("cuDeviceGetLuid", 0);
  __Pyx_TraceCall("cuDeviceGetLuid", __pyx_f[0], 8048, 0, __PYX_ERR(0, 8048, __pyx_L1_error));

  /* "cuda/cuda.pyx":8083
 *     """
 *     cdef char luid[8]
 *     cdef unsigned int deviceNodeMask = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetLuid(luid, &deviceNodeMask, dev._ptr[0])
 *     return (CUresult(err), <bytes>luid, deviceNodeMask)
 */
  __pyx_v_deviceNodeMask = 0;

  /* "cuda/cuda.pyx":8084
 *     cdef char luid[8]
 *     cdef unsigned int deviceNodeMask = 0
 *     err = ccuda.cuDeviceGetLuid(luid, &deviceNodeMask, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), <bytes>luid, deviceNodeMask)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceGetLuid(__pyx_v_luid, (&__pyx_v_deviceNodeMask), (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8084, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8085
 *     cdef unsigned int deviceNodeMask = 0
 *     err = ccuda.cuDeviceGetLuid(luid, &deviceNodeMask, dev._ptr[0])
 *     return (CUresult(err), <bytes>luid, deviceNodeMask)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_FromString(__pyx_v_luid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_deviceNodeMask); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_INCREF(((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8048
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetLuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an LUID and device node mask for the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetLuid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8088
 * 
 * @cython.embedsignature(True)
 * def cuDeviceTotalMem(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the total amount of memory on the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_21cuDeviceTotalMem(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_20cuDeviceTotalMem[] = "cuDeviceTotalMem(CUdevice dev: CUdevice)\n Returns the total amount of memory on the device.\n\n    Returns in `*bytes` the total amount of memory available on the device\n    `dev` in bytes.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device handle\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    numbytes : int\n        Returned memory available on device in bytes\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGet\n    cuDeviceGetExecAffinitySupport\n    cudaMemGetInfo\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_21cuDeviceTotalMem = {"cuDeviceTotalMem", (PyCFunction)__pyx_pw_4cuda_4cuda_21cuDeviceTotalMem, METH_O, __pyx_doc_4cuda_4cuda_20cuDeviceTotalMem};
static PyObject *__pyx_pw_4cuda_4cuda_21cuDeviceTotalMem(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceTotalMem (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8088, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_20cuDeviceTotalMem(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_20cuDeviceTotalMem(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  size_t __pyx_v_numbytes;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__521)
  __Pyx_RefNannySetupContext("cuDeviceTotalMem", 0);
  __Pyx_TraceCall("cuDeviceTotalMem", __pyx_f[0], 8088, 0, __PYX_ERR(0, 8088, __pyx_L1_error));

  /* "cuda/cuda.pyx":8121
 *     cudaMemGetInfo
 *     """
 *     cdef size_t numbytes = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceTotalMem(&numbytes, dev._ptr[0])
 *     return (CUresult(err), numbytes)
 */
  __pyx_v_numbytes = 0;

  /* "cuda/cuda.pyx":8122
 *     """
 *     cdef size_t numbytes = 0
 *     err = ccuda.cuDeviceTotalMem(&numbytes, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), numbytes)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceTotalMem((&__pyx_v_numbytes), (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8122, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8123
 *     cdef size_t numbytes = 0
 *     err = ccuda.cuDeviceTotalMem(&numbytes, dev._ptr[0])
 *     return (CUresult(err), numbytes)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_numbytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8088
 * 
 * @cython.embedsignature(True)
 * def cuDeviceTotalMem(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the total amount of memory on the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceTotalMem", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8126
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetTexture1DLinearMaxWidth(pformat not None : CUarray_format, unsigned numChannels, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the maximum number of elements allocatable in a 1D linear texture for a given texture element size.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_23cuDeviceGetTexture1DLinearMaxWidth(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_22cuDeviceGetTexture1DLinearMaxWidth[] = "cuDeviceGetTexture1DLinearMaxWidth(pformat: CUarray_format, unsigned int numChannels, CUdevice dev: CUdevice)\n Returns the maximum number of elements allocatable in a 1D linear texture for a given texture element size.\n\n    Returns in `maxWidthInElements` the maximum number of texture elements\n    allocatable in a 1D linear texture for given `pformat` and\n    `numChannels`.\n\n    Parameters\n    ----------\n    pformat : CUarray_format\n        Texture format.\n    numChannels : unsigned\n        Number of channels per texture element.\n    dev : CUdevice\n        Device handle.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    maxWidthInElements : int\n        Returned maximum number of texture elements allocatable for given\n        `pformat` and `numChannels`.\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGet\n    cudaMemGetInfo\n    cuDeviceTotalMem\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_23cuDeviceGetTexture1DLinearMaxWidth = {"cuDeviceGetTexture1DLinearMaxWidth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_23cuDeviceGetTexture1DLinearMaxWidth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_22cuDeviceGetTexture1DLinearMaxWidth};
static PyObject *__pyx_pw_4cuda_4cuda_23cuDeviceGetTexture1DLinearMaxWidth(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_pformat = 0;
  unsigned int __pyx_v_numChannels;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetTexture1DLinearMaxWidth (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pformat,&__pyx_n_s_numChannels_2,&__pyx_n_s_dev,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pformat)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numChannels_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetTexture1DLinearMaxWidth", 1, 3, 3, 1); __PYX_ERR(0, 8126, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetTexture1DLinearMaxWidth", 1, 3, 3, 2); __PYX_ERR(0, 8126, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetTexture1DLinearMaxWidth") < 0)) __PYX_ERR(0, 8126, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_pformat = values[0];
    __pyx_v_numChannels = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_numChannels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 8126, __pyx_L3_error)
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetTexture1DLinearMaxWidth", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8126, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetTexture1DLinearMaxWidth", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_pformat) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "pformat"); __PYX_ERR(0, 8126, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8126, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_22cuDeviceGetTexture1DLinearMaxWidth(__pyx_self, __pyx_v_pformat, __pyx_v_numChannels, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_22cuDeviceGetTexture1DLinearMaxWidth(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pformat, unsigned int __pyx_v_numChannels, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  size_t __pyx_v_maxWidthInElements;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_v_cpformat;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__522)
  __Pyx_RefNannySetupContext("cuDeviceGetTexture1DLinearMaxWidth", 0);
  __Pyx_TraceCall("cuDeviceGetTexture1DLinearMaxWidth", __pyx_f[0], 8126, 0, __PYX_ERR(0, 8126, __pyx_L1_error));

  /* "cuda/cuda.pyx":8165
 *     cuDeviceTotalMem
 *     """
 *     cdef size_t maxWidthInElements = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUarray_format cpformat = pformat.value
 *     err = ccuda.cuDeviceGetTexture1DLinearMaxWidth(&maxWidthInElements, cpformat, numChannels, dev._ptr[0])
 */
  __pyx_v_maxWidthInElements = 0;

  /* "cuda/cuda.pyx":8166
 *     """
 *     cdef size_t maxWidthInElements = 0
 *     cdef ccuda.CUarray_format cpformat = pformat.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetTexture1DLinearMaxWidth(&maxWidthInElements, cpformat, numChannels, dev._ptr[0])
 *     return (CUresult(err), maxWidthInElements)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pformat, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 8166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cpformat = __pyx_t_2;

  /* "cuda/cuda.pyx":8167
 *     cdef size_t maxWidthInElements = 0
 *     cdef ccuda.CUarray_format cpformat = pformat.value
 *     err = ccuda.cuDeviceGetTexture1DLinearMaxWidth(&maxWidthInElements, cpformat, numChannels, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), maxWidthInElements)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuDeviceGetTexture1DLinearMaxWidth((&__pyx_v_maxWidthInElements), __pyx_v_cpformat, __pyx_v_numChannels, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8167, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":8168
 *     cdef ccuda.CUarray_format cpformat = pformat.value
 *     err = ccuda.cuDeviceGetTexture1DLinearMaxWidth(&maxWidthInElements, cpformat, numChannels, dev._ptr[0])
 *     return (CUresult(err), maxWidthInElements)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_maxWidthInElements); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8126
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetTexture1DLinearMaxWidth(pformat not None : CUarray_format, unsigned numChannels, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the maximum number of elements allocatable in a 1D linear texture for a given texture element size.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetTexture1DLinearMaxWidth", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8171
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetAttribute(attrib not None : CUdevice_attribute, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_25cuDeviceGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_24cuDeviceGetAttribute[] = "cuDeviceGetAttribute(attrib: CUdevice_attribute, CUdevice dev: CUdevice)\n Returns information about the device.\n\n    Returns in `*pi` the integer value of the attribute `attrib` on device\n    `dev`. The supported attributes are:\n    CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK: Maximum number of threads\n    per block; CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X: Maximum x-dimension of\n    a block CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y: Maximum y-dimension of a\n    block CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z: Maximum z-dimension of a\n    block CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X: Maximum x-dimension of a grid\n    CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y: Maximum y-dimension of a grid\n    CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z: Maximum z-dimension of a grid\n    CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK: Maximum amount of\n    shared memory available to a thread block in bytes\n    CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY: Memory available on device\n    for constant variables in a CUDA C kernel in bytes\n    CU_DEVICE_ATTRIBUTE_WARP_SIZE: Warp size in threads\n    CU_DEVICE_ATTRIBUTE_MAX_PITCH: Maximum pitch in bytes allowed by the\n    memory copy functions that involve memory regions allocated through\n    cuMemAllocPitch() CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH: Maximum\n    1D texture width CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH:\n    Maximum width for a 1D texture bound to linear memory\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH: Maximum\n    mipmapped 1D texture width CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH:\n    Maximum 2D texture width CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT:\n    Maximum 2D texture height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH: Maximum width for a\n    2D texture bound to linear memory\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT: Maximum height for\n    a 2D texture bound to linear memory\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH: Maximum pitch in\n    bytes for a 2""D texture bound to linear memory\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH: Maximum\n    mipmapped 2D texture width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT: Maximum\n    mipmapped 2D texture height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH: Maximum 3D texture width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT: Maximum 3D texture height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH: Maximum 3D texture depth\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE: Alternate\n    maximum 3D texture width, 0 if no alternate maximum 3D texture size is\n    supported CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE:\n    Alternate maximum 3D texture height, 0 if no alternate maximum 3D\n    texture size is supported\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE: Alternate\n    maximum 3D texture depth, 0 if no alternate maximum 3D texture size is\n    supported CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH: Maximum\n    cubemap texture width or height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH: Maximum 1D layered\n    texture width CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS:\n    Maximum layers in a 1D layered texture\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH: Maximum 2D layered\n    texture width CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT:\n    Maximum 2D layered texture height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS: Maximum layers in\n    a 2D layered texture\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH: Maximum\n    cubemap layered texture width or height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS: Maximum\n    layers in a cubemap layered texture\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH: Maximum 1D surface width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH: Maximum 2D surface width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT: Maximum 2D surface height\n    CU_DEVICE_ATTRIB""UTE_MAXIMUM_SURFACE3D_WIDTH: Maximum 3D surface width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT: Maximum 3D surface height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH: Maximum 3D surface depth\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH: Maximum 1D layered\n    surface width CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS:\n    Maximum layers in a 1D layered surface\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH: Maximum 2D layered\n    surface width CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT:\n    Maximum 2D layered surface height\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS: Maximum layers in\n    a 2D layered surface CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH:\n    Maximum cubemap surface width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH: Maximum\n    cubemap layered surface width\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS: Maximum\n    layers in a cubemap layered surface\n    CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK: Maximum number of 32-bit\n    registers available to a thread block CU_DEVICE_ATTRIBUTE_CLOCK_RATE:\n    The typical clock frequency in kilohertz\n    CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT: Alignment requirement; texture\n    base addresses aligned to textureAlign bytes do not need an offset\n    applied to texture fetches CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT:\n    Pitch alignment requirement for 2D texture references bound to pitched\n    memory CU_DEVICE_ATTRIBUTE_GPU_OVERLAP: 1 if the device can\n    concurrently copy memory between host and device while executing a\n    kernel, or 0 if not CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT: Number of\n    multiprocessors on the device CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT:\n    1 if there is a run time limit for kernels executed on the device, or 0\n    if not CU_DEVICE_ATTRIBUTE_INTEGRATED: 1 if the device is integrated\n    with the memory subsystem, or 0 if not\n    CU_DEVICE_ATTRIBUT""E_CAN_MAP_HOST_MEMORY: 1 if the device can map host\n    memory into the CUDA address space, or 0 if not\n    CU_DEVICE_ATTRIBUTE_COMPUTE_MODE: Compute mode that device is currently\n    in. Available modes are as follows: CU_COMPUTEMODE_DEFAULT: Default\n    mode - Device is not restricted and can have multiple CUDA contexts\n    present at a single time. CU_COMPUTEMODE_PROHIBITED: Compute-prohibited\n    mode - Device is prohibited from creating new CUDA contexts.\n    CU_COMPUTEMODE_EXCLUSIVE_PROCESS: Compute-exclusive-process mode -\n    Device can have only one context used by a single process at a time.\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS: 1 if the device supports\n    executing multiple kernels within the same context simultaneously, or 0\n    if not. It is not guaranteed that multiple kernels will be resident on\n    the device concurrently so this feature should not be relied upon for\n    correctness. CU_DEVICE_ATTRIBUTE_ECC_ENABLED: 1 if error correction is\n    enabled on the device, 0 if error correction is disabled or not\n    supported by the device CU_DEVICE_ATTRIBUTE_PCI_BUS_ID: PCI bus\n    identifier of the device CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID: PCI device\n    (also known as slot) identifier of the device\n    CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID: PCI domain identifier of the device\n    CU_DEVICE_ATTRIBUTE_TCC_DRIVER: 1 if the device is using a TCC driver.\n    TCC is only available on Tesla hardware running Windows Vista or later\n    CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE: Peak memory clock frequency in\n    kilohertz CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH: Global memory\n    bus width in bits CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE: Size of L2 cache\n    in bytes. 0 if the device doesn't have L2 cache\n    CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR: Maximum resident\n    threads per multiprocessor CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING: 1 if\n    the device shares a unified address space with the host, or 0 if not\n    CU_DEVICE""_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR: Major compute capability\n    version number CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR: Minor\n    compute capability version number\n    CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED: 1 if device supports\n    caching globals in L1 cache, 0 if caching globals in L1 cache is not\n    supported by the device CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED: 1\n    if device supports caching locals in L1 cache, 0 if caching locals in\n    L1 cache is not supported by the device\n    CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR: Maximum\n    amount of shared memory available to a multiprocessor in bytes; this\n    amount is shared by all thread blocks simultaneously resident on a\n    multiprocessor CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR:\n    Maximum number of 32-bit registers available to a multiprocessor; this\n    number is shared by all thread blocks simultaneously resident on a\n    multiprocessor CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY: 1 if device supports\n    allocating managed memory on this system, 0 if allocating managed\n    memory is not supported by the device on this system.\n    CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD: 1 if device is on a multi-GPU\n    board, 0 if not. CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID: Unique\n    identifier for a group of devices associated with the same board.\n    Devices on the same multi-GPU board will share the same identifier.\n    CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED: 1 if Link between the\n    device and the host supports native atomic operations.\n    CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO: Ratio of\n    single precision performance (in floating-point operations per second)\n    to double precision performance.\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS: Device suppports coherently\n    accessing pageable memory without calling cudaHostRegister on it.\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS: Device can coherently""\n    access managed memory concurrently with the CPU.\n    CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED: Device supports\n    Compute Preemption.\n    CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM: Device can\n    access host registered memory at the same virtual address as the CPU.\n    CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN: The maximum per\n    block shared memory size suported on this device. This is the maximum\n    value that can be opted into when using the cuFuncSetAttribute() call.\n    For more details see CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES:\n    Device accesses pageable memory via the host's page tables.\n    CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST: The host can\n    directly access managed memory on the device without migration.\n    CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED: Device\n    supports virtual memory management APIs like cuMemAddressReserve,\n    cuMemCreate, cuMemMap and related APIs\n    CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED: Device\n    supports exporting memory to a posix file descriptor with\n    cuMemExportToShareableHandle, if requested via cuMemCreate\n    CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED: Device supports\n    exporting memory to a Win32 NT handle with\n    cuMemExportToShareableHandle, if requested via cuMemCreate\n    CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED: Device\n    supports exporting memory to a Win32 KMT handle with\n    cuMemExportToShareableHandle, if requested via cuMemCreate\n    CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR: Maximum number of\n    thread blocks that can reside on a multiprocessor\n    CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED: Device supports\n    compressible memory allocation via cuMemCreate\n    CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE: Maximum L2 persisting\n    lines capa""city setting in bytes\n    CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE: Maximum value of\n    CUaccessPolicyWindow::num_bytes\n    CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED: Device\n    supports specifying the GPUDirect RDMA flag with cuMemCreate.\n    CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK: Amount of shared\n    memory per block reserved by CUDA driver in bytes\n    CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED: Device supports sparse\n    CUDA arrays and sparse CUDA mipmapped arrays.\n    CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED: Device supports\n    using the cuMemHostRegister flag CU_MEMHOSTERGISTER_READ_ONLY to\n    register memory that must be mapped as read-only to the GPU\n    CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED: Device supports using the\n    cuMemAllocAsync and cuMemPool family of APIs\n    CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED: Device supports\n    GPUDirect RDMA APIs, like nvidia_p2p_get_pages (see\n    https://docs.nvidia.com/cuda/gpudirect-rdma for more information)\n    CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS: The returned\n    attribute shall be interpreted as a bitmask, where the individual bits\n    are described by the CUflushGPUDirectRDMAWritesOptions enum\n    CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING: GPUDirect RDMA\n    writes to the device do not need to be flushed for consumers within the\n    scope indicated by the returned attribute. See\n    CUGPUDirectRDMAWritesOrdering for the numerical values returned here.\n    CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES: Bitmask of handle\n    types supported with mempool based IPC\n\n    Parameters\n    ----------\n    attrib : CUdevice_attribute\n        Device attribute to query\n    dev : CUdevice\n        Device handle\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        ""CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    pi : int\n        Returned device attribute value\n\n    See Also\n    --------\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    cuDeviceGetExecAffinitySupport\n    cudaDeviceGetAttribute\n    cudaGetDeviceProperties\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_25cuDeviceGetAttribute = {"cuDeviceGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_25cuDeviceGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_24cuDeviceGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_25cuDeviceGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_attrib = 0;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_attrib,&__pyx_n_s_dev,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attrib)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetAttribute", 1, 2, 2, 1); __PYX_ERR(0, 8171, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetAttribute") < 0)) __PYX_ERR(0, 8171, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_attrib = values[0];
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8171, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_attrib) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attrib"); __PYX_ERR(0, 8171, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8171, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_24cuDeviceGetAttribute(__pyx_self, __pyx_v_attrib, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_24cuDeviceGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attrib, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  int __pyx_v_pi;
  __pyx_t_4cuda_5ccuda_CUdevice_attribute __pyx_v_cattrib;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUdevice_attribute __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__523)
  __Pyx_RefNannySetupContext("cuDeviceGetAttribute", 0);
  __Pyx_TraceCall("cuDeviceGetAttribute", __pyx_f[0], 8171, 0, __PYX_ERR(0, 8171, __pyx_L1_error));

  /* "cuda/cuda.pyx":8408
 *     cudaGetDeviceProperties
 *     """
 *     cdef int pi = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUdevice_attribute cattrib = attrib.value
 *     err = ccuda.cuDeviceGetAttribute(&pi, cattrib, dev._ptr[0])
 */
  __pyx_v_pi = 0;

  /* "cuda/cuda.pyx":8409
 *     """
 *     cdef int pi = 0
 *     cdef ccuda.CUdevice_attribute cattrib = attrib.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetAttribute(&pi, cattrib, dev._ptr[0])
 *     return (CUresult(err), pi)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 8409, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattrib = __pyx_t_2;

  /* "cuda/cuda.pyx":8410
 *     cdef int pi = 0
 *     cdef ccuda.CUdevice_attribute cattrib = attrib.value
 *     err = ccuda.cuDeviceGetAttribute(&pi, cattrib, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pi)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuDeviceGetAttribute((&__pyx_v_pi), __pyx_v_cattrib, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8410, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":8411
 *     cdef ccuda.CUdevice_attribute cattrib = attrib.value
 *     err = ccuda.cuDeviceGetAttribute(&pi, cattrib, dev._ptr[0])
 *     return (CUresult(err), pi)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8171
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetAttribute(attrib not None : CUdevice_attribute, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8414
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetNvSciSyncAttributes(dev not None : CUdevice, int flags):             # <<<<<<<<<<<<<<
 *     """ Return NvSciSync attributes that this device can support.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_27cuDeviceGetNvSciSyncAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_26cuDeviceGetNvSciSyncAttributes[] = "cuDeviceGetNvSciSyncAttributes(CUdevice dev: CUdevice, int flags)\n Return NvSciSync attributes that this device can support.\n\n    Returns in `nvSciSyncAttrList`, the properties of NvSciSync that this\n    CUDA device, `dev` can support. The returned `nvSciSyncAttrList` can be\n    used to create an NvSciSync object that matches this device's\n    capabilities.\n\n    If NvSciSyncAttrKey_RequiredPerm field in `nvSciSyncAttrList` is\n    already set this API will return CUDA_ERROR_INVALID_VALUE.\n\n    The applications should set `nvSciSyncAttrList` to a valid\n    NvSciSyncAttrList failing which this API will return\n    CUDA_ERROR_INVALID_HANDLE.\n\n    The `flags` controls how applications intends to use the NvSciSync\n    created from the `nvSciSyncAttrList`. The valid flags are:\n    CUDA_NVSCISYNC_ATTR_SIGNAL, specifies that the applications intends to\n    signal an NvSciSync on this CUDA device. CUDA_NVSCISYNC_ATTR_WAIT,\n    specifies that the applications intends to wait on an NvSciSync on this\n    CUDA device.\n\n    At least one of these flags must be set, failing which the API returns\n    CUDA_ERROR_INVALID_VALUE. Both the flags are orthogonal to one another:\n    a developer may set both these flags that allows to set both wait and\n    signal specific attributes in the same `nvSciSyncAttrList`.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Valid Cuda Device to get NvSciSync attributes for.\n    flags : int\n        flags describing NvSciSync usage.\n\n    Returns\n    -------\n    CUresult\n\n    nvSciSyncAttrList : int\n        Return NvSciSync attributes supported.\n\n    See Also\n    --------\n    cuImportExternalSemaphore\n    cuDestroyExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_27cuDeviceGetNvSciSyncAttributes = {"cuDeviceGetNvSciSyncAttributes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_27cuDeviceGetNvSciSyncAttributes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_26cuDeviceGetNvSciSyncAttributes};
static PyObject *__pyx_pw_4cuda_4cuda_27cuDeviceGetNvSciSyncAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetNvSciSyncAttributes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dev,&__pyx_n_s_flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetNvSciSyncAttributes", 1, 2, 2, 1); __PYX_ERR(0, 8414, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetNvSciSyncAttributes") < 0)) __PYX_ERR(0, 8414, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[0]);
    __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 8414, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetNvSciSyncAttributes", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8414, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetNvSciSyncAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8414, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_26cuDeviceGetNvSciSyncAttributes(__pyx_self, __pyx_v_dev, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_26cuDeviceGetNvSciSyncAttributes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, int __pyx_v_flags) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_nvSciSyncAttrList;
  void *__pyx_v_cnvSciSyncAttrList_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__524)
  __Pyx_RefNannySetupContext("cuDeviceGetNvSciSyncAttributes", 0);
  __Pyx_TraceCall("cuDeviceGetNvSciSyncAttributes", __pyx_f[0], 8414, 0, __PYX_ERR(0, 8414, __pyx_L1_error));

  /* "cuda/cuda.pyx":8462
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     cdef void_ptr nvSciSyncAttrList = 0             # <<<<<<<<<<<<<<
 *     cdef void* cnvSciSyncAttrList_ptr = <void*>nvSciSyncAttrList
 *     err = ccuda.cuDeviceGetNvSciSyncAttributes(cnvSciSyncAttrList_ptr, dev._ptr[0], flags)
 */
  __pyx_v_nvSciSyncAttrList = 0;

  /* "cuda/cuda.pyx":8463
 *     """
 *     cdef void_ptr nvSciSyncAttrList = 0
 *     cdef void* cnvSciSyncAttrList_ptr = <void*>nvSciSyncAttrList             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetNvSciSyncAttributes(cnvSciSyncAttrList_ptr, dev._ptr[0], flags)
 *     return (CUresult(err), nvSciSyncAttrList)
 */
  __pyx_v_cnvSciSyncAttrList_ptr = ((void *)__pyx_v_nvSciSyncAttrList);

  /* "cuda/cuda.pyx":8464
 *     cdef void_ptr nvSciSyncAttrList = 0
 *     cdef void* cnvSciSyncAttrList_ptr = <void*>nvSciSyncAttrList
 *     err = ccuda.cuDeviceGetNvSciSyncAttributes(cnvSciSyncAttrList_ptr, dev._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), nvSciSyncAttrList)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceGetNvSciSyncAttributes(__pyx_v_cnvSciSyncAttrList_ptr, (__pyx_v_dev->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8464, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8465
 *     cdef void* cnvSciSyncAttrList_ptr = <void*>nvSciSyncAttrList
 *     err = ccuda.cuDeviceGetNvSciSyncAttributes(cnvSciSyncAttrList_ptr, dev._ptr[0], flags)
 *     return (CUresult(err), nvSciSyncAttrList)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_nvSciSyncAttrList); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8414
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetNvSciSyncAttributes(dev not None : CUdevice, int flags):             # <<<<<<<<<<<<<<
 *     """ Return NvSciSync attributes that this device can support.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetNvSciSyncAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8468
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetMemPool(dev not None : CUdevice, pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Sets the current memory pool of a device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_29cuDeviceSetMemPool(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_28cuDeviceSetMemPool[] = "cuDeviceSetMemPool(CUdevice dev: CUdevice, CUmemoryPool pool: CUmemoryPool)\n Sets the current memory pool of a device.\n\n    The memory pool must be local to the specified device. cuMemAllocAsync\n    allocates from the current mempool of the provided stream's device. By\n    default, a device's current memory pool is its default memory pool.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    cuMemPoolDestroy\n    cuMemAllocFromPoolAsync\n\n    Notes\n    -----\n    Use cuMemAllocFromPoolAsync to specify asynchronous allocations from a device different than the one the stream runs on.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_29cuDeviceSetMemPool = {"cuDeviceSetMemPool", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_29cuDeviceSetMemPool, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_28cuDeviceSetMemPool};
static PyObject *__pyx_pw_4cuda_4cuda_29cuDeviceSetMemPool(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceSetMemPool (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dev,&__pyx_n_s_pool,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceSetMemPool", 1, 2, 2, 1); __PYX_ERR(0, 8468, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceSetMemPool") < 0)) __PYX_ERR(0, 8468, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[0]);
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceSetMemPool", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8468, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceSetMemPool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8468, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 8468, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_28cuDeviceSetMemPool(__pyx_self, __pyx_v_dev, __pyx_v_pool);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_28cuDeviceSetMemPool(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__525)
  __Pyx_RefNannySetupContext("cuDeviceSetMemPool", 0);
  __Pyx_TraceCall("cuDeviceSetMemPool", __pyx_f[0], 8468, 0, __PYX_ERR(0, 8468, __pyx_L1_error));

  /* "cuda/cuda.pyx":8496
 * 
 *     """
 *     err = ccuda.cuDeviceSetMemPool(dev._ptr[0], pool._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceSetMemPool((__pyx_v_dev->_ptr[0]), (__pyx_v_pool->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8496, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8497
 *     """
 *     err = ccuda.cuDeviceSetMemPool(dev._ptr[0], pool._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8468
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetMemPool(dev not None : CUdevice, pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Sets the current memory pool of a device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceSetMemPool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8500
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Gets the current mempool for a device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_31cuDeviceGetMemPool(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_30cuDeviceGetMemPool[] = "cuDeviceGetMemPool(CUdevice dev: CUdevice)\n Gets the current mempool for a device.\n\n    Returns the last pool provided to cuDeviceSetMemPool for this device or\n    the device's default memory pool if cuDeviceSetMemPool has never been\n    called. By default the current mempool is the default mempool for a\n    device. Otherwise the returned pool must have been set with\n    cuDeviceSetMemPool.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuDeviceGetDefaultMemPool\n    cuMemPoolCreate\n    cuDeviceSetMemPool\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_31cuDeviceGetMemPool = {"cuDeviceGetMemPool", (PyCFunction)__pyx_pw_4cuda_4cuda_31cuDeviceGetMemPool, METH_O, __pyx_doc_4cuda_4cuda_30cuDeviceGetMemPool};
static PyObject *__pyx_pw_4cuda_4cuda_31cuDeviceGetMemPool(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetMemPool (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8500, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_30cuDeviceGetMemPool(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_30cuDeviceGetMemPool(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__526)
  __Pyx_RefNannySetupContext("cuDeviceGetMemPool", 0);
  __Pyx_TraceCall("cuDeviceGetMemPool", __pyx_f[0], 8500, 0, __PYX_ERR(0, 8500, __pyx_L1_error));

  /* "cuda/cuda.pyx":8523
 *     cuDeviceSetMemPool
 *     """
 *     cdef CUmemoryPool pool = CUmemoryPool()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetMemPool(pool._ptr, dev._ptr[0])
 *     return (CUresult(err), pool)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemoryPool)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8524
 *     """
 *     cdef CUmemoryPool pool = CUmemoryPool()
 *     err = ccuda.cuDeviceGetMemPool(pool._ptr, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pool)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGetMemPool(__pyx_v_pool->_ptr, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8524, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":8525
 *     cdef CUmemoryPool pool = CUmemoryPool()
 *     err = ccuda.cuDeviceGetMemPool(pool._ptr, dev._ptr[0])
 *     return (CUresult(err), pool)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pool));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pool));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pool));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8500
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Gets the current mempool for a device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetMemPool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pool);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8528
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetDefaultMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the default mempool of a device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_33cuDeviceGetDefaultMemPool(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_32cuDeviceGetDefaultMemPool[] = "cuDeviceGetDefaultMemPool(CUdevice dev: CUdevice)\n Returns the default mempool of a device.\n\n    The default mempool of a device contains device memory from that\n    device.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemPoolTrimTo\n    cuMemPoolGetAttribute\n    cuMemPoolSetAttribute\n    cuMemPoolSetAccess\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_33cuDeviceGetDefaultMemPool = {"cuDeviceGetDefaultMemPool", (PyCFunction)__pyx_pw_4cuda_4cuda_33cuDeviceGetDefaultMemPool, METH_O, __pyx_doc_4cuda_4cuda_32cuDeviceGetDefaultMemPool};
static PyObject *__pyx_pw_4cuda_4cuda_33cuDeviceGetDefaultMemPool(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetDefaultMemPool (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8528, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_32cuDeviceGetDefaultMemPool(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_32cuDeviceGetDefaultMemPool(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__527)
  __Pyx_RefNannySetupContext("cuDeviceGetDefaultMemPool", 0);
  __Pyx_TraceCall("cuDeviceGetDefaultMemPool", __pyx_f[0], 8528, 0, __PYX_ERR(0, 8528, __pyx_L1_error));

  /* "cuda/cuda.pyx":8556
 *     cuMemPoolCreate
 *     """
 *     cdef CUmemoryPool pool_out = CUmemoryPool()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetDefaultMemPool(pool_out._ptr, dev._ptr[0])
 *     return (CUresult(err), pool_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemoryPool)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pool_out = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8557
 *     """
 *     cdef CUmemoryPool pool_out = CUmemoryPool()
 *     err = ccuda.cuDeviceGetDefaultMemPool(pool_out._ptr, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pool_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGetDefaultMemPool(__pyx_v_pool_out->_ptr, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8557, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":8558
 *     cdef CUmemoryPool pool_out = CUmemoryPool()
 *     err = ccuda.cuDeviceGetDefaultMemPool(pool_out._ptr, dev._ptr[0])
 *     return (CUresult(err), pool_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pool_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pool_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pool_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8528
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetDefaultMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the default mempool of a device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetDefaultMemPool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pool_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8561
 * 
 * @cython.embedsignature(True)
 * def cuFlushGPUDirectRDMAWrites(target not None : CUflushGPUDirectRDMAWritesTarget, scope not None : CUflushGPUDirectRDMAWritesScope):             # <<<<<<<<<<<<<<
 *     """ Blocks until remote writes are visible to the specified scope.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_35cuFlushGPUDirectRDMAWrites(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_34cuFlushGPUDirectRDMAWrites[] = "cuFlushGPUDirectRDMAWrites(target: CUflushGPUDirectRDMAWritesTarget, scope: CUflushGPUDirectRDMAWritesScope)\n Blocks until remote writes are visible to the specified scope.\n\n    Blocks until GPUDirect RDMA writes to the target context via mappings\n    created through APIs like nvidia_p2p_get_pages (see\n    https://docs.nvidia.com/cuda/gpudirect-rdma for more information), are\n    visible to the specified scope.\n\n    If the scope equals or lies within the scope indicated by\n    CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING, the call will be a\n    no-op and can be safely omitted for performance. This can be determined\n    by comparing the numerical values between the two enums, with smaller\n    scopes having smaller values.\n\n    Users may query support for this API via\n    CU_DEVICE_ATTRIBUTE_FLUSH_FLUSH_GPU_DIRECT_RDMA_OPTIONS.\n\n    Parameters\n    ----------\n    target : CUflushGPUDirectRDMAWritesTarget\n        The target of the operation, see CUflushGPUDirectRDMAWritesTarget\n    scope : CUflushGPUDirectRDMAWritesScope\n        The scope of the operation, see CUflushGPUDirectRDMAWritesScope\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_35cuFlushGPUDirectRDMAWrites = {"cuFlushGPUDirectRDMAWrites", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_35cuFlushGPUDirectRDMAWrites, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_34cuFlushGPUDirectRDMAWrites};
static PyObject *__pyx_pw_4cuda_4cuda_35cuFlushGPUDirectRDMAWrites(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_scope = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFlushGPUDirectRDMAWrites (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,&__pyx_n_s_scope,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_target)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scope)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFlushGPUDirectRDMAWrites", 1, 2, 2, 1); __PYX_ERR(0, 8561, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFlushGPUDirectRDMAWrites") < 0)) __PYX_ERR(0, 8561, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_target = values[0];
    __pyx_v_scope = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFlushGPUDirectRDMAWrites", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8561, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFlushGPUDirectRDMAWrites", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_target) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "target"); __PYX_ERR(0, 8561, __pyx_L1_error)
  }
  if (unlikely(((PyObject *)__pyx_v_scope) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "scope"); __PYX_ERR(0, 8561, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_34cuFlushGPUDirectRDMAWrites(__pyx_self, __pyx_v_target, __pyx_v_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_34cuFlushGPUDirectRDMAWrites(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target, PyObject *__pyx_v_scope) {
  __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget __pyx_v_ctarget;
  __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope __pyx_v_cscope;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__528)
  __Pyx_RefNannySetupContext("cuFlushGPUDirectRDMAWrites", 0);
  __Pyx_TraceCall("cuFlushGPUDirectRDMAWrites", __pyx_f[0], 8561, 0, __PYX_ERR(0, 8561, __pyx_L1_error));

  /* "cuda/cuda.pyx":8596
 *         None
 *     """
 *     cdef ccuda.CUflushGPUDirectRDMAWritesTarget ctarget = target.value             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUflushGPUDirectRDMAWritesScope cscope = scope.value
 *     err = ccuda.cuFlushGPUDirectRDMAWrites(ctarget, cscope)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 8596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ctarget = __pyx_t_2;

  /* "cuda/cuda.pyx":8597
 *     """
 *     cdef ccuda.CUflushGPUDirectRDMAWritesTarget ctarget = target.value
 *     cdef ccuda.CUflushGPUDirectRDMAWritesScope cscope = scope.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuFlushGPUDirectRDMAWrites(ctarget, cscope)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_scope, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = ((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 8597, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cscope = __pyx_t_3;

  /* "cuda/cuda.pyx":8598
 *     cdef ccuda.CUflushGPUDirectRDMAWritesTarget ctarget = target.value
 *     cdef ccuda.CUflushGPUDirectRDMAWritesScope cscope = scope.value
 *     err = ccuda.cuFlushGPUDirectRDMAWrites(ctarget, cscope)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuFlushGPUDirectRDMAWrites(__pyx_v_ctarget, __pyx_v_cscope); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8598, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":8599
 *     cdef ccuda.CUflushGPUDirectRDMAWritesScope cscope = scope.value
 *     err = ccuda.cuFlushGPUDirectRDMAWrites(ctarget, cscope)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8561
 * 
 * @cython.embedsignature(True)
 * def cuFlushGPUDirectRDMAWrites(target not None : CUflushGPUDirectRDMAWritesTarget, scope not None : CUflushGPUDirectRDMAWritesScope):             # <<<<<<<<<<<<<<
 *     """ Blocks until remote writes are visible to the specified scope.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuFlushGPUDirectRDMAWrites", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8602
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetProperties(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns properties for a selected device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_37cuDeviceGetProperties(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_36cuDeviceGetProperties[] = "cuDeviceGetProperties(CUdevice dev: CUdevice)\n Returns properties for a selected device.\n\n    Deprecated\n\n    This function was deprecated as of CUDA 5.0 and replaced by\n    cuDeviceGetAttribute().\n\n    Returns in `*prop` the properties of device `dev`. The CUdevprop\n    structure is defined as:\n\n    typedefstructCUdevprop_st{ intmaxThreadsPerBlock; intmaxThreadsDim[3];\n    intmaxGridSize[3]; intsharedMemPerBlock; inttotalConstantMemory;\n    intSIMDWidth; intmemPitch; intregsPerBlock; intclockRate;\n    inttextureAlign }CUdevprop; where:\n\n    ::maxThreadsPerBlock is the maximum number of threads per block;\n    ::maxThreadsDim[3] is the maximum sizes of each dimension of a block;\n    ::maxGridSize[3] is the maximum sizes of each dimension of a grid;\n    ::sharedMemPerBlock is the total amount of shared memory available per\n    block in bytes; ::totalConstantMemory is the total amount of constant\n    memory available on the device in bytes; ::SIMDWidth is the warp size;\n    ::memPitch is the maximum pitch allowed by the memory copy functions\n    that involve memory regions allocated through cuMemAllocPitch();\n    ::regsPerBlock is the total number of registers available per block;\n    ::clockRate is the clock frequency in kilohertz; ::textureAlign is the\n    alignment requirement; texture base addresses that are aligned to\n    textureAlign bytes do not need an offset applied to texture fetches.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device to get properties for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    prop : CUdevprop\n        Returned properties of device\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_37cuDeviceGetProperties = {"cuDeviceGetProperties", (PyCFunction)__pyx_pw_4cuda_4cuda_37cuDeviceGetProperties, METH_O, __pyx_doc_4cuda_4cuda_36cuDeviceGetProperties};
static PyObject *__pyx_pw_4cuda_4cuda_37cuDeviceGetProperties(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetProperties (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8602, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_36cuDeviceGetProperties(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_36cuDeviceGetProperties(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUdevprop *__pyx_v_prop = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__529)
  __Pyx_RefNannySetupContext("cuDeviceGetProperties", 0);
  __Pyx_TraceCall("cuDeviceGetProperties", __pyx_f[0], 8602, 0, __PYX_ERR(0, 8602, __pyx_L1_error));

  /* "cuda/cuda.pyx":8657
 *     cuDeviceTotalMem
 *     """
 *     cdef CUdevprop prop = CUdevprop()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetProperties(prop._ptr, dev._ptr[0])
 *     return (CUresult(err), prop)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevprop)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_prop = ((struct __pyx_obj_4cuda_4cuda_CUdevprop *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8658
 *     """
 *     cdef CUdevprop prop = CUdevprop()
 *     err = ccuda.cuDeviceGetProperties(prop._ptr, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), prop)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGetProperties(__pyx_v_prop->__pyx_base._ptr, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8658, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":8659
 *     cdef CUdevprop prop = CUdevprop()
 *     err = ccuda.cuDeviceGetProperties(prop._ptr, dev._ptr[0])
 *     return (CUresult(err), prop)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_prop));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_prop));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_prop));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8602
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetProperties(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns properties for a selected device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetProperties", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_prop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8662
 * 
 * @cython.embedsignature(True)
 * def cuDeviceComputeCapability(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the compute capability of the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_39cuDeviceComputeCapability(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_38cuDeviceComputeCapability[] = "cuDeviceComputeCapability(CUdevice dev: CUdevice)\n Returns the compute capability of the device.\n\n    Deprecated\n\n    This function was deprecated as of CUDA 5.0 and its functionality\n    superceded by cuDeviceGetAttribute().\n\n    Returns in `*major` and `*minor` the major and minor revision numbers\n    that define the compute capability of the device `dev`.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device handle\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    major : int\n        Major revision number\n    minor : int\n        Minor revision number\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_39cuDeviceComputeCapability = {"cuDeviceComputeCapability", (PyCFunction)__pyx_pw_4cuda_4cuda_39cuDeviceComputeCapability, METH_O, __pyx_doc_4cuda_4cuda_38cuDeviceComputeCapability};
static PyObject *__pyx_pw_4cuda_4cuda_39cuDeviceComputeCapability(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceComputeCapability (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8662, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_38cuDeviceComputeCapability(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_38cuDeviceComputeCapability(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  int __pyx_v_major;
  int __pyx_v_minor;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__530)
  __Pyx_RefNannySetupContext("cuDeviceComputeCapability", 0);
  __Pyx_TraceCall("cuDeviceComputeCapability", __pyx_f[0], 8662, 0, __PYX_ERR(0, 8662, __pyx_L1_error));

  /* "cuda/cuda.pyx":8701
 *     cuDeviceTotalMem
 *     """
 *     cdef int major = 0             # <<<<<<<<<<<<<<
 *     cdef int minor = 0
 *     err = ccuda.cuDeviceComputeCapability(&major, &minor, dev._ptr[0])
 */
  __pyx_v_major = 0;

  /* "cuda/cuda.pyx":8702
 *     """
 *     cdef int major = 0
 *     cdef int minor = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceComputeCapability(&major, &minor, dev._ptr[0])
 *     return (CUresult(err), major, minor)
 */
  __pyx_v_minor = 0;

  /* "cuda/cuda.pyx":8703
 *     cdef int major = 0
 *     cdef int minor = 0
 *     err = ccuda.cuDeviceComputeCapability(&major, &minor, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), major, minor)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceComputeCapability((&__pyx_v_major), (&__pyx_v_minor), (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8703, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8704
 *     cdef int minor = 0
 *     err = ccuda.cuDeviceComputeCapability(&major, &minor, dev._ptr[0])
 *     return (CUresult(err), major, minor)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_major); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_minor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8662
 * 
 * @cython.embedsignature(True)
 * def cuDeviceComputeCapability(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the compute capability of the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceComputeCapability", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8707
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRetain(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Retain the primary context on the GPU.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_41cuDevicePrimaryCtxRetain(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_40cuDevicePrimaryCtxRetain[] = "cuDevicePrimaryCtxRetain(CUdevice dev: CUdevice)\n Retain the primary context on the GPU.\n\n    Retains the primary context on the device. Once the user successfully\n    retains the primary context, the primary context will be active and\n    available to the user until the user releases it with\n    cuDevicePrimaryCtxRelease() or resets it with\n    cuDevicePrimaryCtxReset(). Unlike cuCtxCreate() the newly retained\n    context is not pushed onto the stack.\n\n    Retaining the primary context for the first time will fail with\n    CUDA_ERROR_UNKNOWN if the compute mode of the device is\n    CU_COMPUTEMODE_PROHIBITED. The function cuDeviceGetAttribute() can be\n    used with CU_DEVICE_ATTRIBUTE_COMPUTE_MODE to determine the compute\n    mode of the device. The nvidia-smi tool can be used to set the compute\n    mode for devices. Documentation for nvidia-smi can be obtained by\n    passing a -h option to it.\n\n    Please note that the primary context always supports pinned\n    allocations. Other flags can be specified by\n    cuDevicePrimaryCtxSetFlags().\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device for which primary context is requested\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_UNKNOWN\n    pctx : CUcontext\n        Returned context handle of the new context\n\n    See Also\n    --------\n    cuDevicePrimaryCtxRelease\n    cuDevicePrimaryCtxSetFlags\n    cuCtxCreate\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_41cuDevicePrimaryCtxRetain = {"cuDevicePrimaryCtxRetain", (PyCFunction)__pyx_pw_4cuda_4cuda_41cuDevicePrimaryCtxRetain, METH_O, __pyx_doc_4cuda_4cuda_40cuDevicePrimaryCtxRetain};
static PyObject *__pyx_pw_4cuda_4cuda_41cuDevicePrimaryCtxRetain(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxRetain (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8707, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_40cuDevicePrimaryCtxRetain(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_40cuDevicePrimaryCtxRetain(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__531)
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxRetain", 0);
  __Pyx_TraceCall("cuDevicePrimaryCtxRetain", __pyx_f[0], 8707, 0, __PYX_ERR(0, 8707, __pyx_L1_error));

  /* "cuda/cuda.pyx":8764
 *     cuCtxSynchronize
 *     """
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDevicePrimaryCtxRetain(pctx._ptr, dev._ptr[0])
 *     return (CUresult(err), pctx)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8765
 *     """
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuDevicePrimaryCtxRetain(pctx._ptr, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxRetain(__pyx_v_pctx->_ptr, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8765, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":8766
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuDevicePrimaryCtxRetain(pctx._ptr, dev._ptr[0])
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8707
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRetain(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Retain the primary context on the GPU.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDevicePrimaryCtxRetain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8769
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRelease(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Release the primary context on the GPU.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_43cuDevicePrimaryCtxRelease(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_42cuDevicePrimaryCtxRelease[] = "cuDevicePrimaryCtxRelease(CUdevice dev: CUdevice)\n Release the primary context on the GPU.\n\n    Releases the primary context interop on the device. A retained context\n    should always be released once the user is done using it. The context\n    is automatically reset once the last reference to it is released. This\n    behavior is different when the primary context was retained by the CUDA\n    runtime from CUDA 4.0 and earlier. In this case, the primary context\n    remains always active.\n\n    Releasing a primary context that has not been previously retained will\n    fail with CUDA_ERROR_INVALID_CONTEXT.\n\n    Please note that unlike cuCtxDestroy() this method does not pop the\n    context from stack in any circumstances.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device which primary context is released\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuDevicePrimaryCtxRetain\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_43cuDevicePrimaryCtxRelease = {"cuDevicePrimaryCtxRelease", (PyCFunction)__pyx_pw_4cuda_4cuda_43cuDevicePrimaryCtxRelease, METH_O, __pyx_doc_4cuda_4cuda_42cuDevicePrimaryCtxRelease};
static PyObject *__pyx_pw_4cuda_4cuda_43cuDevicePrimaryCtxRelease(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxRelease (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8769, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_42cuDevicePrimaryCtxRelease(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_42cuDevicePrimaryCtxRelease(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__532)
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxRelease", 0);
  __Pyx_TraceCall("cuDevicePrimaryCtxRelease", __pyx_f[0], 8769, 0, __PYX_ERR(0, 8769, __pyx_L1_error));

  /* "cuda/cuda.pyx":8816
 *     cuCtxSynchronize
 *     """
 *     err = ccuda.cuDevicePrimaryCtxRelease(dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxRelease((__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8816, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8817
 *     """
 *     err = ccuda.cuDevicePrimaryCtxRelease(dev._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8769
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRelease(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Release the primary context on the GPU.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDevicePrimaryCtxRelease", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8820
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxSetFlags(dev not None : CUdevice, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set flags for the primary context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_45cuDevicePrimaryCtxSetFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_44cuDevicePrimaryCtxSetFlags[] = "cuDevicePrimaryCtxSetFlags(CUdevice dev: CUdevice, unsigned int flags)\n Set flags for the primary context.\n\n    Sets the flags for the primary context on the device overwriting\n    perviously set ones.\n\n    The three LSBs of the `flags` parameter can be used to control how the\n    OS thread, which owns the CUDA context at the time of an API call,\n    interacts with the OS scheduler when waiting for results from the GPU.\n    Only one of the scheduling flags can be set when creating a context.\n\n    CU_CTX_SCHED_SPIN: Instruct CUDA to actively spin when waiting for\n    results from the GPU. This can decrease latency when waiting for the\n    GPU, but may lower the performance of CPU threads if they are\n    performing work in parallel with the CUDA thread. CU_CTX_SCHED_YIELD:\n    Instruct CUDA to yield its thread when waiting for results from the\n    GPU. This can increase latency when waiting for the GPU, but can\n    increase the performance of CPU threads performing work in parallel\n    with the GPU. CU_CTX_SCHED_BLOCKING_SYNC: Instruct CUDA to block the\n    CPU thread on a synchronization primitive when waiting for the GPU to\n    finish work. CU_CTX_BLOCKING_SYNC: Instruct CUDA to block the CPU\n    thread on a synchronization primitive when waiting for the GPU to\n    finish work.  Deprecated: This flag was deprecated as of CUDA 4.0 and\n    was replaced with CU_CTX_SCHED_BLOCKING_SYNC. CU_CTX_SCHED_AUTO: The\n    default value if the `flags` parameter is zero, uses a heuristic based\n    on the number of active CUDA contexts in the process C and the number\n    of logical processors in the system P. If C > P, then CUDA will yield\n    to other OS threads when waiting for the GPU (CU_CTX_SCHED_YIELD),\n    otherwise CUDA will not yield while waiting for results and actively\n    spin on the processor (CU_CTX_SCHED_SPIN). Additionally, on Tegra\n    devices, CU_CTX_SCHED_AUTO uses a heuristic based on the power profile\n    of the platform and may ""choose CU_CTX_SCHED_BLOCKING_SYNC for low-\n    powered devices. CU_CTX_LMEM_RESIZE_TO_MAX: Instruct CUDA to not reduce\n    local memory after resizing local memory for a kernel. This can prevent\n    thrashing by local memory allocations when launching many kernels with\n    high local memory usage at the cost of potentially increased memory\n    usage.  Deprecated: This flag is deprecated and the behavior enabled by\n    this flag is now the default and cannot be disabled.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device for which the primary context flags are set\n    flags : unsigned int\n        New flags for the device\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuDevicePrimaryCtxRetain\n    cuDevicePrimaryCtxGetState\n    cuCtxCreate\n    cuCtxGetFlags\n    cudaSetDeviceFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_45cuDevicePrimaryCtxSetFlags = {"cuDevicePrimaryCtxSetFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_45cuDevicePrimaryCtxSetFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_44cuDevicePrimaryCtxSetFlags};
static PyObject *__pyx_pw_4cuda_4cuda_45cuDevicePrimaryCtxSetFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxSetFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dev,&__pyx_n_s_flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDevicePrimaryCtxSetFlags", 1, 2, 2, 1); __PYX_ERR(0, 8820, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDevicePrimaryCtxSetFlags") < 0)) __PYX_ERR(0, 8820, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[0]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 8820, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDevicePrimaryCtxSetFlags", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8820, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDevicePrimaryCtxSetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8820, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_44cuDevicePrimaryCtxSetFlags(__pyx_self, __pyx_v_dev, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_44cuDevicePrimaryCtxSetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__533)
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxSetFlags", 0);
  __Pyx_TraceCall("cuDevicePrimaryCtxSetFlags", __pyx_f[0], 8820, 0, __PYX_ERR(0, 8820, __pyx_L1_error));

  /* "cuda/cuda.pyx":8885
 *     cudaSetDeviceFlags
 *     """
 *     err = ccuda.cuDevicePrimaryCtxSetFlags(dev._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxSetFlags((__pyx_v_dev->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8885, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8886
 *     """
 *     err = ccuda.cuDevicePrimaryCtxSetFlags(dev._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8820
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxSetFlags(dev not None : CUdevice, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set flags for the primary context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDevicePrimaryCtxSetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8889
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxGetState(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Get the state of the primary context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_47cuDevicePrimaryCtxGetState(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_46cuDevicePrimaryCtxGetState[] = "cuDevicePrimaryCtxGetState(CUdevice dev: CUdevice)\n Get the state of the primary context.\n\n    Returns in `*flags` the flags for the primary context of `dev`, and in\n    `*active` whether it is active. See cuDevicePrimaryCtxSetFlags for flag\n    values.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device to get primary context flags for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_VALUE\n    flags : unsigned int\n        Pointer to store flags\n    active : int\n        Pointer to store context state; 0 = inactive, 1 = active\n\n    See Also\n    --------\n    cuDevicePrimaryCtxSetFlags\n    cuCtxGetFlags\n    cudaGetDeviceFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_47cuDevicePrimaryCtxGetState = {"cuDevicePrimaryCtxGetState", (PyCFunction)__pyx_pw_4cuda_4cuda_47cuDevicePrimaryCtxGetState, METH_O, __pyx_doc_4cuda_4cuda_46cuDevicePrimaryCtxGetState};
static PyObject *__pyx_pw_4cuda_4cuda_47cuDevicePrimaryCtxGetState(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxGetState (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8889, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_46cuDevicePrimaryCtxGetState(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_46cuDevicePrimaryCtxGetState(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  unsigned int __pyx_v_flags;
  int __pyx_v_active;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__534)
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxGetState", 0);
  __Pyx_TraceCall("cuDevicePrimaryCtxGetState", __pyx_f[0], 8889, 0, __PYX_ERR(0, 8889, __pyx_L1_error));

  /* "cuda/cuda.pyx":8920
 *     cudaGetDeviceFlags
 *     """
 *     cdef unsigned int flags = 0             # <<<<<<<<<<<<<<
 *     cdef int active = 0
 *     err = ccuda.cuDevicePrimaryCtxGetState(dev._ptr[0], &flags, &active)
 */
  __pyx_v_flags = 0;

  /* "cuda/cuda.pyx":8921
 *     """
 *     cdef unsigned int flags = 0
 *     cdef int active = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDevicePrimaryCtxGetState(dev._ptr[0], &flags, &active)
 *     return (CUresult(err), flags, active)
 */
  __pyx_v_active = 0;

  /* "cuda/cuda.pyx":8922
 *     cdef unsigned int flags = 0
 *     cdef int active = 0
 *     err = ccuda.cuDevicePrimaryCtxGetState(dev._ptr[0], &flags, &active)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), flags, active)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxGetState((__pyx_v_dev->_ptr[0]), (&__pyx_v_flags), (&__pyx_v_active)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8922, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8923
 *     cdef int active = 0
 *     err = ccuda.cuDevicePrimaryCtxGetState(dev._ptr[0], &flags, &active)
 *     return (CUresult(err), flags, active)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_active); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8889
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxGetState(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Get the state of the primary context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDevicePrimaryCtxGetState", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8926
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxReset(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Destroy all allocations and reset all state on the primary context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_49cuDevicePrimaryCtxReset(PyObject *__pyx_self, PyObject *__pyx_v_dev); /*proto*/
static char __pyx_doc_4cuda_4cuda_48cuDevicePrimaryCtxReset[] = "cuDevicePrimaryCtxReset(CUdevice dev: CUdevice)\n Destroy all allocations and reset all state on the primary context.\n\n    Explicitly destroys and cleans up all resources associated with the\n    current device in the current process.\n\n    Note that it is responsibility of the calling function to ensure that\n    no other module in the process is using the device any more. For that\n    reason it is recommended to use cuDevicePrimaryCtxRelease() in most\n    cases. However it is safe for other modules to call\n    cuDevicePrimaryCtxRelease() even after resetting the device. Resetting\n    the primary context does not release it, an application that has\n    retained the primary context should explicitly release its usage.\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device for which primary context is destroyed\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE\n    None\n        None\n\n    See Also\n    --------\n    cuDevicePrimaryCtxRetain\n    cuDevicePrimaryCtxRelease\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cudaDeviceReset\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_49cuDevicePrimaryCtxReset = {"cuDevicePrimaryCtxReset", (PyCFunction)__pyx_pw_4cuda_4cuda_49cuDevicePrimaryCtxReset, METH_O, __pyx_doc_4cuda_4cuda_48cuDevicePrimaryCtxReset};
static PyObject *__pyx_pw_4cuda_4cuda_49cuDevicePrimaryCtxReset(PyObject *__pyx_self, PyObject *__pyx_v_dev) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxReset (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8926, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_48cuDevicePrimaryCtxReset(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_dev));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_48cuDevicePrimaryCtxReset(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__535)
  __Pyx_RefNannySetupContext("cuDevicePrimaryCtxReset", 0);
  __Pyx_TraceCall("cuDevicePrimaryCtxReset", __pyx_f[0], 8926, 0, __PYX_ERR(0, 8926, __pyx_L1_error));

  /* "cuda/cuda.pyx":8972
 *     cudaDeviceReset
 *     """
 *     err = ccuda.cuDevicePrimaryCtxReset(dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxReset((__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 8972, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":8973
 *     """
 *     err = ccuda.cuDevicePrimaryCtxReset(dev._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8926
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxReset(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Destroy all allocations and reset all state on the primary context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDevicePrimaryCtxReset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":8976
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetExecAffinitySupport(typename not None : CUexecAffinityType, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the execution affinity support of the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_51cuDeviceGetExecAffinitySupport(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_50cuDeviceGetExecAffinitySupport[] = "cuDeviceGetExecAffinitySupport(typename: CUexecAffinityType, CUdevice dev: CUdevice)\n Returns information about the execution affinity support of the device.\n\n    Returns in `*pi` whether execution affinity type `typename` is\n    supported by device `dev`. The supported types are:\n    CU_EXEC_AFFINITY_TYPE_SM_COUNT: 1 if context with limited SMs is\n    supported by the device, or 0 if not;\n\n    Parameters\n    ----------\n    typename : CUexecAffinityType\n        Execution affinity type to query\n    dev : CUdevice\n        Device handle\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    pi : int\n        1 if the execution affinity type `typename` is supported by the\n        device, or 0 if not\n\n    See Also\n    --------\n    cuDeviceGetAttribute\n    cuDeviceGetCount\n    cuDeviceGetName\n    cuDeviceGetUuid\n    cuDeviceGet\n    cuDeviceTotalMem\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_51cuDeviceGetExecAffinitySupport = {"cuDeviceGetExecAffinitySupport", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_51cuDeviceGetExecAffinitySupport, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_50cuDeviceGetExecAffinitySupport};
static PyObject *__pyx_pw_4cuda_4cuda_51cuDeviceGetExecAffinitySupport(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_typename = 0;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetExecAffinitySupport (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_typename,&__pyx_n_s_dev,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typename)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetExecAffinitySupport", 1, 2, 2, 1); __PYX_ERR(0, 8976, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetExecAffinitySupport") < 0)) __PYX_ERR(0, 8976, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_typename = values[0];
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetExecAffinitySupport", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 8976, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetExecAffinitySupport", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_typename) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "typename"); __PYX_ERR(0, 8976, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 8976, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_50cuDeviceGetExecAffinitySupport(__pyx_self, __pyx_v_typename, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_50cuDeviceGetExecAffinitySupport(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_typename, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  int __pyx_v_pi;
  __pyx_t_4cuda_5ccuda_CUexecAffinityType __pyx_v_ctypename;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUexecAffinityType __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__536)
  __Pyx_RefNannySetupContext("cuDeviceGetExecAffinitySupport", 0);
  __Pyx_TraceCall("cuDeviceGetExecAffinitySupport", __pyx_f[0], 8976, 0, __PYX_ERR(0, 8976, __pyx_L1_error));

  /* "cuda/cuda.pyx":9013
 *     cuDeviceTotalMem
 *     """
 *     cdef int pi = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value
 *     err = ccuda.cuDeviceGetExecAffinitySupport(&pi, ctypename, dev._ptr[0])
 */
  __pyx_v_pi = 0;

  /* "cuda/cuda.pyx":9014
 *     """
 *     cdef int pi = 0
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetExecAffinitySupport(&pi, ctypename, dev._ptr[0])
 *     return (CUresult(err), pi)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 9014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ctypename = __pyx_t_2;

  /* "cuda/cuda.pyx":9015
 *     cdef int pi = 0
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value
 *     err = ccuda.cuDeviceGetExecAffinitySupport(&pi, ctypename, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pi)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuDeviceGetExecAffinitySupport((&__pyx_v_pi), __pyx_v_ctypename, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9015, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":9016
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value
 *     err = ccuda.cuDeviceGetExecAffinitySupport(&pi, ctypename, dev._ptr[0])
 *     return (CUresult(err), pi)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":8976
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetExecAffinitySupport(typename not None : CUexecAffinityType, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the execution affinity support of the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetExecAffinitySupport", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9019
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate(unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_53cuCtxCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_52cuCtxCreate[] = "cuCtxCreate(unsigned int flags, CUdevice dev: CUdevice)\n Create a CUDA context.\n\n    The three LSBs of the `flags` parameter can be used to control how the\n    OS thread, which owns the CUDA context at the time of an API call,\n    interacts with the OS scheduler when waiting for results from the GPU.\n    Only one of the scheduling flags can be set when creating a context.\n\n    CU_CTX_SCHED_SPIN: Instruct CUDA to actively spin when waiting for\n    results from the GPU. This can decrease latency when waiting for the\n    GPU, but may lower the performance of CPU threads if they are\n    performing work in parallel with the CUDA thread. CU_CTX_SCHED_YIELD:\n    Instruct CUDA to yield its thread when waiting for results from the\n    GPU. This can increase latency when waiting for the GPU, but can\n    increase the performance of CPU threads performing work in parallel\n    with the GPU. CU_CTX_SCHED_BLOCKING_SYNC: Instruct CUDA to block the\n    CPU thread on a synchronization primitive when waiting for the GPU to\n    finish work. CU_CTX_BLOCKING_SYNC: Instruct CUDA to block the CPU\n    thread on a synchronization primitive when waiting for the GPU to\n    finish work.  Deprecated: This flag was deprecated as of CUDA 4.0 and\n    was replaced with CU_CTX_SCHED_BLOCKING_SYNC. CU_CTX_SCHED_AUTO: The\n    default value if the `flags` parameter is zero, uses a heuristic based\n    on the number of active CUDA contexts in the process C and the number\n    of logical processors in the system P. If C > P, then CUDA will yield\n    to other OS threads when waiting for the GPU (CU_CTX_SCHED_YIELD),\n    otherwise CUDA will not yield while waiting for results and actively\n    spin on the processor (CU_CTX_SCHED_SPIN). Additionally, on Tegra\n    devices, CU_CTX_SCHED_AUTO uses a heuristic based on the power profile\n    of the platform and may choose CU_CTX_SCHED_BLOCKING_SYNC for low-\n    powered devices. CU_CTX_MAP_HOST: Instruct CUDA to support mapped\n    pinned"" allocations. This flag must be set in order to allocate pinned\n    host memory that is accessible to the GPU. CU_CTX_LMEM_RESIZE_TO_MAX:\n    Instruct CUDA to not reduce local memory after resizing local memory\n    for a kernel. This can prevent thrashing by local memory allocations\n    when launching many kernels with high local memory usage at the cost of\n    potentially increased memory usage.  Deprecated: This flag is\n    deprecated and the behavior enabled by this flag is now the default and\n    cannot be disabled. Instead, the per-thread stack size can be\n    controlled with cuCtxSetLimit().\n\n    Context creation will fail with CUDA_ERROR_UNKNOWN if the compute mode\n    of the device is CU_COMPUTEMODE_PROHIBITED. The function\n    cuDeviceGetAttribute() can be used with\n    CU_DEVICE_ATTRIBUTE_COMPUTE_MODE to determine the compute mode of the\n    device. The nvidia-smi tool can be used to set the compute mode for *\n    devices. Documentation for nvidia-smi can be obtained by passing a -h\n    option to it.\n\n    Parameters\n    ----------\n    flags : unsigned int\n        Context creation flags\n    dev : CUdevice\n        Device to create context on\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_UNKNOWN\n    pctx : CUcontext\n        Returned context handle of the new context\n\n    See Also\n    --------\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n\n    Notes\n    -----\n    In most cases it is recommended to use cuDevicePrimaryCtxRetain.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_53cuCtxCreate = {"cuCtxCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_53cuCtxCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_52cuCtxCreate};
static PyObject *__pyx_pw_4cuda_4cuda_53cuCtxCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned int __pyx_v_flags;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxCreate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags_2,&__pyx_n_s_dev,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuCtxCreate", 1, 2, 2, 1); __PYX_ERR(0, 9019, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuCtxCreate") < 0)) __PYX_ERR(0, 9019, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[0]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 9019, __pyx_L3_error)
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuCtxCreate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 9019, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuCtxCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 9019, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_52cuCtxCreate(__pyx_self, __pyx_v_flags, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_52cuCtxCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__537)
  __Pyx_RefNannySetupContext("cuCtxCreate", 0);
  __Pyx_TraceCall("cuCtxCreate", __pyx_f[0], 9019, 0, __PYX_ERR(0, 9019, __pyx_L1_error));

  /* "cuda/cuda.pyx":9107
 * 
 *     """
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxCreate(pctx._ptr, flags, dev._ptr[0])
 *     return (CUresult(err), pctx)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":9108
 *     """
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxCreate(pctx._ptr, flags, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuCtxCreate(__pyx_v_pctx->_ptr, __pyx_v_flags, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9108, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":9109
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxCreate(pctx._ptr, flags, dev._ptr[0])
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9019
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate(unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9112
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate_v3(paramsArray : List[CUexecAffinityParam], int numParams, unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context with execution affinity.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_55cuCtxCreate_v3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_54cuCtxCreate_v3[] = "cuCtxCreate_v3(paramsArray: List[CUexecAffinityParam], int numParams, unsigned int flags, CUdevice dev: CUdevice)\n Create a CUDA context with execution affinity.\n\n    Creates a new CUDA context with execution affinity and associates it\n    with the calling thread. The `paramsArray` and `flags` parameter are\n    described below. The context is created with a usage count of 1 and the\n    caller of cuCtxCreate() must call cuCtxDestroy() or when done using the\n    context. If a context is already current to the thread, it is\n    supplanted by the newly created context and may be restored by a\n    subsequent call to cuCtxPopCurrent().\n\n    The type and the amount of execution resource the context can use is\n    limited by `paramsArray` and `numParams`. The `paramsArray` is an array\n    of `CUexecAffinityParam` and the `numParams` describes the size of the\n    array. If two `CUexecAffinityParam` in the array have the same type,\n    the latter execution affinity parameter overrides the former execution\n    affinity parameter. The supported execution affinity types are:\n    CU_EXEC_AFFINITY_TYPE_SM_COUNT limits the portion of SMs that the\n    context can use. The portion of SMs is specified as the number of SMs\n    via `CUexecAffinitySmCount`. This limit will be internally rounded up\n    to the next hardware-supported amount. Hence, it is imperative to query\n    the actual execution affinity of the context via `cuCtxGetExecAffinity`\n    after context creation. Currently, this attribute is only supported\n    under Volta+ MPS.\n\n    The three LSBs of the `flags` parameter can be used to control how the\n    OS thread, which owns the CUDA context at the time of an API call,\n    interacts with the OS scheduler when waiting for results from the GPU.\n    Only one of the scheduling flags can be set when creating a context.\n\n    CU_CTX_SCHED_SPIN: Instruct CUDA to actively spin when waiting for\n    results from the GPU. This can decrease latency when wa""iting for the\n    GPU, but may lower the performance of CPU threads if they are\n    performing work in parallel with the CUDA thread. CU_CTX_SCHED_YIELD:\n    Instruct CUDA to yield its thread when waiting for results from the\n    GPU. This can increase latency when waiting for the GPU, but can\n    increase the performance of CPU threads performing work in parallel\n    with the GPU. CU_CTX_SCHED_BLOCKING_SYNC: Instruct CUDA to block the\n    CPU thread on a synchronization primitive when waiting for the GPU to\n    finish work. CU_CTX_BLOCKING_SYNC: Instruct CUDA to block the CPU\n    thread on a synchronization primitive when waiting for the GPU to\n    finish work.  Deprecated: This flag was deprecated as of CUDA 4.0 and\n    was replaced with CU_CTX_SCHED_BLOCKING_SYNC. CU_CTX_SCHED_AUTO: The\n    default value if the `flags` parameter is zero, uses a heuristic based\n    on the number of active CUDA contexts in the process C and the number\n    of logical processors in the system P. If C > P, then CUDA will yield\n    to other OS threads when waiting for the GPU (CU_CTX_SCHED_YIELD),\n    otherwise CUDA will not yield while waiting for results and actively\n    spin on the processor (CU_CTX_SCHED_SPIN). Additionally, on Tegra\n    devices, CU_CTX_SCHED_AUTO uses a heuristic based on the power profile\n    of the platform and may choose CU_CTX_SCHED_BLOCKING_SYNC for low-\n    powered devices. CU_CTX_MAP_HOST: Instruct CUDA to support mapped\n    pinned allocations. This flag must be set in order to allocate pinned\n    host memory that is accessible to the GPU. CU_CTX_LMEM_RESIZE_TO_MAX:\n    Instruct CUDA to not reduce local memory after resizing local memory\n    for a kernel. This can prevent thrashing by local memory allocations\n    when launching many kernels with high local memory usage at the cost of\n    potentially increased memory usage.  Deprecated: This flag is\n    deprecated and the behavior enabled by this flag is now the default and\n    ca""nnot be disabled. Instead, the per-thread stack size can be\n    controlled with cuCtxSetLimit().\n\n    Context creation will fail with CUDA_ERROR_UNKNOWN if the compute mode\n    of the device is CU_COMPUTEMODE_PROHIBITED. The function\n    cuDeviceGetAttribute() can be used with\n    CU_DEVICE_ATTRIBUTE_COMPUTE_MODE to determine the compute mode of the\n    device. The nvidia-smi tool can be used to set the compute mode for *\n    devices. Documentation for nvidia-smi can be obtained by passing a -h\n    option to it.\n\n    Parameters\n    ----------\n    paramsArray : List[CUexecAffinityParam]\n        Execution affinity parameters\n    numParams : int\n        Number of execution affinity parameters\n    flags : unsigned int\n        Context creation flags\n    dev : CUdevice\n        Device to create context on\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY\n        CUDA_ERROR_UNKNOWN\n    pctx : CUcontext\n        Returned context handle of the new context\n\n    See Also\n    --------\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    CUexecAffinityParam\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_55cuCtxCreate_v3 = {"cuCtxCreate_v3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_55cuCtxCreate_v3, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_54cuCtxCreate_v3};
static PyObject *__pyx_pw_4cuda_4cuda_55cuCtxCreate_v3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_paramsArray = 0;
  int __pyx_v_numParams;
  unsigned int __pyx_v_flags;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxCreate_v3 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_paramsArray_2,&__pyx_n_s_numParams,&__pyx_n_s_flags_2,&__pyx_n_s_dev,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_paramsArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuCtxCreate_v3", 1, 4, 4, 1); __PYX_ERR(0, 9112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuCtxCreate_v3", 1, 4, 4, 2); __PYX_ERR(0, 9112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuCtxCreate_v3", 1, 4, 4, 3); __PYX_ERR(0, 9112, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuCtxCreate_v3") < 0)) __PYX_ERR(0, 9112, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_paramsArray = values[0];
    __pyx_v_numParams = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_numParams == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 9112, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 9112, __pyx_L3_error)
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuCtxCreate_v3", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 9112, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuCtxCreate_v3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 9112, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_54cuCtxCreate_v3(__pyx_self, __pyx_v_paramsArray, __pyx_v_numParams, __pyx_v_flags, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_14cuCtxCreate_v3_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":9224
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 *     cdef CUcontext pctx = CUcontext()
 */

static PyObject *__pyx_pf_4cuda_4cuda_14cuCtxCreate_v3_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_1_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 9224, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_14cuCtxCreate_v3_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuCtxCreate_v3_locals_genexpr, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 9224, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuCtxCreate_v3.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_14cuCtxCreate_v3_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 9224, 0, __PYX_ERR(0, 9224, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 9224, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) { __Pyx_RaiseClosureNameError("paramsArray"); __PYX_ERR(0, 9224, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9224, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 9224, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 9224, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 9224, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUexecAffinityParam); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9112
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate_v3(paramsArray : List[CUexecAffinityParam], int numParams, unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context with execution affinity.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_54cuCtxCreate_v3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_paramsArray, int __pyx_v_numParams, unsigned int __pyx_v_flags, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUexecAffinityParam *__pyx_v_cparamsArray;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_14cuCtxCreate_v3_2generator = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__538)
  __Pyx_RefNannySetupContext("cuCtxCreate_v3", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3(__pyx_ptype_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 9112, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuCtxCreate_v3", __pyx_f[0], 9112, 0, __PYX_ERR(0, 9112, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_paramsArray = __pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramsArray);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_paramsArray);

  /* "cuda/cuda.pyx":9223
 *     CUexecAffinityParam
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_paramsArray == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramsArray);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_paramsArray);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_paramsArray, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":9224
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 *     cdef CUcontext pctx = CUcontext()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_14cuCtxCreate_v3_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 9224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":9225
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")             # <<<<<<<<<<<<<<
 *     cdef CUcontext pctx = CUcontext()
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__539, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 9225, __pyx_L1_error)

    /* "cuda/cuda.pyx":9224
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 *     cdef CUcontext pctx = CUcontext()
 */
  }

  /* "cuda/cuda.pyx":9226
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL
 *     if len(paramsArray) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9227
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")
 *     cdef CUcontext pctx = CUcontext()
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL             # <<<<<<<<<<<<<<
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))
 */
  __pyx_v_cparamsArray = NULL;

  /* "cuda/cuda.pyx":9228
 *     cdef CUcontext pctx = CUcontext()
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL
 *     if len(paramsArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))
 *         if cparamsArray is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 9228, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":9229
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))             # <<<<<<<<<<<<<<
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUexecAffinityParam)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 9229, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cparamsArray = ((__pyx_t_4cuda_5ccuda_CUexecAffinityParam *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinityParam))));

    /* "cuda/cuda.pyx":9230
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))
 *         if cparamsArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUexecAffinityParam)))
 *         for idx in range(len(paramsArray)):
 */
    __pyx_t_4 = ((__pyx_v_cparamsArray == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":9231
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUexecAffinityParam)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(paramsArray)):
 *             memcpy(&cparamsArray[idx], (<CUexecAffinityParam>paramsArray[idx])._ptr, sizeof(ccuda.CUexecAffinityParam))
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramsArray;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinityParam))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 9231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 9231, __pyx_L1_error)

      /* "cuda/cuda.pyx":9230
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))
 *         if cparamsArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUexecAffinityParam)))
 *         for idx in range(len(paramsArray)):
 */
    }

    /* "cuda/cuda.pyx":9232
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUexecAffinityParam)))
 *         for idx in range(len(paramsArray)):             # <<<<<<<<<<<<<<
 *             memcpy(&cparamsArray[idx], (<CUexecAffinityParam>paramsArray[idx])._ptr, sizeof(ccuda.CUexecAffinityParam))
 * 
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 9232, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":9233
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUexecAffinityParam)))
 *         for idx in range(len(paramsArray)):
 *             memcpy(&cparamsArray[idx], (<CUexecAffinityParam>paramsArray[idx])._ptr, sizeof(ccuda.CUexecAffinityParam))             # <<<<<<<<<<<<<<
 * 
 *     err = ccuda.cuCtxCreate_v3(pctx._ptr, (<CUexecAffinityParam>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numParams, flags, dev._ptr[0])
 */
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramsArray, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 9233, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      (void)(memcpy((&(__pyx_v_cparamsArray[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam *)__pyx_t_6)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinityParam))));
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }

    /* "cuda/cuda.pyx":9228
 *     cdef CUcontext pctx = CUcontext()
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL
 *     if len(paramsArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamsArray = <ccuda.CUexecAffinityParam*> calloc(len(paramsArray), sizeof(ccuda.CUexecAffinityParam))
 *         if cparamsArray is NULL:
 */
  }

  /* "cuda/cuda.pyx":9235
 *             memcpy(&cparamsArray[idx], (<CUexecAffinityParam>paramsArray[idx])._ptr, sizeof(ccuda.CUexecAffinityParam))
 * 
 *     err = ccuda.cuCtxCreate_v3(pctx._ptr, (<CUexecAffinityParam>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numParams, flags, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 9235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramsArray, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 9235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam *)__pyx_t_6)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cparamsArray;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuCtxCreate_v3(__pyx_v_pctx->_ptr, __pyx_t_9, __pyx_v_numParams, __pyx_v_flags, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9235, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":9236
 * 
 *     err = ccuda.cuCtxCreate_v3(pctx._ptr, (<CUexecAffinityParam>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numParams, flags, dev._ptr[0])
 *     if cparamsArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamsArray)
 *     return (CUresult(err), pctx)
 */
  __pyx_t_4 = ((__pyx_v_cparamsArray != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":9237
 *     err = ccuda.cuCtxCreate_v3(pctx._ptr, (<CUexecAffinityParam>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numParams, flags, dev._ptr[0])
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
    free(__pyx_v_cparamsArray);

    /* "cuda/cuda.pyx":9236
 * 
 *     err = ccuda.cuCtxCreate_v3(pctx._ptr, (<CUexecAffinityParam>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numParams, flags, dev._ptr[0])
 *     if cparamsArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamsArray)
 *     return (CUresult(err), pctx)
 */
  }

  /* "cuda/cuda.pyx":9238
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_6 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_11, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 9238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_6 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9112
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate_v3(paramsArray : List[CUexecAffinityParam], int numParams, unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context with execution affinity.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuCtxCreate_v3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_14cuCtxCreate_v3_2generator);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9241
 * 
 * @cython.embedsignature(True)
 * def cuCtxDestroy(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Destroy a CUDA context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_57cuCtxDestroy(PyObject *__pyx_self, PyObject *__pyx_v_ctx); /*proto*/
static char __pyx_doc_4cuda_4cuda_56cuCtxDestroy[] = "cuCtxDestroy(CUcontext ctx: CUcontext)\n Destroy a CUDA context.\n\n    Destroys the CUDA context specified by `ctx`. The context `ctx` will be\n    destroyed regardless of how many threads it is current to. It is the\n    responsibility of the calling function to ensure that no API call\n    issues using `ctx` while cuCtxDestroy() is executing.\n\n    Destroys and cleans up all resources associated with the context. It is\n    the caller's responsibility to ensure that the context or its resources\n    are not accessed or passed in subsequent API calls and doing so will\n    result in undefined behavior. These resources include CUDA types such\n    as CUmodule, CUfunction, CUstream, CUevent, CUarray, CUmipmappedArray,\n    CUtexObject, CUsurfObject, CUtexref, CUsurfref, CUgraphicsResource,\n    CUlinkState, CUexternalMemory and CUexternalSemaphore.\n\n    If `ctx` is current to the calling thread then `ctx` will also be\n    popped from the current thread's context stack (as though\n    cuCtxPopCurrent() were called). If `ctx` is current to other threads,\n    then `ctx` will remain current to those threads, and attempting to\n    access `ctx` from those threads will result in the error\n    CUDA_ERROR_CONTEXT_IS_DESTROYED.\n\n    Parameters\n    ----------\n    ctx : CUcontext\n        Context to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_57cuCtxDestroy = {"cuCtxDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_57cuCtxDestroy, METH_O, __pyx_doc_4cuda_4cuda_56cuCtxDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_57cuCtxDestroy(PyObject *__pyx_self, PyObject *__pyx_v_ctx) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 9241, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_56cuCtxDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_ctx));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_56cuCtxDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__540)
  __Pyx_RefNannySetupContext("cuCtxDestroy", 0);
  __Pyx_TraceCall("cuCtxDestroy", __pyx_f[0], 9241, 0, __PYX_ERR(0, 9241, __pyx_L1_error));

  /* "cuda/cuda.pyx":9294
 *     cuCtxSynchronize
 *     """
 *     err = ccuda.cuCtxDestroy(ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxDestroy((__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9294, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9295
 *     """
 *     err = ccuda.cuCtxDestroy(ctx._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9241
 * 
 * @cython.embedsignature(True)
 * def cuCtxDestroy(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Destroy a CUDA context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9298
 * 
 * @cython.embedsignature(True)
 * def cuCtxPushCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Pushes a context on the current CPU thread.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_59cuCtxPushCurrent(PyObject *__pyx_self, PyObject *__pyx_v_ctx); /*proto*/
static char __pyx_doc_4cuda_4cuda_58cuCtxPushCurrent[] = "cuCtxPushCurrent(CUcontext ctx: CUcontext)\n Pushes a context on the current CPU thread.\n\n    Pushes the given context `ctx` onto the CPU thread's stack of current\n    contexts. The specified context becomes the CPU thread's current\n    context, so all CUDA functions that operate on the current context are\n    affected.\n\n    The previous current context may be made current again by calling\n    cuCtxDestroy() or cuCtxPopCurrent().\n\n    Parameters\n    ----------\n    ctx : CUcontext\n        Context to push\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_59cuCtxPushCurrent = {"cuCtxPushCurrent", (PyCFunction)__pyx_pw_4cuda_4cuda_59cuCtxPushCurrent, METH_O, __pyx_doc_4cuda_4cuda_58cuCtxPushCurrent};
static PyObject *__pyx_pw_4cuda_4cuda_59cuCtxPushCurrent(PyObject *__pyx_self, PyObject *__pyx_v_ctx) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxPushCurrent (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 9298, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_58cuCtxPushCurrent(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_ctx));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_58cuCtxPushCurrent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__541)
  __Pyx_RefNannySetupContext("cuCtxPushCurrent", 0);
  __Pyx_TraceCall("cuCtxPushCurrent", __pyx_f[0], 9298, 0, __PYX_ERR(0, 9298, __pyx_L1_error));

  /* "cuda/cuda.pyx":9339
 *     cuCtxSynchronize
 *     """
 *     err = ccuda.cuCtxPushCurrent(ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxPushCurrent((__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9339, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9340
 *     """
 *     err = ccuda.cuCtxPushCurrent(ctx._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9298
 * 
 * @cython.embedsignature(True)
 * def cuCtxPushCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Pushes a context on the current CPU thread.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxPushCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9343
 * 
 * @cython.embedsignature(True)
 * def cuCtxPopCurrent():             # <<<<<<<<<<<<<<
 *     """ Pops the current CUDA context from the current CPU thread.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_61cuCtxPopCurrent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_60cuCtxPopCurrent[] = "cuCtxPopCurrent()\n Pops the current CUDA context from the current CPU thread.\n\n    Pops the current CUDA context from the CPU thread and passes back the\n    old context handle in `*pctx`. That context may then be made current to\n    a different CPU thread by calling cuCtxPushCurrent().\n\n    If a context was current to the CPU thread before cuCtxCreate() or\n    cuCtxPushCurrent() was called, this function makes that context current\n    to the CPU thread again.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n    pctx : CUcontext\n        Returned new context handle\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_61cuCtxPopCurrent = {"cuCtxPopCurrent", (PyCFunction)__pyx_pw_4cuda_4cuda_61cuCtxPopCurrent, METH_NOARGS, __pyx_doc_4cuda_4cuda_60cuCtxPopCurrent};
static PyObject *__pyx_pw_4cuda_4cuda_61cuCtxPopCurrent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxPopCurrent (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_60cuCtxPopCurrent(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_60cuCtxPopCurrent(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__542)
  __Pyx_RefNannySetupContext("cuCtxPopCurrent", 0);
  __Pyx_TraceCall("cuCtxPopCurrent", __pyx_f[0], 9343, 0, __PYX_ERR(0, 9343, __pyx_L1_error));

  /* "cuda/cuda.pyx":9378
 *     cuCtxSynchronize
 *     """
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxPopCurrent(pctx._ptr)
 *     return (CUresult(err), pctx)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":9379
 *     """
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxPopCurrent(pctx._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuCtxPopCurrent(__pyx_v_pctx->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9379, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":9380
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxPopCurrent(pctx._ptr)
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9343
 * 
 * @cython.embedsignature(True)
 * def cuCtxPopCurrent():             # <<<<<<<<<<<<<<
 *     """ Pops the current CUDA context from the current CPU thread.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxPopCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9383
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Binds the specified CUDA context to the calling CPU thread.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_63cuCtxSetCurrent(PyObject *__pyx_self, PyObject *__pyx_v_ctx); /*proto*/
static char __pyx_doc_4cuda_4cuda_62cuCtxSetCurrent[] = "cuCtxSetCurrent(CUcontext ctx: CUcontext)\n Binds the specified CUDA context to the calling CPU thread.\n\n    Binds the specified CUDA context to the calling CPU thread. If `ctx` is\n    NULL then the CUDA context previously bound to the calling CPU thread\n    is unbound and CUDA_SUCCESS is returned.\n\n    If there exists a CUDA context stack on the calling CPU thread, this\n    will replace the top of that stack with `ctx`. If `ctx` is NULL then\n    this will be equivalent to popping the top of the calling CPU thread's\n    CUDA context stack (or a no-op if the calling CPU thread's CUDA context\n    stack is empty).\n\n    Parameters\n    ----------\n    ctx : CUcontext\n        Context to bind to the calling CPU thread\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCurrent\n    cuCtxCreate\n    cuCtxDestroy\n    cudaSetDevice\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_63cuCtxSetCurrent = {"cuCtxSetCurrent", (PyCFunction)__pyx_pw_4cuda_4cuda_63cuCtxSetCurrent, METH_O, __pyx_doc_4cuda_4cuda_62cuCtxSetCurrent};
static PyObject *__pyx_pw_4cuda_4cuda_63cuCtxSetCurrent(PyObject *__pyx_self, PyObject *__pyx_v_ctx) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxSetCurrent (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 9383, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_62cuCtxSetCurrent(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_ctx));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_62cuCtxSetCurrent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__543)
  __Pyx_RefNannySetupContext("cuCtxSetCurrent", 0);
  __Pyx_TraceCall("cuCtxSetCurrent", __pyx_f[0], 9383, 0, __PYX_ERR(0, 9383, __pyx_L1_error));

  /* "cuda/cuda.pyx":9418
 *     cudaSetDevice
 *     """
 *     err = ccuda.cuCtxSetCurrent(ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxSetCurrent((__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9418, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9419
 *     """
 *     err = ccuda.cuCtxSetCurrent(ctx._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9383
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Binds the specified CUDA context to the calling CPU thread.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxSetCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9422
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCurrent():             # <<<<<<<<<<<<<<
 *     """ Returns the CUDA context bound to the calling CPU thread.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_65cuCtxGetCurrent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_64cuCtxGetCurrent[] = "cuCtxGetCurrent()\n Returns the CUDA context bound to the calling CPU thread.\n\n    Returns in `*pctx` the CUDA context bound to the calling CPU thread. If\n    no context is bound to the calling CPU thread then `*pctx` is set to\n    NULL and CUDA_SUCCESS is returned.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n    pctx : CUcontext\n        Returned context handle\n\n    See Also\n    --------\n    cuCtxSetCurrent\n    cuCtxCreate\n    cuCtxDestroy\n    cudaGetDevice\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_65cuCtxGetCurrent = {"cuCtxGetCurrent", (PyCFunction)__pyx_pw_4cuda_4cuda_65cuCtxGetCurrent, METH_NOARGS, __pyx_doc_4cuda_4cuda_64cuCtxGetCurrent};
static PyObject *__pyx_pw_4cuda_4cuda_65cuCtxGetCurrent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetCurrent (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_64cuCtxGetCurrent(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_64cuCtxGetCurrent(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__544)
  __Pyx_RefNannySetupContext("cuCtxGetCurrent", 0);
  __Pyx_TraceCall("cuCtxGetCurrent", __pyx_f[0], 9422, 0, __PYX_ERR(0, 9422, __pyx_L1_error));

  /* "cuda/cuda.pyx":9445
 *     cudaGetDevice
 *     """
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetCurrent(pctx._ptr)
 *     return (CUresult(err), pctx)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":9446
 *     """
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxGetCurrent(pctx._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuCtxGetCurrent(__pyx_v_pctx->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9446, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":9447
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxGetCurrent(pctx._ptr)
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9422
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCurrent():             # <<<<<<<<<<<<<<
 *     """ Returns the CUDA context bound to the calling CPU thread.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9450
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetDevice():             # <<<<<<<<<<<<<<
 *     """ Returns the device ID for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_67cuCtxGetDevice(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_66cuCtxGetDevice[] = "cuCtxGetDevice()\n Returns the device ID for the current context.\n\n    Returns in `*device` the ordinal of the current context's device.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    device : CUdevice\n        Returned device ID for the current context\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cudaGetDevice\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_67cuCtxGetDevice = {"cuCtxGetDevice", (PyCFunction)__pyx_pw_4cuda_4cuda_67cuCtxGetDevice, METH_NOARGS, __pyx_doc_4cuda_4cuda_66cuCtxGetDevice};
static PyObject *__pyx_pw_4cuda_4cuda_67cuCtxGetDevice(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetDevice (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_66cuCtxGetDevice(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_66cuCtxGetDevice(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__545)
  __Pyx_RefNannySetupContext("cuCtxGetDevice", 0);
  __Pyx_TraceCall("cuCtxGetDevice", __pyx_f[0], 9450, 0, __PYX_ERR(0, 9450, __pyx_L1_error));

  /* "cuda/cuda.pyx":9481
 *     cudaGetDevice
 *     """
 *     cdef CUdevice device = CUdevice()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetDevice(device._ptr)
 *     return (CUresult(err), device)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_device = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":9482
 *     """
 *     cdef CUdevice device = CUdevice()
 *     err = ccuda.cuCtxGetDevice(device._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), device)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuCtxGetDevice(__pyx_v_device->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9482, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":9483
 *     cdef CUdevice device = CUdevice()
 *     err = ccuda.cuCtxGetDevice(device._ptr)
 *     return (CUresult(err), device)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_device));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_device));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_device));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9450
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetDevice():             # <<<<<<<<<<<<<<
 *     """ Returns the device ID for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetDevice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_device);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9486
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetFlags():             # <<<<<<<<<<<<<<
 *     """ Returns the flags for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_69cuCtxGetFlags(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_68cuCtxGetFlags[] = "cuCtxGetFlags()\n Returns the flags for the current context.\n\n    Returns in `*flags` the flags of the current context. See cuCtxCreate\n    for flag values.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    flags : unsigned int\n        Pointer to store flags of current context\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetCurrent\n    cuCtxGetDevice\n    cuCtxGetLimit\n    cuCtxGetSharedMemConfig\n    cuCtxGetStreamPriorityRange\n    cudaGetDeviceFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_69cuCtxGetFlags = {"cuCtxGetFlags", (PyCFunction)__pyx_pw_4cuda_4cuda_69cuCtxGetFlags, METH_NOARGS, __pyx_doc_4cuda_4cuda_68cuCtxGetFlags};
static PyObject *__pyx_pw_4cuda_4cuda_69cuCtxGetFlags(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetFlags (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_68cuCtxGetFlags(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_68cuCtxGetFlags(CYTHON_UNUSED PyObject *__pyx_self) {
  unsigned int __pyx_v_flags;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__546)
  __Pyx_RefNannySetupContext("cuCtxGetFlags", 0);
  __Pyx_TraceCall("cuCtxGetFlags", __pyx_f[0], 9486, 0, __PYX_ERR(0, 9486, __pyx_L1_error));

  /* "cuda/cuda.pyx":9515
 *     cudaGetDeviceFlags
 *     """
 *     cdef unsigned int flags = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetFlags(&flags)
 *     return (CUresult(err), flags)
 */
  __pyx_v_flags = 0;

  /* "cuda/cuda.pyx":9516
 *     """
 *     cdef unsigned int flags = 0
 *     err = ccuda.cuCtxGetFlags(&flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), flags)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxGetFlags((&__pyx_v_flags)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9516, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9517
 *     cdef unsigned int flags = 0
 *     err = ccuda.cuCtxGetFlags(&flags)
 *     return (CUresult(err), flags)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9486
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetFlags():             # <<<<<<<<<<<<<<
 *     """ Returns the flags for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9520
 * 
 * @cython.embedsignature(True)
 * def cuCtxSynchronize():             # <<<<<<<<<<<<<<
 *     """ Block for a context's tasks to complete.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_71cuCtxSynchronize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_70cuCtxSynchronize[] = "cuCtxSynchronize()\n Block for a context's tasks to complete.\n\n    Blocks until the device has completed all preceding requested tasks.\n    cuCtxSynchronize() returns an error if one of the preceding tasks\n    failed. If the context was created with the CU_CTX_SCHED_BLOCKING_SYNC\n    flag, the CPU thread will block until the GPU context has finished its\n    work.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cudaDeviceSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_71cuCtxSynchronize = {"cuCtxSynchronize", (PyCFunction)__pyx_pw_4cuda_4cuda_71cuCtxSynchronize, METH_NOARGS, __pyx_doc_4cuda_4cuda_70cuCtxSynchronize};
static PyObject *__pyx_pw_4cuda_4cuda_71cuCtxSynchronize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxSynchronize (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_70cuCtxSynchronize(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_70cuCtxSynchronize(CYTHON_UNUSED PyObject *__pyx_self) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__547)
  __Pyx_RefNannySetupContext("cuCtxSynchronize", 0);
  __Pyx_TraceCall("cuCtxSynchronize", __pyx_f[0], 9520, 0, __PYX_ERR(0, 9520, __pyx_L1_error));

  /* "cuda/cuda.pyx":9554
 *     cudaDeviceSynchronize
 *     """
 *     err = ccuda.cuCtxSynchronize()             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxSynchronize(); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9554, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9555
 *     """
 *     err = ccuda.cuCtxSynchronize()
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9520
 * 
 * @cython.embedsignature(True)
 * def cuCtxSynchronize():             # <<<<<<<<<<<<<<
 *     """ Block for a context's tasks to complete.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxSynchronize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9558
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetLimit(limit not None : CUlimit, size_t value):             # <<<<<<<<<<<<<<
 *     """ Set resource limits.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_73cuCtxSetLimit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_72cuCtxSetLimit[] = "cuCtxSetLimit(limit: CUlimit, size_t value)\n Set resource limits.\n\n    Setting `limit` to `value` is a request by the application to update\n    the current limit maintained by the context. The driver is free to\n    modify the requested value to meet h/w requirements (this could be\n    clamping to minimum or maximum values, rounding up to nearest element\n    size, etc). The application can use cuCtxGetLimit() to find out exactly\n    what the limit has been set to.\n\n    Setting each CUlimit has its own specific restrictions, so each is\n    discussed here.\n\n    CU_LIMIT_STACK_SIZE controls the stack size in bytes of each GPU\n    thread. The driver automatically increases the per-thread stack size\n    for each kernel launch as needed. This size isn't reset back to the\n    original value after each launch. Setting this value will take effect\n    immediately, and if necessary, the device will block until all\n    preceding requested tasks are complete. CU_LIMIT_PRINTF_FIFO_SIZE\n    controls the size in bytes of the FIFO used by the printf() device\n    system call. Setting CU_LIMIT_PRINTF_FIFO_SIZE must be performed before\n    launching any kernel that uses the printf() device system call,\n    otherwise CUDA_ERROR_INVALID_VALUE will be returned.\n    CU_LIMIT_MALLOC_HEAP_SIZE controls the size in bytes of the heap used\n    by the malloc() and free() device system calls. Setting\n    CU_LIMIT_MALLOC_HEAP_SIZE must be performed before launching any kernel\n    that uses the malloc() or free() device system calls, otherwise\n    CUDA_ERROR_INVALID_VALUE will be returned.\n    CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH controls the maximum nesting depth of a\n    grid at which a thread can safely call cudaDeviceSynchronize(). Setting\n    this limit must be performed before any launch of a kernel that uses\n    the device runtime and calls cudaDeviceSynchronize() above the default\n    sync depth, two levels of grids. Calls to cudaDeviceSynchronize() will\n    fail ""with error code cudaErrorSyncDepthExceeded if the limitation is\n    violated. This limit can be set smaller than the default or up the\n    maximum launch depth of 24. When setting this limit, keep in mind that\n    additional levels of sync depth require the driver to reserve large\n    amounts of device memory which can no longer be used for user\n    allocations. If these reservations of device memory fail,\n    cuCtxSetLimit() will return CUDA_ERROR_OUT_OF_MEMORY, and the limit can\n    be reset to a lower value. This limit is only applicable to devices of\n    compute capability 3.5 and higher. Attempting to set this limit on\n    devices of compute capability less than 3.5 will result in the error\n    CUDA_ERROR_UNSUPPORTED_LIMIT being returned.\n    CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT controls the maximum number\n    of outstanding device runtime launches that can be made from the\n    current context. A grid is outstanding from the point of launch up\n    until the grid is known to have been completed. Device runtime launches\n    which violate this limitation fail and return\n    cudaErrorLaunchPendingCountExceeded when cudaGetLastError() is called\n    after launch. If more pending launches than the default (2048 launches)\n    are needed for a module using the device runtime, this limit can be\n    increased. Keep in mind that being able to sustain additional pending\n    launches will require the driver to reserve larger amounts of device\n    memory upfront which can no longer be used for allocations. If these\n    reservations fail, cuCtxSetLimit() will return\n    CUDA_ERROR_OUT_OF_MEMORY, and the limit can be reset to a lower value.\n    This limit is only applicable to devices of compute capability 3.5 and\n    higher. Attempting to set this limit on devices of compute capability\n    less than 3.5 will result in the error CUDA_ERROR_UNSUPPORTED_LIMIT\n    being returned. CU_LIMIT_MAX_L2_FETCH_GRANULARITY controls the L2 cache\n    fetch gra""nularity. Values can range from 0B to 128B. This is purely a\n    performence hint and it can be ignored or clamped depending on the\n    platform. CU_LIMIT_PERSISTING_L2_CACHE_SIZE controls size in bytes\n    availabe for persisting L2 cache. This is purely a performance hint and\n    it can be ignored or clamped depending on the platform.\n\n    Parameters\n    ----------\n    limit : CUlimit\n        Limit to set\n    value : size_t\n        Size of limit\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNSUPPORTED_LIMIT\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSynchronize\n    cudaDeviceSetLimit\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_73cuCtxSetLimit = {"cuCtxSetLimit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_73cuCtxSetLimit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_72cuCtxSetLimit};
static PyObject *__pyx_pw_4cuda_4cuda_73cuCtxSetLimit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_limit = 0;
  size_t __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxSetLimit (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_limit,&__pyx_n_s_value,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_limit)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuCtxSetLimit", 1, 2, 2, 1); __PYX_ERR(0, 9558, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuCtxSetLimit") < 0)) __PYX_ERR(0, 9558, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_limit = values[0];
    __pyx_v_value = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_value == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 9558, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuCtxSetLimit", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 9558, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuCtxSetLimit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_limit) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "limit"); __PYX_ERR(0, 9558, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_72cuCtxSetLimit(__pyx_self, __pyx_v_limit, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_72cuCtxSetLimit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_limit, size_t __pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUlimit __pyx_v_climit;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUlimit __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__548)
  __Pyx_RefNannySetupContext("cuCtxSetLimit", 0);
  __Pyx_TraceCall("cuCtxSetLimit", __pyx_f[0], 9558, 0, __PYX_ERR(0, 9558, __pyx_L1_error));

  /* "cuda/cuda.pyx":9658
 *     cudaDeviceSetLimit
 *     """
 *     cdef ccuda.CUlimit climit = limit.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxSetLimit(climit, value)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_limit, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 9658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_climit = __pyx_t_2;

  /* "cuda/cuda.pyx":9659
 *     """
 *     cdef ccuda.CUlimit climit = limit.value
 *     err = ccuda.cuCtxSetLimit(climit, value)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuCtxSetLimit(__pyx_v_climit, __pyx_v_value); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9659, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":9660
 *     cdef ccuda.CUlimit climit = limit.value
 *     err = ccuda.cuCtxSetLimit(climit, value)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9558
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetLimit(limit not None : CUlimit, size_t value):             # <<<<<<<<<<<<<<
 *     """ Set resource limits.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxSetLimit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9663
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetLimit(limit not None : CUlimit):             # <<<<<<<<<<<<<<
 *     """ Returns resource limits.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_75cuCtxGetLimit(PyObject *__pyx_self, PyObject *__pyx_v_limit); /*proto*/
static char __pyx_doc_4cuda_4cuda_74cuCtxGetLimit[] = "cuCtxGetLimit(limit: CUlimit)\n Returns resource limits.\n\n    Returns in `*pvalue` the current size of `limit`. The supported CUlimit\n    values are: CU_LIMIT_STACK_SIZE: stack size in bytes of each GPU\n    thread. CU_LIMIT_PRINTF_FIFO_SIZE: size in bytes of the FIFO used by\n    the printf() device system call. CU_LIMIT_MALLOC_HEAP_SIZE: size in\n    bytes of the heap used by the malloc() and free() device system calls.\n    CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH: maximum grid depth at which a thread\n    can issue the device runtime call cudaDeviceSynchronize() to wait on\n    child grid launches to complete.\n    CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT: maximum number of\n    outstanding device runtime launches that can be made from this context.\n    CU_LIMIT_MAX_L2_FETCH_GRANULARITY: L2 cache fetch granularity.\n    CU_LIMIT_PERSISTING_L2_CACHE_SIZE: Persisting L2 cache size in bytes\n\n    Parameters\n    ----------\n    limit : CUlimit\n        Limit to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNSUPPORTED_LIMIT\n    pvalue : int\n        Returned size of limit\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cudaDeviceGetLimit\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_75cuCtxGetLimit = {"cuCtxGetLimit", (PyCFunction)__pyx_pw_4cuda_4cuda_75cuCtxGetLimit, METH_O, __pyx_doc_4cuda_4cuda_74cuCtxGetLimit};
static PyObject *__pyx_pw_4cuda_4cuda_75cuCtxGetLimit(PyObject *__pyx_self, PyObject *__pyx_v_limit) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetLimit (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_limit) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "limit"); __PYX_ERR(0, 9663, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_74cuCtxGetLimit(__pyx_self, ((PyObject *)__pyx_v_limit));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_74cuCtxGetLimit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_limit) {
  size_t __pyx_v_pvalue;
  __pyx_t_4cuda_5ccuda_CUlimit __pyx_v_climit;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUlimit __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__549)
  __Pyx_RefNannySetupContext("cuCtxGetLimit", 0);
  __Pyx_TraceCall("cuCtxGetLimit", __pyx_f[0], 9663, 0, __PYX_ERR(0, 9663, __pyx_L1_error));

  /* "cuda/cuda.pyx":9708
 *     cudaDeviceGetLimit
 *     """
 *     cdef size_t pvalue = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUlimit climit = limit.value
 *     err = ccuda.cuCtxGetLimit(&pvalue, climit)
 */
  __pyx_v_pvalue = 0;

  /* "cuda/cuda.pyx":9709
 *     """
 *     cdef size_t pvalue = 0
 *     cdef ccuda.CUlimit climit = limit.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetLimit(&pvalue, climit)
 *     return (CUresult(err), pvalue)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_limit, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 9709, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_climit = __pyx_t_2;

  /* "cuda/cuda.pyx":9710
 *     cdef size_t pvalue = 0
 *     cdef ccuda.CUlimit climit = limit.value
 *     err = ccuda.cuCtxGetLimit(&pvalue, climit)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pvalue)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuCtxGetLimit((&__pyx_v_pvalue), __pyx_v_climit); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9710, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":9711
 *     cdef ccuda.CUlimit climit = limit.value
 *     err = ccuda.cuCtxGetLimit(&pvalue, climit)
 *     return (CUresult(err), pvalue)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_pvalue); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9663
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetLimit(limit not None : CUlimit):             # <<<<<<<<<<<<<<
 *     """ Returns resource limits.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetLimit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9714
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCacheConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the preferred cache configuration for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_77cuCtxGetCacheConfig(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_76cuCtxGetCacheConfig[] = "cuCtxGetCacheConfig()\n Returns the preferred cache configuration for the current context.\n\n    On devices where the L1 cache and shared memory use the same hardware\n    resources, this function returns through `pconfig` the preferred cache\n    configuration for the current context. This is only a preference. The\n    driver will use the requested configuration if possible, but it is free\n    to choose a different configuration if required to execute functions.\n\n    This will return a `pconfig` of CU_FUNC_CACHE_PREFER_NONE on devices\n    where the size of the L1 cache and shared memory are fixed.\n\n    The supported cache configurations are: CU_FUNC_CACHE_PREFER_NONE: no\n    preference for shared memory or L1 (default)\n    CU_FUNC_CACHE_PREFER_SHARED: prefer larger shared memory and smaller L1\n    cache CU_FUNC_CACHE_PREFER_L1: prefer larger L1 cache and smaller\n    shared memory CU_FUNC_CACHE_PREFER_EQUAL: prefer equal sized L1 cache\n    and shared memory\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pconfig : CUfunc_cache\n        Returned cache configuration\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cuFuncSetCacheConfig\n    cudaDeviceGetCacheConfig\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_77cuCtxGetCacheConfig = {"cuCtxGetCacheConfig", (PyCFunction)__pyx_pw_4cuda_4cuda_77cuCtxGetCacheConfig, METH_NOARGS, __pyx_doc_4cuda_4cuda_76cuCtxGetCacheConfig};
static PyObject *__pyx_pw_4cuda_4cuda_77cuCtxGetCacheConfig(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetCacheConfig (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_76cuCtxGetCacheConfig(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_76cuCtxGetCacheConfig(CYTHON_UNUSED PyObject *__pyx_self) {
  __pyx_t_4cuda_5ccuda_CUfunc_cache __pyx_v_pconfig;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__550)
  __Pyx_RefNannySetupContext("cuCtxGetCacheConfig", 0);
  __Pyx_TraceCall("cuCtxGetCacheConfig", __pyx_f[0], 9714, 0, __PYX_ERR(0, 9714, __pyx_L1_error));

  /* "cuda/cuda.pyx":9761
 *     """
 *     cdef ccuda.CUfunc_cache pconfig
 *     err = ccuda.cuCtxGetCacheConfig(&pconfig)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUfunc_cache(pconfig))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxGetCacheConfig((&__pyx_v_pconfig)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9761, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9762
 *     cdef ccuda.CUfunc_cache pconfig
 *     err = ccuda.cuCtxGetCacheConfig(&pconfig)
 *     return (CUresult(err), CUfunc_cache(pconfig))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUfunc_cache); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_v_pconfig); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9714
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCacheConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the preferred cache configuration for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetCacheConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9765
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCacheConfig(config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_79cuCtxSetCacheConfig(PyObject *__pyx_self, PyObject *__pyx_v_config); /*proto*/
static char __pyx_doc_4cuda_4cuda_78cuCtxSetCacheConfig[] = "cuCtxSetCacheConfig(config: CUfunc_cache)\n Sets the preferred cache configuration for the current context.\n\n    On devices where the L1 cache and shared memory use the same hardware\n    resources, this sets through `config` the preferred cache configuration\n    for the current context. This is only a preference. The driver will use\n    the requested configuration if possible, but it is free to choose a\n    different configuration if required to execute the function. Any\n    function preference set via cuFuncSetCacheConfig() will be preferred\n    over this context-wide setting. Setting the context-wide cache\n    configuration to CU_FUNC_CACHE_PREFER_NONE will cause subsequent kernel\n    launches to prefer to not change the cache configuration unless\n    required to launch the kernel.\n\n    This setting does nothing on devices where the size of the L1 cache and\n    shared memory are fixed.\n\n    Launching a kernel with a different preference than the most recent\n    preference setting may insert a device-side synchronization point.\n\n    The supported cache configurations are: CU_FUNC_CACHE_PREFER_NONE: no\n    preference for shared memory or L1 (default)\n    CU_FUNC_CACHE_PREFER_SHARED: prefer larger shared memory and smaller L1\n    cache CU_FUNC_CACHE_PREFER_L1: prefer larger L1 cache and smaller\n    shared memory CU_FUNC_CACHE_PREFER_EQUAL: prefer equal sized L1 cache\n    and shared memory\n\n    Parameters\n    ----------\n    config : CUfunc_cache\n        Requested cache configuration\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetLimit""\n    cuCtxSynchronize\n    cuFuncSetCacheConfig\n    cudaDeviceSetCacheConfig\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_79cuCtxSetCacheConfig = {"cuCtxSetCacheConfig", (PyCFunction)__pyx_pw_4cuda_4cuda_79cuCtxSetCacheConfig, METH_O, __pyx_doc_4cuda_4cuda_78cuCtxSetCacheConfig};
static PyObject *__pyx_pw_4cuda_4cuda_79cuCtxSetCacheConfig(PyObject *__pyx_self, PyObject *__pyx_v_config) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxSetCacheConfig (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_config) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "config"); __PYX_ERR(0, 9765, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_78cuCtxSetCacheConfig(__pyx_self, ((PyObject *)__pyx_v_config));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_78cuCtxSetCacheConfig(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_config) {
  __pyx_t_4cuda_5ccuda_CUfunc_cache __pyx_v_cconfig;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfunc_cache __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__551)
  __Pyx_RefNannySetupContext("cuCtxSetCacheConfig", 0);
  __Pyx_TraceCall("cuCtxSetCacheConfig", __pyx_f[0], 9765, 0, __PYX_ERR(0, 9765, __pyx_L1_error));

  /* "cuda/cuda.pyx":9824
 *     cudaDeviceSetCacheConfig
 *     """
 *     cdef ccuda.CUfunc_cache cconfig = config.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxSetCacheConfig(cconfig)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 9824, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cconfig = __pyx_t_2;

  /* "cuda/cuda.pyx":9825
 *     """
 *     cdef ccuda.CUfunc_cache cconfig = config.value
 *     err = ccuda.cuCtxSetCacheConfig(cconfig)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuCtxSetCacheConfig(__pyx_v_cconfig); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9825, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":9826
 *     cdef ccuda.CUfunc_cache cconfig = config.value
 *     err = ccuda.cuCtxSetCacheConfig(cconfig)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9765
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCacheConfig(config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxSetCacheConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9829
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetSharedMemConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the current shared memory configuration for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_81cuCtxGetSharedMemConfig(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_80cuCtxGetSharedMemConfig[] = "cuCtxGetSharedMemConfig()\n Returns the current shared memory configuration for the current context.\n\n    This function will return in `pConfig` the current size of shared\n    memory banks in the current context. On devices with configurable\n    shared memory banks, cuCtxSetSharedMemConfig can be used to change this\n    setting, so that all subsequent kernel launches will by default use the\n    new bank size. When cuCtxGetSharedMemConfig is called on devices\n    without configurable shared memory, it will return the fixed bank size\n    of the hardware.\n\n    The returned bank configurations can be either:\n    CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE: shared memory bank width is\n    four bytes. CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE: shared memory\n    bank width will eight bytes.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pConfig : CUsharedconfig\n        returned shared memory configuration\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cuCtxGetSharedMemConfig\n    cuFuncSetCacheConfig\n    cudaDeviceGetSharedMemConfig\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_81cuCtxGetSharedMemConfig = {"cuCtxGetSharedMemConfig", (PyCFunction)__pyx_pw_4cuda_4cuda_81cuCtxGetSharedMemConfig, METH_NOARGS, __pyx_doc_4cuda_4cuda_80cuCtxGetSharedMemConfig};
static PyObject *__pyx_pw_4cuda_4cuda_81cuCtxGetSharedMemConfig(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetSharedMemConfig (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_80cuCtxGetSharedMemConfig(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_80cuCtxGetSharedMemConfig(CYTHON_UNUSED PyObject *__pyx_self) {
  __pyx_t_4cuda_5ccuda_CUsharedconfig __pyx_v_pConfig;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__552)
  __Pyx_RefNannySetupContext("cuCtxGetSharedMemConfig", 0);
  __Pyx_TraceCall("cuCtxGetSharedMemConfig", __pyx_f[0], 9829, 0, __PYX_ERR(0, 9829, __pyx_L1_error));

  /* "cuda/cuda.pyx":9874
 *     """
 *     cdef ccuda.CUsharedconfig pConfig
 *     err = ccuda.cuCtxGetSharedMemConfig(&pConfig)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUsharedconfig(pConfig))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxGetSharedMemConfig((&__pyx_v_pConfig)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9874, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9875
 *     cdef ccuda.CUsharedconfig pConfig
 *     err = ccuda.cuCtxGetSharedMemConfig(&pConfig)
 *     return (CUresult(err), CUsharedconfig(pConfig))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUsharedconfig); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(__pyx_v_pConfig); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9829
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetSharedMemConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the current shared memory configuration for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetSharedMemConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9878
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetSharedMemConfig(config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_83cuCtxSetSharedMemConfig(PyObject *__pyx_self, PyObject *__pyx_v_config); /*proto*/
static char __pyx_doc_4cuda_4cuda_82cuCtxSetSharedMemConfig[] = "cuCtxSetSharedMemConfig(config: CUsharedconfig)\n Sets the shared memory configuration for the current context.\n\n    On devices with configurable shared memory banks, this function will\n    set the context's shared memory bank size which is used for subsequent\n    kernel launches.\n\n    Changed the shared memory configuration between launches may insert a\n    device side synchronization point between those launches.\n\n    Changing the shared memory bank size will not increase shared memory\n    usage or affect occupancy of kernels, but may have major effects on\n    performance. Larger bank sizes will allow for greater potential\n    bandwidth to shared memory, but will change what kinds of accesses to\n    shared memory will result in bank conflicts.\n\n    This function will do nothing on devices with fixed shared memory bank\n    size.\n\n    The supported bank configurations are:\n    CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE: set bank width to the default\n    initial setting (currently, four bytes).\n    CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE: set shared memory bank width\n    to be natively four bytes. CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE:\n    set shared memory bank width to be natively eight bytes.\n\n    Parameters\n    ----------\n    config : CUsharedconfig\n        requested shared memory configuration\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cuCtxGetSharedMemConfig\n    cuFuncSetCacheConfig\n    cudaDeviceSetSharedMemConfig\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_83cuCtxSetSharedMemConfig = {"cuCtxSetSharedMemConfig", (PyCFunction)__pyx_pw_4cuda_4cuda_83cuCtxSetSharedMemConfig, METH_O, __pyx_doc_4cuda_4cuda_82cuCtxSetSharedMemConfig};
static PyObject *__pyx_pw_4cuda_4cuda_83cuCtxSetSharedMemConfig(PyObject *__pyx_self, PyObject *__pyx_v_config) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxSetSharedMemConfig (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_config) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "config"); __PYX_ERR(0, 9878, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_82cuCtxSetSharedMemConfig(__pyx_self, ((PyObject *)__pyx_v_config));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_82cuCtxSetSharedMemConfig(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_config) {
  __pyx_t_4cuda_5ccuda_CUsharedconfig __pyx_v_cconfig;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUsharedconfig __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__553)
  __Pyx_RefNannySetupContext("cuCtxSetSharedMemConfig", 0);
  __Pyx_TraceCall("cuCtxSetSharedMemConfig", __pyx_f[0], 9878, 0, __PYX_ERR(0, 9878, __pyx_L1_error));

  /* "cuda/cuda.pyx":9937
 *     cudaDeviceSetSharedMemConfig
 *     """
 *     cdef ccuda.CUsharedconfig cconfig = config.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxSetSharedMemConfig(cconfig)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 9937, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cconfig = __pyx_t_2;

  /* "cuda/cuda.pyx":9938
 *     """
 *     cdef ccuda.CUsharedconfig cconfig = config.value
 *     err = ccuda.cuCtxSetSharedMemConfig(cconfig)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuCtxSetSharedMemConfig(__pyx_v_cconfig); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9938, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":9939
 *     cdef ccuda.CUsharedconfig cconfig = config.value
 *     err = ccuda.cuCtxSetSharedMemConfig(cconfig)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 9939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9878
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetSharedMemConfig(config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxSetSharedMemConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9942
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetApiVersion(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Gets the context's API version.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_85cuCtxGetApiVersion(PyObject *__pyx_self, PyObject *__pyx_v_ctx); /*proto*/
static char __pyx_doc_4cuda_4cuda_84cuCtxGetApiVersion[] = "cuCtxGetApiVersion(CUcontext ctx: CUcontext)\n Gets the context's API version.\n\n    Returns a version number in `version` corresponding to the capabilities\n    of the context (e.g. 3010 or 3020), which library developers can use to\n    direct callers to a specific API version. If `ctx` is NULL, returns the\n    API version used to create the currently bound context.\n\n    Note that new API versions are only introduced when context\n    capabilities are changed that break binary compatibility, so the API\n    version and driver version may be different. For example, it is valid\n    for the API version to be 3020 while the driver version is 4020.\n\n    Parameters\n    ----------\n    ctx : CUcontext\n        Context to check\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNKNOWN\n    version : unsigned int\n        Pointer to version\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_85cuCtxGetApiVersion = {"cuCtxGetApiVersion", (PyCFunction)__pyx_pw_4cuda_4cuda_85cuCtxGetApiVersion, METH_O, __pyx_doc_4cuda_4cuda_84cuCtxGetApiVersion};
static PyObject *__pyx_pw_4cuda_4cuda_85cuCtxGetApiVersion(PyObject *__pyx_self, PyObject *__pyx_v_ctx) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetApiVersion (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 9942, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_84cuCtxGetApiVersion(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_ctx));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_84cuCtxGetApiVersion(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  unsigned int __pyx_v_version;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__554)
  __Pyx_RefNannySetupContext("cuCtxGetApiVersion", 0);
  __Pyx_TraceCall("cuCtxGetApiVersion", __pyx_f[0], 9942, 0, __PYX_ERR(0, 9942, __pyx_L1_error));

  /* "cuda/cuda.pyx":9985
 *     cuCtxSynchronize
 *     """
 *     cdef unsigned int version = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetApiVersion(ctx._ptr[0], &version)
 *     return (CUresult(err), version)
 */
  __pyx_v_version = 0;

  /* "cuda/cuda.pyx":9986
 *     """
 *     cdef unsigned int version = 0
 *     err = ccuda.cuCtxGetApiVersion(ctx._ptr[0], &version)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), version)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxGetApiVersion((__pyx_v_ctx->_ptr[0]), (&__pyx_v_version)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 9986, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":9987
 *     cdef unsigned int version = 0
 *     err = ccuda.cuCtxGetApiVersion(ctx._ptr[0], &version)
 *     return (CUresult(err), version)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_version); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9942
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetApiVersion(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Gets the context's API version.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetApiVersion", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":9990
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetStreamPriorityRange():             # <<<<<<<<<<<<<<
 *     """ Returns numerical values that correspond to the least and greatest stream priorities.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_87cuCtxGetStreamPriorityRange(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_86cuCtxGetStreamPriorityRange[] = "cuCtxGetStreamPriorityRange()\n Returns numerical values that correspond to the least and greatest stream priorities.\n\n    Returns in `*leastPriority` and `*greatestPriority` the numerical\n    values that correspond to the least and greatest stream priorities\n    respectively. Stream priorities follow a convention where lower numbers\n    imply greater priorities. The range of meaningful stream priorities is\n    given by [`*greatestPriority`, `*leastPriority`]. If the user attempts\n    to create a stream with a priority value that is outside the meaningful\n    range as specified by this API, the priority is automatically clamped\n    down or up to either `*leastPriority` or `*greatestPriority`\n    respectively. See cuStreamCreateWithPriority for details on creating a\n    priority stream. A NULL may be passed in for `*leastPriority` or\n    `*greatestPriority` if the value is not desired.\n\n    This function will return '0' in both `*leastPriority` and\n    `*greatestPriority` if the current context's device does not support\n    stream priorities (see cuDeviceGetAttribute).\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    leastPriority : int\n        Pointer to an int in which the numerical value for least stream\n        priority is returned\n    greatestPriority : int\n        Pointer to an int in which the numerical value for greatest stream\n        priority is returned\n\n    See Also\n    --------\n    cuStreamCreateWithPriority\n    cuStreamGetPriority\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxSetLimit\n    cuCtxSynchronize\n    cudaDeviceGetStreamPriorityRange\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_87cuCtxGetStreamPriorityRange = {"cuCtxGetStreamPriorityRange", (PyCFunction)__pyx_pw_4cuda_4cuda_87cuCtxGetStreamPriorityRange, METH_NOARGS, __pyx_doc_4cuda_4cuda_86cuCtxGetStreamPriorityRange};
static PyObject *__pyx_pw_4cuda_4cuda_87cuCtxGetStreamPriorityRange(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetStreamPriorityRange (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_86cuCtxGetStreamPriorityRange(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_86cuCtxGetStreamPriorityRange(CYTHON_UNUSED PyObject *__pyx_self) {
  int __pyx_v_leastPriority;
  int __pyx_v_greatestPriority;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__555)
  __Pyx_RefNannySetupContext("cuCtxGetStreamPriorityRange", 0);
  __Pyx_TraceCall("cuCtxGetStreamPriorityRange", __pyx_f[0], 9990, 0, __PYX_ERR(0, 9990, __pyx_L1_error));

  /* "cuda/cuda.pyx":10031
 *     cudaDeviceGetStreamPriorityRange
 *     """
 *     cdef int leastPriority = 0             # <<<<<<<<<<<<<<
 *     cdef int greatestPriority = 0
 *     err = ccuda.cuCtxGetStreamPriorityRange(&leastPriority, &greatestPriority)
 */
  __pyx_v_leastPriority = 0;

  /* "cuda/cuda.pyx":10032
 *     """
 *     cdef int leastPriority = 0
 *     cdef int greatestPriority = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetStreamPriorityRange(&leastPriority, &greatestPriority)
 *     return (CUresult(err), leastPriority, greatestPriority)
 */
  __pyx_v_greatestPriority = 0;

  /* "cuda/cuda.pyx":10033
 *     cdef int leastPriority = 0
 *     cdef int greatestPriority = 0
 *     err = ccuda.cuCtxGetStreamPriorityRange(&leastPriority, &greatestPriority)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), leastPriority, greatestPriority)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxGetStreamPriorityRange((&__pyx_v_leastPriority), (&__pyx_v_greatestPriority)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10033, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10034
 *     cdef int greatestPriority = 0
 *     err = ccuda.cuCtxGetStreamPriorityRange(&leastPriority, &greatestPriority)
 *     return (CUresult(err), leastPriority, greatestPriority)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_leastPriority); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_greatestPriority); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":9990
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetStreamPriorityRange():             # <<<<<<<<<<<<<<
 *     """ Returns numerical values that correspond to the least and greatest stream priorities.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetStreamPriorityRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10037
 * 
 * @cython.embedsignature(True)
 * def cuCtxResetPersistingL2Cache():             # <<<<<<<<<<<<<<
 *     """ Resets all persisting lines in cache to normal status.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_89cuCtxResetPersistingL2Cache(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_88cuCtxResetPersistingL2Cache[] = "cuCtxResetPersistingL2Cache()\n Resets all persisting lines in cache to normal status.\n\n    cuCtxResetPersistingL2Cache Resets all persisting lines in cache to\n    normal status. Takes effect on function return.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_89cuCtxResetPersistingL2Cache = {"cuCtxResetPersistingL2Cache", (PyCFunction)__pyx_pw_4cuda_4cuda_89cuCtxResetPersistingL2Cache, METH_NOARGS, __pyx_doc_4cuda_4cuda_88cuCtxResetPersistingL2Cache};
static PyObject *__pyx_pw_4cuda_4cuda_89cuCtxResetPersistingL2Cache(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxResetPersistingL2Cache (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_88cuCtxResetPersistingL2Cache(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_88cuCtxResetPersistingL2Cache(CYTHON_UNUSED PyObject *__pyx_self) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__556)
  __Pyx_RefNannySetupContext("cuCtxResetPersistingL2Cache", 0);
  __Pyx_TraceCall("cuCtxResetPersistingL2Cache", __pyx_f[0], 10037, 0, __PYX_ERR(0, 10037, __pyx_L1_error));

  /* "cuda/cuda.pyx":10051
 *         None
 *     """
 *     err = ccuda.cuCtxResetPersistingL2Cache()             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxResetPersistingL2Cache(); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10051, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10052
 *     """
 *     err = ccuda.cuCtxResetPersistingL2Cache()
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10037
 * 
 * @cython.embedsignature(True)
 * def cuCtxResetPersistingL2Cache():             # <<<<<<<<<<<<<<
 *     """ Resets all persisting lines in cache to normal status.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxResetPersistingL2Cache", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10055
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetExecAffinity(typename not None : CUexecAffinityType):             # <<<<<<<<<<<<<<
 *     """ Returns the execution affinity setting for the current context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_91cuCtxGetExecAffinity(PyObject *__pyx_self, PyObject *__pyx_v_typename); /*proto*/
static char __pyx_doc_4cuda_4cuda_90cuCtxGetExecAffinity[] = "cuCtxGetExecAffinity(typename: CUexecAffinityType)\n Returns the execution affinity setting for the current context.\n\n    Returns in `*pExecAffinity` the current value of `typename`. The\n    supported CUexecAffinityType values are:\n    CU_EXEC_AFFINITY_TYPE_SM_COUNT: number of SMs the context is limited to\n    use.\n\n    Parameters\n    ----------\n    typename : CUexecAffinityType\n        Execution affinity type to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY\n    pExecAffinity : CUexecAffinityParam\n        Returned execution affinity\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_91cuCtxGetExecAffinity = {"cuCtxGetExecAffinity", (PyCFunction)__pyx_pw_4cuda_4cuda_91cuCtxGetExecAffinity, METH_O, __pyx_doc_4cuda_4cuda_90cuCtxGetExecAffinity};
static PyObject *__pyx_pw_4cuda_4cuda_91cuCtxGetExecAffinity(PyObject *__pyx_self, PyObject *__pyx_v_typename) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxGetExecAffinity (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_typename) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "typename"); __PYX_ERR(0, 10055, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_90cuCtxGetExecAffinity(__pyx_self, ((PyObject *)__pyx_v_typename));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_90cuCtxGetExecAffinity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_typename) {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam *__pyx_v_pExecAffinity = 0;
  __pyx_t_4cuda_5ccuda_CUexecAffinityType __pyx_v_ctypename;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUexecAffinityType __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__557)
  __Pyx_RefNannySetupContext("cuCtxGetExecAffinity", 0);
  __Pyx_TraceCall("cuCtxGetExecAffinity", __pyx_f[0], 10055, 0, __PYX_ERR(0, 10055, __pyx_L1_error));

  /* "cuda/cuda.pyx":10080
 *         Returned execution affinity
 *     """
 *     cdef CUexecAffinityParam pExecAffinity = CUexecAffinityParam()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value
 *     err = ccuda.cuCtxGetExecAffinity(pExecAffinity._ptr, ctypename)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinityParam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pExecAffinity = ((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10081
 *     """
 *     cdef CUexecAffinityParam pExecAffinity = CUexecAffinityParam()
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxGetExecAffinity(pExecAffinity._ptr, ctypename)
 *     return (CUresult(err), pExecAffinity)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10081, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ctypename = __pyx_t_2;

  /* "cuda/cuda.pyx":10082
 *     cdef CUexecAffinityParam pExecAffinity = CUexecAffinityParam()
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value
 *     err = ccuda.cuCtxGetExecAffinity(pExecAffinity._ptr, ctypename)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pExecAffinity)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuCtxGetExecAffinity(__pyx_v_pExecAffinity->__pyx_base._ptr, __pyx_v_ctypename); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10082, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":10083
 *     cdef ccuda.CUexecAffinityType ctypename = typename.value
 *     err = ccuda.cuCtxGetExecAffinity(pExecAffinity._ptr, ctypename)
 *     return (CUresult(err), pExecAffinity)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pExecAffinity));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pExecAffinity));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_pExecAffinity));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10055
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetExecAffinity(typename not None : CUexecAffinityType):             # <<<<<<<<<<<<<<
 *     """ Returns the execution affinity setting for the current context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuCtxGetExecAffinity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pExecAffinity);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10086
 * 
 * @cython.embedsignature(True)
 * def cuCtxAttach(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Increment a context's usage-count.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_93cuCtxAttach(PyObject *__pyx_self, PyObject *__pyx_arg_flags); /*proto*/
static char __pyx_doc_4cuda_4cuda_92cuCtxAttach[] = "cuCtxAttach(unsigned int flags)\n Increment a context's usage-count.\n\n    Deprecated\n\n    Note that this function is deprecated and should not be used.\n\n    Increments the usage count of the context and passes back a context\n    handle in `*pctx` that must be passed to cuCtxDetach() when the\n    application is done with the context. cuCtxAttach() fails if there is\n    no context current to the thread.\n\n    Currently, the `flags` parameter must be 0.\n\n    Parameters\n    ----------\n    flags : unsigned int\n        Context attach flags (must be 0)\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pctx : CUcontext\n        Returned context handle of the current context\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxDetach\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_93cuCtxAttach = {"cuCtxAttach", (PyCFunction)__pyx_pw_4cuda_4cuda_93cuCtxAttach, METH_O, __pyx_doc_4cuda_4cuda_92cuCtxAttach};
static PyObject *__pyx_pw_4cuda_4cuda_93cuCtxAttach(PyObject *__pyx_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxAttach (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 10086, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuCtxAttach", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_92cuCtxAttach(__pyx_self, ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_92cuCtxAttach(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__558)
  __Pyx_RefNannySetupContext("cuCtxAttach", 0);
  __Pyx_TraceCall("cuCtxAttach", __pyx_f[0], 10086, 0, __PYX_ERR(0, 10086, __pyx_L1_error));

  /* "cuda/cuda.pyx":10132
 *     cuCtxSynchronize
 *     """
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuCtxAttach(pctx._ptr, flags)
 *     return (CUresult(err), pctx)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10133
 *     """
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxAttach(pctx._ptr, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuCtxAttach(__pyx_v_pctx->_ptr, __pyx_v_flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10133, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":10134
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuCtxAttach(pctx._ptr, flags)
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10086
 * 
 * @cython.embedsignature(True)
 * def cuCtxAttach(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Increment a context's usage-count.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxAttach", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10137
 * 
 * @cython.embedsignature(True)
 * def cuCtxDetach(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Decrement a context's usage-count.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_95cuCtxDetach(PyObject *__pyx_self, PyObject *__pyx_v_ctx); /*proto*/
static char __pyx_doc_4cuda_4cuda_94cuCtxDetach[] = "cuCtxDetach(CUcontext ctx: CUcontext)\n Decrement a context's usage-count.\n\n    Deprecated\n\n    Note that this function is deprecated and should not be used.\n\n    Decrements the usage count of the context `ctx`, and destroys the\n    context if the usage count goes to 0. The context must be a handle that\n    was passed back by cuCtxCreate() or cuCtxAttach(), and must be current\n    to the calling thread.\n\n    Parameters\n    ----------\n    ctx : CUcontext\n        Context to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuCtxCreate\n    cuCtxDestroy\n    cuCtxGetApiVersion\n    cuCtxGetCacheConfig\n    cuCtxGetDevice\n    cuCtxGetFlags\n    cuCtxGetLimit\n    cuCtxPopCurrent\n    cuCtxPushCurrent\n    cuCtxSetCacheConfig\n    cuCtxSetLimit\n    cuCtxSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_95cuCtxDetach = {"cuCtxDetach", (PyCFunction)__pyx_pw_4cuda_4cuda_95cuCtxDetach, METH_O, __pyx_doc_4cuda_4cuda_94cuCtxDetach};
static PyObject *__pyx_pw_4cuda_4cuda_95cuCtxDetach(PyObject *__pyx_self, PyObject *__pyx_v_ctx) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxDetach (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 10137, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_94cuCtxDetach(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_ctx));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_94cuCtxDetach(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__559)
  __Pyx_RefNannySetupContext("cuCtxDetach", 0);
  __Pyx_TraceCall("cuCtxDetach", __pyx_f[0], 10137, 0, __PYX_ERR(0, 10137, __pyx_L1_error));

  /* "cuda/cuda.pyx":10179
 *     cuCtxSynchronize
 *     """
 *     err = ccuda.cuCtxDetach(ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxDetach((__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10179, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10180
 *     """
 *     err = ccuda.cuCtxDetach(ctx._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10137
 * 
 * @cython.embedsignature(True)
 * def cuCtxDetach(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Decrement a context's usage-count.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxDetach", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10183
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoad(char* fname):             # <<<<<<<<<<<<<<
 *     """ Loads a compute module.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_97cuModuleLoad(PyObject *__pyx_self, PyObject *__pyx_arg_fname); /*proto*/
static char __pyx_doc_4cuda_4cuda_96cuModuleLoad[] = "cuModuleLoad(char *fname)\n Loads a compute module.\n\n    Takes a filename `fname` and loads the corresponding module `module`\n    into the current context. The CUDA driver API does not attempt to\n    lazily allocate the resources needed by a module; if the memory for\n    functions and data (constant and global) needed by the module cannot be\n    allocated, cuModuleLoad() fails. The file should be a cubin file as\n    output by nvcc, or a PTX file either as output by nvcc or handwritten,\n    or a fatbin file as output by nvcc from toolchain 4.0 or later.\n\n    Parameters\n    ----------\n    fname : bytes\n        Filename of module to load\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_PTX\n        CUDA_ERROR_UNSUPPORTED_PTX_VERSION\n        CUDA_ERROR_NOT_FOUND\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_FILE_NOT_FOUND\n        CUDA_ERROR_NO_BINARY_FOR_GPU\n        CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n        CUDA_ERROR_JIT_COMPILER_NOT_FOUND\n    module : CUmodule\n        Returned module\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_97cuModuleLoad = {"cuModuleLoad", (PyCFunction)__pyx_pw_4cuda_4cuda_97cuModuleLoad, METH_O, __pyx_doc_4cuda_4cuda_96cuModuleLoad};
static PyObject *__pyx_pw_4cuda_4cuda_97cuModuleLoad(PyObject *__pyx_self, PyObject *__pyx_arg_fname) {
  char *__pyx_v_fname;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleLoad (wrapper)", 0);
  assert(__pyx_arg_fname); {
    __pyx_v_fname = __Pyx_PyObject_AsWritableString(__pyx_arg_fname); if (unlikely((!__pyx_v_fname) && PyErr_Occurred())) __PYX_ERR(0, 10183, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoad", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_96cuModuleLoad(__pyx_self, ((char *)__pyx_v_fname));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_96cuModuleLoad(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_fname) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_module = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__560)
  __Pyx_RefNannySetupContext("cuModuleLoad", 0);
  __Pyx_TraceCall("cuModuleLoad", __pyx_f[0], 10183, 0, __PYX_ERR(0, 10183, __pyx_L1_error));

  /* "cuda/cuda.pyx":10229
 *     cuModuleUnload
 *     """
 *     cdef CUmodule module = CUmodule()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleLoad(module._ptr, fname)
 *     return (CUresult(err), module)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10230
 *     """
 *     cdef CUmodule module = CUmodule()
 *     err = ccuda.cuModuleLoad(module._ptr, fname)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), module)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuModuleLoad(__pyx_v_module->_ptr, __pyx_v_fname); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10230, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":10231
 *     cdef CUmodule module = CUmodule()
 *     err = ccuda.cuModuleLoad(module._ptr, fname)
 *     return (CUresult(err), module)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_module));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_module));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_module));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10183
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoad(char* fname):             # <<<<<<<<<<<<<<
 *     """ Loads a compute module.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoad", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_module);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10234
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadData(image):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_99cuModuleLoadData(PyObject *__pyx_self, PyObject *__pyx_v_image); /*proto*/
static char __pyx_doc_4cuda_4cuda_98cuModuleLoadData[] = "cuModuleLoadData(image)\n Load a module's data.\n\n    Takes a pointer `image` and loads the corresponding module `module`\n    into the current context. The pointer may be obtained by mapping a\n    cubin or PTX or fatbin file, passing a cubin or PTX or fatbin file as a\n    NULL-terminated text string, or incorporating a cubin or fatbin object\n    into the executable resources and using operating system calls such as\n    Windows `FindResource()` to obtain the pointer.\n\n    Parameters\n    ----------\n    image : Any\n        Module data to load\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_PTX\n        CUDA_ERROR_UNSUPPORTED_PTX_VERSION\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NO_BINARY_FOR_GPU\n        CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n        CUDA_ERROR_JIT_COMPILER_NOT_FOUND\n    module : CUmodule\n        Returned module\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_99cuModuleLoadData = {"cuModuleLoadData", (PyCFunction)__pyx_pw_4cuda_4cuda_99cuModuleLoadData, METH_O, __pyx_doc_4cuda_4cuda_98cuModuleLoadData};
static PyObject *__pyx_pw_4cuda_4cuda_99cuModuleLoadData(PyObject *__pyx_self, PyObject *__pyx_v_image) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleLoadData (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_98cuModuleLoadData(__pyx_self, ((PyObject *)__pyx_v_image));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_98cuModuleLoadData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_image) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_module = 0;
  PyObject *__pyx_v_cimage = NULL;
  void *__pyx_v_cimage_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__561)
  __Pyx_RefNannySetupContext("cuModuleLoadData", 0);
  __Pyx_TraceCall("cuModuleLoadData", __pyx_f[0], 10234, 0, __PYX_ERR(0, 10234, __pyx_L1_error));

  /* "cuda/cuda.pyx":10277
 *     cuModuleUnload
 *     """
 *     cdef CUmodule module = CUmodule()             # <<<<<<<<<<<<<<
 *     cimage = utils.HelperInputVoidPtr(image)
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10278
 *     """
 *     cdef CUmodule module = CUmodule()
 *     cimage = utils.HelperInputVoidPtr(image)             # <<<<<<<<<<<<<<
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 *     err = ccuda.cuModuleLoadData(module._ptr, cimage_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_image); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cimage = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10279
 *     cdef CUmodule module = CUmodule()
 *     cimage = utils.HelperInputVoidPtr(image)
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleLoadData(module._ptr, cimage_ptr)
 *     return (CUresult(err), module)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cimage, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cimage_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":10280
 *     cimage = utils.HelperInputVoidPtr(image)
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 *     err = ccuda.cuModuleLoadData(module._ptr, cimage_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), module)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuModuleLoadData(__pyx_v_module->_ptr, __pyx_v_cimage_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10280, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":10281
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 *     err = ccuda.cuModuleLoadData(module._ptr, cimage_ptr)
 *     return (CUresult(err), module)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_module));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_module));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_module));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10234
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadData(image):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoadData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_module);
  __Pyx_XDECREF(__pyx_v_cimage);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10284
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadDataEx(image, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Load a module's data with options.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_101cuModuleLoadDataEx(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_100cuModuleLoadDataEx[] = "cuModuleLoadDataEx(image, unsigned int numOptions, options: List[CUjit_option], optionValues: List[Any])\n Load a module's data with options.\n\n    Takes a pointer `image` and loads the corresponding module `module`\n    into the current context. The pointer may be obtained by mapping a\n    cubin or PTX or fatbin file, passing a cubin or PTX or fatbin file as a\n    NULL-terminated text string, or incorporating a cubin or fatbin object\n    into the executable resources and using operating system calls such as\n    Windows `FindResource()` to obtain the pointer. Options are passed as\n    an array via `options` and any corresponding parameters are passed in\n    `optionValues`. The number of total options is supplied via\n    `numOptions`. Any outputs will be returned via `optionValues`.\n\n    Parameters\n    ----------\n    image : Any\n        Module data to load\n    numOptions : unsigned int\n        Number of options\n    options : List[CUjit_option]\n        Options for JIT\n    optionValues : List[Any]\n        Option values for JIT\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_PTX\n        CUDA_ERROR_UNSUPPORTED_PTX_VERSION\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NO_BINARY_FOR_GPU\n        CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n        CUDA_ERROR_JIT_COMPILER_NOT_FOUND\n    module : CUmodule\n        Returned module\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_101cuModuleLoadDataEx = {"cuModuleLoadDataEx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_101cuModuleLoadDataEx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_100cuModuleLoadDataEx};
static PyObject *__pyx_pw_4cuda_4cuda_101cuModuleLoadDataEx(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_image = 0;
  unsigned int __pyx_v_numOptions;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_optionValues = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleLoadDataEx (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_image,&__pyx_n_s_numOptions,&__pyx_n_s_options,&__pyx_n_s_optionValues,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_image)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numOptions)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleLoadDataEx", 1, 4, 4, 1); __PYX_ERR(0, 10284, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleLoadDataEx", 1, 4, 4, 2); __PYX_ERR(0, 10284, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_optionValues)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleLoadDataEx", 1, 4, 4, 3); __PYX_ERR(0, 10284, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuModuleLoadDataEx") < 0)) __PYX_ERR(0, 10284, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_image = values[0];
    __pyx_v_numOptions = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_numOptions == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 10284, __pyx_L3_error)
    __pyx_v_options = values[2];
    __pyx_v_optionValues = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuModuleLoadDataEx", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10284, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoadDataEx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_100cuModuleLoadDataEx(__pyx_self, __pyx_v_image, __pyx_v_numOptions, __pyx_v_options, __pyx_v_optionValues);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_18cuModuleLoadDataEx_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":10337
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef CUmodule module = CUmodule()
 */

static PyObject *__pyx_pf_4cuda_4cuda_18cuModuleLoadDataEx_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_3_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10337, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_18cuModuleLoadDataEx_2generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuModuleLoadDataEx_locals_genexp, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 10337, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoadDataEx.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_18cuModuleLoadDataEx_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 10337, 0, __PYX_ERR(0, 10337, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 10337, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) { __Pyx_RaiseClosureNameError("options"); __PYX_ERR(0, 10337, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10337, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10337, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10337, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10337, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10337, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 10337, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v__x, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 10337, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10284
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadDataEx(image, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Load a module's data with options.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_100cuModuleLoadDataEx(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_image, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_module = 0;
  PyObject *__pyx_v_cimage = NULL;
  void *__pyx_v_cimage_ptr;
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_v_coptions;
  PyObject *__pyx_v_pylist = NULL;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *__pyx_v_voidStarHelper = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_18cuModuleLoadDataEx_2generator1 = 0;
  PyObject *__pyx_9genexpr51__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr52__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr52__pyx_v_pyoptionValues = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *(*__pyx_t_13)(PyObject *);
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__562)
  __Pyx_RefNannySetupContext("cuModuleLoadDataEx", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10284, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuModuleLoadDataEx", __pyx_f[0], 10284, 0, __PYX_ERR(0, 10284, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_options = __pyx_v_options;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);

  /* "cuda/cuda.pyx":10336
 *     cuModuleUnload
 *     """
 *     options = [] if options is None else options             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_options == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_options;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_options, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10337
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef CUmodule module = CUmodule()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_18cuModuleLoadDataEx_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 10337, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":10338
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")             # <<<<<<<<<<<<<<
 *     cdef CUmodule module = CUmodule()
 *     cimage = utils.HelperInputVoidPtr(image)
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__563, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 10338, __pyx_L1_error)

    /* "cuda/cuda.pyx":10337
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef CUmodule module = CUmodule()
 */
  }

  /* "cuda/cuda.pyx":10339
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef CUmodule module = CUmodule()             # <<<<<<<<<<<<<<
 *     cimage = utils.HelperInputVoidPtr(image)
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_module = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10340
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef CUmodule module = CUmodule()
 *     cimage = utils.HelperInputVoidPtr(image)             # <<<<<<<<<<<<<<
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_image); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_cimage = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10341
 *     cdef CUmodule module = CUmodule()
 *     cimage = utils.HelperInputVoidPtr(image)
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr             # <<<<<<<<<<<<<<
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cimage, __pyx_n_s_cptr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_3); if (unlikely((__pyx_t_5 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cimage_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_5));

  /* "cuda/cuda.pyx":10342
 *     cimage = utils.HelperInputVoidPtr(image)
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_6 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_6) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __PYX_ERR(0, 10342, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10343
 *     cdef void* cimage_ptr = <void*><void_ptr>cimage.cptr
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 */
  __pyx_t_6 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10343, __pyx_L1_error)
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_6) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10343, __pyx_L1_error)
    __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_7, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 10343, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10344
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10344, __pyx_L8_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_options)) {
      __pyx_t_7 = __pyx_cur_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_options); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10344, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10344, __pyx_L8_error)
    }
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10344, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10344, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10344, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10344, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_7);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10344, __pyx_L8_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr51__pyx_v_pyoptions, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr51__pyx_v_pyoptions, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10344, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 10344, __pyx_L8_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_9genexpr51__pyx_v_pyoptions); __pyx_9genexpr51__pyx_v_pyoptions = 0;
    goto __pyx_L11_exit_scope;
    __pyx_L8_error:;
    __Pyx_XDECREF(__pyx_9genexpr51__pyx_v_pyoptions); __pyx_9genexpr51__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L11_exit_scope:;
  } /* exit inner scope */
  __pyx_t_9 = __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_coptions = __pyx_t_9;

  /* "cuda/cuda.pyx":10345
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]             # <<<<<<<<<<<<<<
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuModuleLoadDataEx(module._ptr, cimage_ptr, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10345, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10345, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_cur_scope->__pyx_v_options);
    __Pyx_INCREF(__pyx_v_optionValues);
    __Pyx_GIVEREF(__pyx_v_optionValues);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_optionValues);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10345, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_7 = __pyx_t_3; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10345, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10345, __pyx_L14_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10345, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10345, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10345, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10345, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_7);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10345, __pyx_L14_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 10345, __pyx_L14_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_10 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_11);
        #else
        __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 10345, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10345, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 10345, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext;
        index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_10);
        index = 1; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_11);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 10345, __pyx_L14_error)
        __pyx_t_13 = NULL;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L18_unpacking_done;
        __pyx_L17_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 10345, __pyx_L14_error)
        __pyx_L18_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr52__pyx_v_pyoptions, __pyx_t_10);
      __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_9genexpr52__pyx_v_pyoptionValues, __pyx_t_11);
      __pyx_t_11 = 0;
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10345, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_9genexpr52__pyx_v_pyoptions);
      __Pyx_GIVEREF(__pyx_9genexpr52__pyx_v_pyoptions);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_9genexpr52__pyx_v_pyoptions);
      __Pyx_INCREF(__pyx_9genexpr52__pyx_v_pyoptionValues);
      __Pyx_GIVEREF(__pyx_9genexpr52__pyx_v_pyoptionValues);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_9genexpr52__pyx_v_pyoptionValues);
      __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option), __pyx_t_3, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10345, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 10345, __pyx_L14_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_9genexpr52__pyx_v_pyoptionValues); __pyx_9genexpr52__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr52__pyx_v_pyoptions); __pyx_9genexpr52__pyx_v_pyoptions = 0;
    goto __pyx_L19_exit_scope;
    __pyx_L14_error:;
    __Pyx_XDECREF(__pyx_9genexpr52__pyx_v_pyoptionValues); __pyx_9genexpr52__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr52__pyx_v_pyoptions); __pyx_9genexpr52__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L19_exit_scope:;
  } /* exit inner scope */
  __pyx_v_pylist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10346
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleLoadDataEx(module._ptr, cimage_ptr, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 *     return (CUresult(err), module)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __pyx_v_pylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_voidStarHelper = ((struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10347
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuModuleLoadDataEx(module._ptr, cimage_ptr, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), module)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_voidStarHelper), __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_5 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_14 = __pyx_f_4cuda_5ccuda_cuModuleLoadDataEx(__pyx_v_module->_ptr, __pyx_v_cimage_ptr, __pyx_v_numOptions, __pyx_v_coptions.data(), ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_5))); if (unlikely(__pyx_t_14 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10347, __pyx_L1_error)
  __pyx_v_err = __pyx_t_14;

  /* "cuda/cuda.pyx":10348
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuModuleLoadDataEx(module._ptr, cimage_ptr, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 *     return (CUresult(err), module)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_module));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_module));
  PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_module));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10284
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadDataEx(image, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Load a module's data with options.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoadDataEx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_module);
  __Pyx_XDECREF(__pyx_v_cimage);
  __Pyx_XDECREF(__pyx_v_pylist);
  __Pyx_XDECREF((PyObject *)__pyx_v_voidStarHelper);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_18cuModuleLoadDataEx_2generator1);
  __Pyx_XDECREF(__pyx_9genexpr51__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr52__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr52__pyx_v_pyoptionValues);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10351
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadFatBinary(fatCubin):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_103cuModuleLoadFatBinary(PyObject *__pyx_self, PyObject *__pyx_v_fatCubin); /*proto*/
static char __pyx_doc_4cuda_4cuda_102cuModuleLoadFatBinary[] = "cuModuleLoadFatBinary(fatCubin)\n Load a module's data.\n\n    Takes a pointer `fatCubin` and loads the corresponding module `module`\n    into the current context. The pointer represents a fat binary object,\n    which is a collection of different cubin and/or PTX files, all\n    representing the same device code, but compiled and optimized for\n    different architectures.\n\n    Prior to CUDA 4.0, there was no documented API for constructing and\n    using fat binary objects by programmers. Starting with CUDA 4.0, fat\n    binary objects can be constructed by providing the -fatbin option to\n    nvcc. More information can be found in the nvcc document.\n\n    Parameters\n    ----------\n    fatCubin : Any\n        Fat binary to load\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_PTX\n        CUDA_ERROR_UNSUPPORTED_PTX_VERSION\n        CUDA_ERROR_NOT_FOUND\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NO_BINARY_FOR_GPU\n        CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n        CUDA_ERROR_JIT_COMPILER_NOT_FOUND\n    module : CUmodule\n        Returned module\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleUnload\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_103cuModuleLoadFatBinary = {"cuModuleLoadFatBinary", (PyCFunction)__pyx_pw_4cuda_4cuda_103cuModuleLoadFatBinary, METH_O, __pyx_doc_4cuda_4cuda_102cuModuleLoadFatBinary};
static PyObject *__pyx_pw_4cuda_4cuda_103cuModuleLoadFatBinary(PyObject *__pyx_self, PyObject *__pyx_v_fatCubin) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleLoadFatBinary (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_102cuModuleLoadFatBinary(__pyx_self, ((PyObject *)__pyx_v_fatCubin));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_102cuModuleLoadFatBinary(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fatCubin) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_module = 0;
  PyObject *__pyx_v_cfatCubin = NULL;
  void *__pyx_v_cfatCubin_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__565)
  __Pyx_RefNannySetupContext("cuModuleLoadFatBinary", 0);
  __Pyx_TraceCall("cuModuleLoadFatBinary", __pyx_f[0], 10351, 0, __PYX_ERR(0, 10351, __pyx_L1_error));

  /* "cuda/cuda.pyx":10399
 *     cuModuleUnload
 *     """
 *     cdef CUmodule module = CUmodule()             # <<<<<<<<<<<<<<
 *     cfatCubin = utils.HelperInputVoidPtr(fatCubin)
 *     cdef void* cfatCubin_ptr = <void*><void_ptr>cfatCubin.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10400
 *     """
 *     cdef CUmodule module = CUmodule()
 *     cfatCubin = utils.HelperInputVoidPtr(fatCubin)             # <<<<<<<<<<<<<<
 *     cdef void* cfatCubin_ptr = <void*><void_ptr>cfatCubin.cptr
 *     err = ccuda.cuModuleLoadFatBinary(module._ptr, cfatCubin_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_fatCubin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cfatCubin = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10401
 *     cdef CUmodule module = CUmodule()
 *     cfatCubin = utils.HelperInputVoidPtr(fatCubin)
 *     cdef void* cfatCubin_ptr = <void*><void_ptr>cfatCubin.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleLoadFatBinary(module._ptr, cfatCubin_ptr)
 *     return (CUresult(err), module)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cfatCubin, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cfatCubin_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":10402
 *     cfatCubin = utils.HelperInputVoidPtr(fatCubin)
 *     cdef void* cfatCubin_ptr = <void*><void_ptr>cfatCubin.cptr
 *     err = ccuda.cuModuleLoadFatBinary(module._ptr, cfatCubin_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), module)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuModuleLoadFatBinary(__pyx_v_module->_ptr, __pyx_v_cfatCubin_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10402, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":10403
 *     cdef void* cfatCubin_ptr = <void*><void_ptr>cfatCubin.cptr
 *     err = ccuda.cuModuleLoadFatBinary(module._ptr, cfatCubin_ptr)
 *     return (CUresult(err), module)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_module));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_module));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_module));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10351
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadFatBinary(fatCubin):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuModuleLoadFatBinary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_module);
  __Pyx_XDECREF(__pyx_v_cfatCubin);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10406
 * 
 * @cython.embedsignature(True)
 * def cuModuleUnload(hmod not None : CUmodule):             # <<<<<<<<<<<<<<
 *     """ Unloads a module.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_105cuModuleUnload(PyObject *__pyx_self, PyObject *__pyx_v_hmod); /*proto*/
static char __pyx_doc_4cuda_4cuda_104cuModuleUnload[] = "cuModuleUnload(CUmodule hmod: CUmodule)\n Unloads a module.\n\n    Unloads a module `hmod` from the current context.\n\n    Parameters\n    ----------\n    hmod : CUmodule\n        Module to unload\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_105cuModuleUnload = {"cuModuleUnload", (PyCFunction)__pyx_pw_4cuda_4cuda_105cuModuleUnload, METH_O, __pyx_doc_4cuda_4cuda_104cuModuleUnload};
static PyObject *__pyx_pw_4cuda_4cuda_105cuModuleUnload(PyObject *__pyx_self, PyObject *__pyx_v_hmod) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleUnload (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hmod), __pyx_ptype_4cuda_4cuda_CUmodule, 0, "hmod", 0))) __PYX_ERR(0, 10406, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_104cuModuleUnload(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_v_hmod));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_104cuModuleUnload(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__566)
  __Pyx_RefNannySetupContext("cuModuleUnload", 0);
  __Pyx_TraceCall("cuModuleUnload", __pyx_f[0], 10406, 0, __PYX_ERR(0, 10406, __pyx_L1_error));

  /* "cuda/cuda.pyx":10437
 *     cuModuleLoadFatBinary
 *     """
 *     err = ccuda.cuModuleUnload(hmod._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuModuleUnload((__pyx_v_hmod->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10437, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10438
 *     """
 *     err = ccuda.cuModuleUnload(hmod._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10406
 * 
 * @cython.embedsignature(True)
 * def cuModuleUnload(hmod not None : CUmodule):             # <<<<<<<<<<<<<<
 *     """ Unloads a module.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuModuleUnload", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10441
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetFunction(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a function handle.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_107cuModuleGetFunction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_106cuModuleGetFunction[] = "cuModuleGetFunction(CUmodule hmod: CUmodule, char *name)\n Returns a function handle.\n\n    Returns in `*hfunc` the handle of the function of name `name` located\n    in module `hmod`. If no function of that name exists,\n    cuModuleGetFunction() returns CUDA_ERROR_NOT_FOUND.\n\n    Parameters\n    ----------\n    hmod : CUmodule\n        Module to retrieve function from\n    name : bytes\n        Name of function to retrieve\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_FOUND\n    hfunc : CUfunction\n        Returned function handle\n\n    See Also\n    --------\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_107cuModuleGetFunction = {"cuModuleGetFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_107cuModuleGetFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_106cuModuleGetFunction};
static PyObject *__pyx_pw_4cuda_4cuda_107cuModuleGetFunction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod = 0;
  char *__pyx_v_name;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleGetFunction (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hmod,&__pyx_n_s_name_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hmod)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleGetFunction", 1, 2, 2, 1); __PYX_ERR(0, 10441, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuModuleGetFunction") < 0)) __PYX_ERR(0, 10441, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hmod = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)values[0]);
    __pyx_v_name = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) __PYX_ERR(0, 10441, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuModuleGetFunction", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10441, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetFunction", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hmod), __pyx_ptype_4cuda_4cuda_CUmodule, 0, "hmod", 0))) __PYX_ERR(0, 10441, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_106cuModuleGetFunction(__pyx_self, __pyx_v_hmod, __pyx_v_name);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_106cuModuleGetFunction(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__567)
  __Pyx_RefNannySetupContext("cuModuleGetFunction", 0);
  __Pyx_TraceCall("cuModuleGetFunction", __pyx_f[0], 10441, 0, __PYX_ERR(0, 10441, __pyx_L1_error));

  /* "cuda/cuda.pyx":10477
 *     cuModuleUnload
 *     """
 *     cdef CUfunction hfunc = CUfunction()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleGetFunction(hfunc._ptr, hmod._ptr[0], name)
 *     return (CUresult(err), hfunc)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUfunction)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10478
 *     """
 *     cdef CUfunction hfunc = CUfunction()
 *     err = ccuda.cuModuleGetFunction(hfunc._ptr, hmod._ptr[0], name)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), hfunc)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuModuleGetFunction(__pyx_v_hfunc->_ptr, (__pyx_v_hmod->_ptr[0]), __pyx_v_name); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10478, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":10479
 *     cdef CUfunction hfunc = CUfunction()
 *     err = ccuda.cuModuleGetFunction(hfunc._ptr, hmod._ptr[0], name)
 *     return (CUresult(err), hfunc)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_hfunc));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_hfunc));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_hfunc));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10441
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetFunction(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a function handle.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetFunction", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_hfunc);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10482
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetGlobal(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a global pointer from a module.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_109cuModuleGetGlobal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_108cuModuleGetGlobal[] = "cuModuleGetGlobal(CUmodule hmod: CUmodule, char *name)\n Returns a global pointer from a module.\n\n    Returns in `*dptr` and `*bytes` the base pointer and size of the global\n    of name `name` located in module `hmod`. If no variable of that name\n    exists, cuModuleGetGlobal() returns CUDA_ERROR_NOT_FOUND. Both\n    parameters `dptr` and `numbytes` are optional. If one of them is NULL,\n    it is ignored.\n\n    Parameters\n    ----------\n    hmod : CUmodule\n        Module to retrieve global from\n    name : bytes\n        Name of global to retrieve\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_FOUND\n    dptr : CUdeviceptr\n        Returned global device pointer\n    numbytes : int\n        Returned global size in bytes\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    cudaGetSymbolAddress\n    cudaGetSymbolSize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_109cuModuleGetGlobal = {"cuModuleGetGlobal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_109cuModuleGetGlobal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_108cuModuleGetGlobal};
static PyObject *__pyx_pw_4cuda_4cuda_109cuModuleGetGlobal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod = 0;
  char *__pyx_v_name;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleGetGlobal (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hmod,&__pyx_n_s_name_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hmod)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleGetGlobal", 1, 2, 2, 1); __PYX_ERR(0, 10482, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuModuleGetGlobal") < 0)) __PYX_ERR(0, 10482, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hmod = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)values[0]);
    __pyx_v_name = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) __PYX_ERR(0, 10482, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuModuleGetGlobal", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10482, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hmod), __pyx_ptype_4cuda_4cuda_CUmodule, 0, "hmod", 0))) __PYX_ERR(0, 10482, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_108cuModuleGetGlobal(__pyx_self, __pyx_v_hmod, __pyx_v_name);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_108cuModuleGetGlobal(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  size_t __pyx_v_numbytes;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__568)
  __Pyx_RefNannySetupContext("cuModuleGetGlobal", 0);
  __Pyx_TraceCall("cuModuleGetGlobal", __pyx_f[0], 10482, 0, __PYX_ERR(0, 10482, __pyx_L1_error));

  /* "cuda/cuda.pyx":10524
 *     cudaGetSymbolSize
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cdef size_t numbytes = 0
 *     err = ccuda.cuModuleGetGlobal(dptr._ptr, &numbytes, hmod._ptr[0], name)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10525
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     cdef size_t numbytes = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleGetGlobal(dptr._ptr, &numbytes, hmod._ptr[0], name)
 *     return (CUresult(err), dptr, numbytes)
 */
  __pyx_v_numbytes = 0;

  /* "cuda/cuda.pyx":10526
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     cdef size_t numbytes = 0
 *     err = ccuda.cuModuleGetGlobal(dptr._ptr, &numbytes, hmod._ptr[0], name)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr, numbytes)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuModuleGetGlobal(__pyx_v_dptr->_ptr, (&__pyx_v_numbytes), (__pyx_v_hmod->_ptr[0]), __pyx_v_name); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10526, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":10527
 *     cdef size_t numbytes = 0
 *     err = ccuda.cuModuleGetGlobal(dptr._ptr, &numbytes, hmod._ptr[0], name)
 *     return (CUresult(err), dptr, numbytes)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_numbytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10482
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetGlobal(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a global pointer from a module.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10530
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetTexRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_111cuModuleGetTexRef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_110cuModuleGetTexRef[] = "cuModuleGetTexRef(CUmodule hmod: CUmodule, char *name)\n Returns a handle to a texture reference.\n\n    Returns in `*pTexRef` the handle of the texture reference of name\n    `name` in the module `hmod`. If no texture reference of that name\n    exists, cuModuleGetTexRef() returns CUDA_ERROR_NOT_FOUND. This texture\n    reference handle should not be destroyed, since it will be destroyed\n    when the module is unloaded.\n\n    Parameters\n    ----------\n    hmod : CUmodule\n        Module to retrieve texture reference from\n    name : bytes\n        Name of texture reference to retrieve\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_FOUND\n    pTexRef : CUtexref\n        Returned texture reference\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetSurfRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    cudaGetTextureReference\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_111cuModuleGetTexRef = {"cuModuleGetTexRef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_111cuModuleGetTexRef, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_110cuModuleGetTexRef};
static PyObject *__pyx_pw_4cuda_4cuda_111cuModuleGetTexRef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod = 0;
  char *__pyx_v_name;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleGetTexRef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hmod,&__pyx_n_s_name_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hmod)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleGetTexRef", 1, 2, 2, 1); __PYX_ERR(0, 10530, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuModuleGetTexRef") < 0)) __PYX_ERR(0, 10530, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hmod = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)values[0]);
    __pyx_v_name = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) __PYX_ERR(0, 10530, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuModuleGetTexRef", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10530, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetTexRef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hmod), __pyx_ptype_4cuda_4cuda_CUmodule, 0, "hmod", 0))) __PYX_ERR(0, 10530, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_110cuModuleGetTexRef(__pyx_self, __pyx_v_hmod, __pyx_v_name);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_110cuModuleGetTexRef(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_pTexRef = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__569)
  __Pyx_RefNannySetupContext("cuModuleGetTexRef", 0);
  __Pyx_TraceCall("cuModuleGetTexRef", __pyx_f[0], 10530, 0, __PYX_ERR(0, 10530, __pyx_L1_error));

  /* "cuda/cuda.pyx":10570
 *     cudaGetTextureReference
 *     """
 *     cdef CUtexref pTexRef = CUtexref()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleGetTexRef(pTexRef._ptr, hmod._ptr[0], name)
 *     return (CUresult(err), pTexRef)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexref)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10571
 *     """
 *     cdef CUtexref pTexRef = CUtexref()
 *     err = ccuda.cuModuleGetTexRef(pTexRef._ptr, hmod._ptr[0], name)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pTexRef)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuModuleGetTexRef(__pyx_v_pTexRef->_ptr, (__pyx_v_hmod->_ptr[0]), __pyx_v_name); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10571, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":10572
 *     cdef CUtexref pTexRef = CUtexref()
 *     err = ccuda.cuModuleGetTexRef(pTexRef._ptr, hmod._ptr[0], name)
 *     return (CUresult(err), pTexRef)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pTexRef));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pTexRef));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pTexRef));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10530
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetTexRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetTexRef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pTexRef);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10575
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetSurfRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a surface reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_113cuModuleGetSurfRef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_112cuModuleGetSurfRef[] = "cuModuleGetSurfRef(CUmodule hmod: CUmodule, char *name)\n Returns a handle to a surface reference.\n\n    Returns in `*pSurfRef` the handle of the surface reference of name\n    `name` in the module `hmod`. If no surface reference of that name\n    exists, cuModuleGetSurfRef() returns CUDA_ERROR_NOT_FOUND.\n\n    Parameters\n    ----------\n    hmod : CUmodule\n        Module to retrieve surface reference from\n    name : bytes\n        Name of surface reference to retrieve\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_FOUND\n    pSurfRef : CUsurfref\n        Returned surface reference\n\n    See Also\n    --------\n    cuModuleGetFunction\n    cuModuleGetGlobal\n    cuModuleGetTexRef\n    cuModuleLoad\n    cuModuleLoadData\n    cuModuleLoadDataEx\n    cuModuleLoadFatBinary\n    cuModuleUnload\n    cudaGetSurfaceReference\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_113cuModuleGetSurfRef = {"cuModuleGetSurfRef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_113cuModuleGetSurfRef, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_112cuModuleGetSurfRef};
static PyObject *__pyx_pw_4cuda_4cuda_113cuModuleGetSurfRef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod = 0;
  char *__pyx_v_name;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuModuleGetSurfRef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hmod,&__pyx_n_s_name_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hmod)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuModuleGetSurfRef", 1, 2, 2, 1); __PYX_ERR(0, 10575, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuModuleGetSurfRef") < 0)) __PYX_ERR(0, 10575, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hmod = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)values[0]);
    __pyx_v_name = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) __PYX_ERR(0, 10575, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuModuleGetSurfRef", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10575, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetSurfRef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hmod), __pyx_ptype_4cuda_4cuda_CUmodule, 0, "hmod", 0))) __PYX_ERR(0, 10575, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_112cuModuleGetSurfRef(__pyx_self, __pyx_v_hmod, __pyx_v_name);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_112cuModuleGetSurfRef(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod, char *__pyx_v_name) {
  struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_pSurfRef = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__570)
  __Pyx_RefNannySetupContext("cuModuleGetSurfRef", 0);
  __Pyx_TraceCall("cuModuleGetSurfRef", __pyx_f[0], 10575, 0, __PYX_ERR(0, 10575, __pyx_L1_error));

  /* "cuda/cuda.pyx":10613
 *     cudaGetSurfaceReference
 *     """
 *     cdef CUsurfref pSurfRef = CUsurfref()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuModuleGetSurfRef(pSurfRef._ptr, hmod._ptr[0], name)
 *     return (CUresult(err), pSurfRef)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfref)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pSurfRef = ((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10614
 *     """
 *     cdef CUsurfref pSurfRef = CUsurfref()
 *     err = ccuda.cuModuleGetSurfRef(pSurfRef._ptr, hmod._ptr[0], name)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pSurfRef)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuModuleGetSurfRef(__pyx_v_pSurfRef->_ptr, (__pyx_v_hmod->_ptr[0]), __pyx_v_name); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10614, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":10615
 *     cdef CUsurfref pSurfRef = CUsurfref()
 *     err = ccuda.cuModuleGetSurfRef(pSurfRef._ptr, hmod._ptr[0], name)
 *     return (CUresult(err), pSurfRef)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pSurfRef));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pSurfRef));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pSurfRef));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10575
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetSurfRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a surface reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuModuleGetSurfRef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pSurfRef);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10618
 * 
 * @cython.embedsignature(True)
 * def cuLinkCreate(unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Creates a pending JIT linker invocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_115cuLinkCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_114cuLinkCreate[] = "cuLinkCreate(unsigned int numOptions, options: List[CUjit_option], optionValues: List[Any])\n Creates a pending JIT linker invocation.\n\n    If the call is successful, the caller owns the returned CUlinkState,\n    which should eventually be destroyed with cuLinkDestroy. The device\n    code machine size (32 or 64 bit) will match the calling application.\n\n    Both linker and compiler options may be specified. Compiler options\n    will be applied to inputs to this linker action which must be compiled\n    from PTX. The options CU_JIT_WALL_TIME,\n    CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES, and\n    CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES will accumulate data until the\n    CUlinkState is destroyed.\n\n    `optionValues` must remain valid for the life of the CUlinkState if\n    output options are used. No other references to inputs are maintained\n    after this call returns.\n\n    Parameters\n    ----------\n    numOptions : unsigned int\n        Size of options arrays\n    options : List[CUjit_option]\n        Array of linker and compiler options\n    optionValues : List[Any]\n        Array of option values, each cast to void *\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_JIT_COMPILER_NOT_FOUND\n    stateOut : CUlinkState\n        On success, this will contain a CUlinkState to specify and complete\n        this action\n\n    See Also\n    --------\n    cuLinkAddData\n    cuLinkAddFile\n    cuLinkComplete\n    cuLinkDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_115cuLinkCreate = {"cuLinkCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_115cuLinkCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_114cuLinkCreate};
static PyObject *__pyx_pw_4cuda_4cuda_115cuLinkCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned int __pyx_v_numOptions;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_optionValues = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLinkCreate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numOptions,&__pyx_n_s_options,&__pyx_n_s_optionValues,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numOptions)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkCreate", 1, 3, 3, 1); __PYX_ERR(0, 10618, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_optionValues)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkCreate", 1, 3, 3, 2); __PYX_ERR(0, 10618, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLinkCreate") < 0)) __PYX_ERR(0, 10618, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_numOptions = __Pyx_PyInt_As_unsigned_int(values[0]); if (unlikely((__pyx_v_numOptions == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 10618, __pyx_L3_error)
    __pyx_v_options = values[1];
    __pyx_v_optionValues = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLinkCreate", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10618, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLinkCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_114cuLinkCreate(__pyx_self, __pyx_v_numOptions, __pyx_v_options, __pyx_v_optionValues);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_12cuLinkCreate_2generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":10667
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */

static PyObject *__pyx_pf_4cuda_4cuda_12cuLinkCreate_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_5_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_5_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10667, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_12cuLinkCreate_2generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuLinkCreate_locals_genexpr, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 10667, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLinkCreate.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_12cuLinkCreate_2generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 10667, 0, __PYX_ERR(0, 10667, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 10667, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) { __Pyx_RaiseClosureNameError("options"); __PYX_ERR(0, 10667, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10667, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10667, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10667, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10667, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10667, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 10667, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v__x, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 10667, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10618
 * 
 * @cython.embedsignature(True)
 * def cuLinkCreate(unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Creates a pending JIT linker invocation.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_114cuLinkCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *__pyx_cur_scope;
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_v_coptions;
  PyObject *__pyx_v_pylist = NULL;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *__pyx_v_voidStarHelper = 0;
  struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_stateOut = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_v_option = NULL;
  PyObject *__pyx_gb_4cuda_4cuda_12cuLinkCreate_2generator2 = 0;
  PyObject *__pyx_9genexpr54__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr55__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr55__pyx_v_pyoptionValues = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *(*__pyx_t_12)(PyObject *);
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_13;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_14;
  int __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__571)
  __Pyx_RefNannySetupContext("cuLinkCreate", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10618, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuLinkCreate", __pyx_f[0], 10618, 0, __PYX_ERR(0, 10618, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_options = __pyx_v_options;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);

  /* "cuda/cuda.pyx":10666
 *     cuLinkDestroy
 *     """
 *     options = [] if options is None else options             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_options == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_options;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_options, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10667
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_12cuLinkCreate_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 10667, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":10668
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")             # <<<<<<<<<<<<<<
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__563, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10668, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 10668, __pyx_L1_error)

    /* "cuda/cuda.pyx":10667
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */
  }

  /* "cuda/cuda.pyx":10669
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10669, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 10669, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10670
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 */
  __pyx_t_5 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10670, __pyx_L1_error)
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_5 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10670, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 10670, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10671
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10671, __pyx_L8_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_options)) {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_options); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10671, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10671, __pyx_L8_error)
    }
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 10671, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10671, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 10671, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10671, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_7(__pyx_t_6);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10671, __pyx_L8_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr54__pyx_v_pyoptions, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr54__pyx_v_pyoptions, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10671, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 10671, __pyx_L8_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_9genexpr54__pyx_v_pyoptions); __pyx_9genexpr54__pyx_v_pyoptions = 0;
    goto __pyx_L11_exit_scope;
    __pyx_L8_error:;
    __Pyx_XDECREF(__pyx_9genexpr54__pyx_v_pyoptions); __pyx_9genexpr54__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L11_exit_scope:;
  } /* exit inner scope */
  __pyx_t_8 = __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10671, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_coptions = __pyx_t_8;

  /* "cuda/cuda.pyx":10672
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]             # <<<<<<<<<<<<<<
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef CUlinkState stateOut = CUlinkState()
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10672, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10672, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_options);
    __Pyx_INCREF(__pyx_v_optionValues);
    __Pyx_GIVEREF(__pyx_v_optionValues);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_optionValues);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10672, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10672, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10672, __pyx_L14_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 10672, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10672, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 10672, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10672, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_7(__pyx_t_6);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10672, __pyx_L14_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 10672, __pyx_L14_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        #else
        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 10672, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 10672, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_11 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10672, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
        index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_9);
        index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_10);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(0, 10672, __pyx_L14_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L18_unpacking_done;
        __pyx_L17_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 10672, __pyx_L14_error)
        __pyx_L18_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr55__pyx_v_pyoptions, __pyx_t_9);
      __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_9genexpr55__pyx_v_pyoptionValues, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10672, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_9genexpr55__pyx_v_pyoptions);
      __Pyx_GIVEREF(__pyx_9genexpr55__pyx_v_pyoptions);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_9genexpr55__pyx_v_pyoptions);
      __Pyx_INCREF(__pyx_9genexpr55__pyx_v_pyoptionValues);
      __Pyx_GIVEREF(__pyx_9genexpr55__pyx_v_pyoptionValues);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_9genexpr55__pyx_v_pyoptionValues);
      __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option), __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 10672, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 10672, __pyx_L14_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_9genexpr55__pyx_v_pyoptionValues); __pyx_9genexpr55__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr55__pyx_v_pyoptions); __pyx_9genexpr55__pyx_v_pyoptions = 0;
    goto __pyx_L19_exit_scope;
    __pyx_L14_error:;
    __Pyx_XDECREF(__pyx_9genexpr55__pyx_v_pyoptionValues); __pyx_9genexpr55__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr55__pyx_v_pyoptions); __pyx_9genexpr55__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L19_exit_scope:;
  } /* exit inner scope */
  __pyx_v_pylist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10673
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)             # <<<<<<<<<<<<<<
 *     cdef CUlinkState stateOut = CUlinkState()
 *     err = ccuda.cuLinkCreate(numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr, stateOut._ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __pyx_v_pylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_voidStarHelper = ((struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10674
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef CUlinkState stateOut = CUlinkState()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLinkCreate(numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr, stateOut._ptr)
 *     stateOut._keepalive.append(voidStarHelper)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUlinkState)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stateOut = ((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10675
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef CUlinkState stateOut = CUlinkState()
 *     err = ccuda.cuLinkCreate(numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr, stateOut._ptr)             # <<<<<<<<<<<<<<
 *     stateOut._keepalive.append(voidStarHelper)
 *     for option in pylist:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_voidStarHelper), __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_13 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_13 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10675, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_14 = __pyx_f_4cuda_5ccuda_cuLinkCreate(__pyx_v_numOptions, __pyx_v_coptions.data(), ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_13)), __pyx_v_stateOut->_ptr); if (unlikely(__pyx_t_14 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10675, __pyx_L1_error)
  __pyx_v_err = __pyx_t_14;

  /* "cuda/cuda.pyx":10676
 *     cdef CUlinkState stateOut = CUlinkState()
 *     err = ccuda.cuLinkCreate(numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr, stateOut._ptr)
 *     stateOut._keepalive.append(voidStarHelper)             # <<<<<<<<<<<<<<
 *     for option in pylist:
 *         stateOut._keepalive.append(option)
 */
  if (unlikely(__pyx_v_stateOut->_keepalive == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(0, 10676, __pyx_L1_error)
  }
  __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_stateOut->_keepalive, ((PyObject *)__pyx_v_voidStarHelper)); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 10676, __pyx_L1_error)

  /* "cuda/cuda.pyx":10677
 *     err = ccuda.cuLinkCreate(numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr, stateOut._ptr)
 *     stateOut._keepalive.append(voidStarHelper)
 *     for option in pylist:             # <<<<<<<<<<<<<<
 *         stateOut._keepalive.append(option)
 *     return (CUresult(err), stateOut)
 */
  __pyx_t_1 = __pyx_v_pylist; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 10677, __pyx_L1_error)
    #else
    __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_option, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "cuda/cuda.pyx":10678
 *     stateOut._keepalive.append(voidStarHelper)
 *     for option in pylist:
 *         stateOut._keepalive.append(option)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), stateOut)
 * 
 */
    if (unlikely(__pyx_v_stateOut->_keepalive == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(0, 10678, __pyx_L1_error)
    }
    __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_stateOut->_keepalive, __pyx_v_option); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 10678, __pyx_L1_error)

    /* "cuda/cuda.pyx":10677
 *     err = ccuda.cuLinkCreate(numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr, stateOut._ptr)
 *     stateOut._keepalive.append(voidStarHelper)
 *     for option in pylist:             # <<<<<<<<<<<<<<
 *         stateOut._keepalive.append(option)
 *     return (CUresult(err), stateOut)
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10679
 *     for option in pylist:
 *         stateOut._keepalive.append(option)
 *     return (CUresult(err), stateOut)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_10 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 10679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_10);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 10679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_stateOut));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_stateOut));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_stateOut));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10618
 * 
 * @cython.embedsignature(True)
 * def cuLinkCreate(unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Creates a pending JIT linker invocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuLinkCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pylist);
  __Pyx_XDECREF((PyObject *)__pyx_v_voidStarHelper);
  __Pyx_XDECREF((PyObject *)__pyx_v_stateOut);
  __Pyx_XDECREF(__pyx_v_option);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_12cuLinkCreate_2generator2);
  __Pyx_XDECREF(__pyx_9genexpr54__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr55__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr55__pyx_v_pyoptionValues);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10682
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddData(state not None : CUlinkState, typename not None : CUjitInputType, data, size_t size, char* name, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add an input to a pending linker invocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_117cuLinkAddData(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_116cuLinkAddData[] = "cuLinkAddData(CUlinkState state: CUlinkState, typename: CUjitInputType, data, size_t size, char *name, unsigned int numOptions, options: List[CUjit_option], optionValues: List[Any])\n Add an input to a pending linker invocation.\n\n    Ownership of `data` is retained by the caller. No reference is retained\n    to any inputs after this call returns.\n\n    This method accepts only compiler options, which are used if the data\n    must be compiled from PTX, and does not accept any of CU_JIT_WALL_TIME,\n    CU_JIT_INFO_LOG_BUFFER, CU_JIT_ERROR_LOG_BUFFER,\n    CU_JIT_TARGET_FROM_CUCONTEXT, or CU_JIT_TARGET.\n\n    Parameters\n    ----------\n    state : CUlinkState\n        A pending linker action.\n    typename : CUjitInputType\n        The type of the input data.\n    data : Any\n        The input data. PTX must be NULL-terminated.\n    size : size_t\n        The length of the input data.\n    name : bytes\n        An optional name for this input in log messages.\n    numOptions : unsigned int\n        Size of options.\n    options : List[CUjit_option]\n        Options to be applied only for this input (overrides options from\n        cuLinkCreate).\n    optionValues : List[Any]\n        Array of option values, each cast to void *.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_IMAGE\n        CUDA_ERROR_INVALID_PTX\n        CUDA_ERROR_UNSUPPORTED_PTX_VERSION\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NO_BINARY_FOR_GPU\n    None\n        None\n\n    See Also\n    --------\n    cuLinkCreate\n    cuLinkAddFile\n    cuLinkComplete\n    cuLinkDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_117cuLinkAddData = {"cuLinkAddData", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_117cuLinkAddData, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_116cuLinkAddData};
static PyObject *__pyx_pw_4cuda_4cuda_117cuLinkAddData(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state = 0;
  PyObject *__pyx_v_typename = 0;
  PyObject *__pyx_v_data = 0;
  size_t __pyx_v_size;
  char *__pyx_v_name;
  unsigned int __pyx_v_numOptions;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_optionValues = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLinkAddData (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_state,&__pyx_n_s_typename,&__pyx_n_s_data,&__pyx_n_s_size_2,&__pyx_n_s_name_2,&__pyx_n_s_numOptions,&__pyx_n_s_options,&__pyx_n_s_optionValues,0};
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_state)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typename)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 1); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 2); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 3); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 4); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numOptions)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 5); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 6); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_optionValues)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, 7); __PYX_ERR(0, 10682, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLinkAddData") < 0)) __PYX_ERR(0, 10682, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
    }
    __pyx_v_state = ((struct __pyx_obj_4cuda_4cuda_CUlinkState *)values[0]);
    __pyx_v_typename = values[1];
    __pyx_v_data = values[2];
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 10682, __pyx_L3_error)
    __pyx_v_name = __Pyx_PyObject_AsWritableString(values[4]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) __PYX_ERR(0, 10682, __pyx_L3_error)
    __pyx_v_numOptions = __Pyx_PyInt_As_unsigned_int(values[5]); if (unlikely((__pyx_v_numOptions == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 10682, __pyx_L3_error)
    __pyx_v_options = values[6];
    __pyx_v_optionValues = values[7];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLinkAddData", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10682, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLinkAddData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_4cuda_4cuda_CUlinkState, 0, "state", 0))) __PYX_ERR(0, 10682, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_typename) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "typename"); __PYX_ERR(0, 10682, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_116cuLinkAddData(__pyx_self, __pyx_v_state, __pyx_v_typename, __pyx_v_data, __pyx_v_size, __pyx_v_name, __pyx_v_numOptions, __pyx_v_options, __pyx_v_optionValues);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_13cuLinkAddData_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":10735
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */

static PyObject *__pyx_pf_4cuda_4cuda_13cuLinkAddData_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_7_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_7_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10735, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_13cuLinkAddData_2generator3, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuLinkAddData_locals_genexpr, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 10735, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLinkAddData.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_13cuLinkAddData_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 10735, 0, __PYX_ERR(0, 10735, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 10735, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) { __Pyx_RaiseClosureNameError("options"); __PYX_ERR(0, 10735, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10735, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10735, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10735, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10735, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10735, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 10735, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v__x, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 10735, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10682
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddData(state not None : CUlinkState, typename not None : CUjitInputType, data, size_t size, char* name, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add an input to a pending linker invocation.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_116cuLinkAddData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state, PyObject *__pyx_v_typename, PyObject *__pyx_v_data, size_t __pyx_v_size, char *__pyx_v_name, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUjitInputType __pyx_v_ctypename;
  PyObject *__pyx_v_cdata = NULL;
  void *__pyx_v_cdata_ptr;
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_v_coptions;
  PyObject *__pyx_v_pylist = NULL;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *__pyx_v_voidStarHelper = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_13cuLinkAddData_2generator3 = 0;
  PyObject *__pyx_9genexpr57__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr58__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr58__pyx_v_pyoptionValues = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUjitInputType __pyx_t_5;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *(*__pyx_t_14)(PyObject *);
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__572)
  __Pyx_RefNannySetupContext("cuLinkAddData", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10682, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuLinkAddData", __pyx_f[0], 10682, 0, __PYX_ERR(0, 10682, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_options = __pyx_v_options;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);

  /* "cuda/cuda.pyx":10734
 *     cuLinkDestroy
 *     """
 *     options = [] if options is None else options             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_options == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_options;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_options, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10735
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_13cuLinkAddData_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 10735, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":10736
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 *     cdata = utils.HelperInputVoidPtr(data)
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__563, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 10736, __pyx_L1_error)

    /* "cuda/cuda.pyx":10735
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */
  }

  /* "cuda/cuda.pyx":10737
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value             # <<<<<<<<<<<<<<
 *     cdata = utils.HelperInputVoidPtr(data)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10737, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_ctypename = __pyx_t_5;

  /* "cuda/cuda.pyx":10738
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 *     cdata = utils.HelperInputVoidPtr(data)             # <<<<<<<<<<<<<<
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_cdata = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10739
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 *     cdata = utils.HelperInputVoidPtr(data)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr             # <<<<<<<<<<<<<<
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdata, __pyx_n_s_cptr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_3); if (unlikely((__pyx_t_6 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10739, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cdata_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_6));

  /* "cuda/cuda.pyx":10740
 *     cdata = utils.HelperInputVoidPtr(data)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_7 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10740, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_7) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_8, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __PYX_ERR(0, 10740, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10741
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 */
  __pyx_t_7 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10741, __pyx_L1_error)
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_7) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_7 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10741, __pyx_L1_error)
    __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_8, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 10741, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10742
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10742, __pyx_L8_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_options)) {
      __pyx_t_8 = __pyx_cur_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_8); __pyx_t_7 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_options); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10742, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 10742, __pyx_L8_error)
    }
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 10742, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10742, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 10742, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10742, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_9(__pyx_t_8);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10742, __pyx_L8_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr57__pyx_v_pyoptions, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr57__pyx_v_pyoptions, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10742, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 10742, __pyx_L8_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_9genexpr57__pyx_v_pyoptions); __pyx_9genexpr57__pyx_v_pyoptions = 0;
    goto __pyx_L11_exit_scope;
    __pyx_L8_error:;
    __Pyx_XDECREF(__pyx_9genexpr57__pyx_v_pyoptions); __pyx_9genexpr57__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L11_exit_scope:;
  } /* exit inner scope */
  __pyx_t_10 = __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_coptions = __pyx_t_10;

  /* "cuda/cuda.pyx":10743
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]             # <<<<<<<<<<<<<<
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuLinkAddData(state._ptr[0], ctypename, cdata_ptr, size, name, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10743, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10743, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_options);
    __Pyx_INCREF(__pyx_v_optionValues);
    __Pyx_GIVEREF(__pyx_v_optionValues);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_optionValues);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10743, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_7 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10743, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 10743, __pyx_L14_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 10743, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10743, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 10743, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10743, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_9(__pyx_t_8);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10743, __pyx_L14_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 10743, __pyx_L14_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        #else
        __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10743, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 10743, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_12);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 10743, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext;
        index = 0; __pyx_t_11 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_11);
        index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_12);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 2) < 0) __PYX_ERR(0, 10743, __pyx_L14_error)
        __pyx_t_14 = NULL;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        goto __pyx_L18_unpacking_done;
        __pyx_L17_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 10743, __pyx_L14_error)
        __pyx_L18_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr58__pyx_v_pyoptions, __pyx_t_11);
      __pyx_t_11 = 0;
      __Pyx_XDECREF_SET(__pyx_9genexpr58__pyx_v_pyoptionValues, __pyx_t_12);
      __pyx_t_12 = 0;
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10743, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_9genexpr58__pyx_v_pyoptions);
      __Pyx_GIVEREF(__pyx_9genexpr58__pyx_v_pyoptions);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_9genexpr58__pyx_v_pyoptions);
      __Pyx_INCREF(__pyx_9genexpr58__pyx_v_pyoptionValues);
      __Pyx_GIVEREF(__pyx_9genexpr58__pyx_v_pyoptionValues);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_9genexpr58__pyx_v_pyoptionValues);
      __pyx_t_12 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option), __pyx_t_3, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 10743, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 10743, __pyx_L14_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_9genexpr58__pyx_v_pyoptionValues); __pyx_9genexpr58__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr58__pyx_v_pyoptions); __pyx_9genexpr58__pyx_v_pyoptions = 0;
    goto __pyx_L19_exit_scope;
    __pyx_L14_error:;
    __Pyx_XDECREF(__pyx_9genexpr58__pyx_v_pyoptionValues); __pyx_9genexpr58__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr58__pyx_v_pyoptions); __pyx_9genexpr58__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L19_exit_scope:;
  } /* exit inner scope */
  __pyx_v_pylist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10744
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLinkAddData(state._ptr[0], ctypename, cdata_ptr, size, name, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __pyx_v_pylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_voidStarHelper = ((struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10745
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuLinkAddData(state._ptr[0], ctypename, cdata_ptr, size, name, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_voidStarHelper), __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_6 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10745, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_15 = __pyx_f_4cuda_5ccuda_cuLinkAddData((__pyx_v_state->_ptr[0]), __pyx_v_ctypename, __pyx_v_cdata_ptr, __pyx_v_size, __pyx_v_name, __pyx_v_numOptions, __pyx_v_coptions.data(), ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_6))); if (unlikely(__pyx_t_15 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10745, __pyx_L1_error)
  __pyx_v_err = __pyx_t_15;

  /* "cuda/cuda.pyx":10746
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuLinkAddData(state._ptr[0], ctypename, cdata_ptr, size, name, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_12 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 10746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_3, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10682
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddData(state not None : CUlinkState, typename not None : CUjitInputType, data, size_t size, char* name, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add an input to a pending linker invocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("cuda.cuda.cuLinkAddData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cdata);
  __Pyx_XDECREF(__pyx_v_pylist);
  __Pyx_XDECREF((PyObject *)__pyx_v_voidStarHelper);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_13cuLinkAddData_2generator3);
  __Pyx_XDECREF(__pyx_9genexpr57__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr58__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr58__pyx_v_pyoptionValues);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10749
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddFile(state not None : CUlinkState, typename not None : CUjitInputType, char* path, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add a file input to a pending linker invocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_119cuLinkAddFile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_118cuLinkAddFile[] = "cuLinkAddFile(CUlinkState state: CUlinkState, typename: CUjitInputType, char *path, unsigned int numOptions, options: List[CUjit_option], optionValues: List[Any])\n Add a file input to a pending linker invocation.\n\n    No reference is retained to any inputs after this call returns.\n\n    This method accepts only compiler options, which are used if the input\n    must be compiled from PTX, and does not accept any of CU_JIT_WALL_TIME,\n    CU_JIT_INFO_LOG_BUFFER, CU_JIT_ERROR_LOG_BUFFER,\n    CU_JIT_TARGET_FROM_CUCONTEXT, or CU_JIT_TARGET.\n\n    This method is equivalent to invoking cuLinkAddData on the contents of\n    the file.\n\n    Parameters\n    ----------\n    state : CUlinkState\n        A pending linker action\n    typename : CUjitInputType\n        The type of the input data\n    path : bytes\n        Path to the input file\n    numOptions : unsigned int\n        Size of options\n    options : List[CUjit_option]\n        Options to be applied only for this input (overrides options from\n        cuLinkCreate)\n    optionValues : List[Any]\n        Array of option values, each cast to void *\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_FILE_NOT_FOUND\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_IMAGE\n        CUDA_ERROR_INVALID_PTX\n        CUDA_ERROR_UNSUPPORTED_PTX_VERSION\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NO_BINARY_FOR_GPU\n    None\n        None\n\n    See Also\n    --------\n    cuLinkCreate\n    cuLinkAddData\n    cuLinkComplete\n    cuLinkDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_119cuLinkAddFile = {"cuLinkAddFile", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_119cuLinkAddFile, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_118cuLinkAddFile};
static PyObject *__pyx_pw_4cuda_4cuda_119cuLinkAddFile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state = 0;
  PyObject *__pyx_v_typename = 0;
  char *__pyx_v_path;
  unsigned int __pyx_v_numOptions;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_optionValues = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLinkAddFile (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_state,&__pyx_n_s_typename,&__pyx_n_s_path,&__pyx_n_s_numOptions,&__pyx_n_s_options,&__pyx_n_s_optionValues,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_state)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typename)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddFile", 1, 6, 6, 1); __PYX_ERR(0, 10749, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddFile", 1, 6, 6, 2); __PYX_ERR(0, 10749, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numOptions)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddFile", 1, 6, 6, 3); __PYX_ERR(0, 10749, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddFile", 1, 6, 6, 4); __PYX_ERR(0, 10749, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_optionValues)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLinkAddFile", 1, 6, 6, 5); __PYX_ERR(0, 10749, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLinkAddFile") < 0)) __PYX_ERR(0, 10749, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_state = ((struct __pyx_obj_4cuda_4cuda_CUlinkState *)values[0]);
    __pyx_v_typename = values[1];
    __pyx_v_path = __Pyx_PyObject_AsWritableString(values[2]); if (unlikely((!__pyx_v_path) && PyErr_Occurred())) __PYX_ERR(0, 10749, __pyx_L3_error)
    __pyx_v_numOptions = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_numOptions == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 10749, __pyx_L3_error)
    __pyx_v_options = values[4];
    __pyx_v_optionValues = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLinkAddFile", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 10749, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLinkAddFile", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_4cuda_4cuda_CUlinkState, 0, "state", 0))) __PYX_ERR(0, 10749, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_typename) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "typename"); __PYX_ERR(0, 10749, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_118cuLinkAddFile(__pyx_self, __pyx_v_state, __pyx_v_typename, __pyx_v_path, __pyx_v_numOptions, __pyx_v_options, __pyx_v_optionValues);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_13cuLinkAddFile_2generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":10801
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */

static PyObject *__pyx_pf_4cuda_4cuda_13cuLinkAddFile_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_9_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_9_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10801, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_13cuLinkAddFile_2generator4, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuLinkAddFile_locals_genexpr, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 10801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLinkAddFile.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_13cuLinkAddFile_2generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 10801, 0, __PYX_ERR(0, 10801, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 10801, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) { __Pyx_RaiseClosureNameError("options"); __PYX_ERR(0, 10801, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10801, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10801, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 10801, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 10801, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v__x, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 10801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10749
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddFile(state not None : CUlinkState, typename not None : CUjitInputType, char* path, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add a file input to a pending linker invocation.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_118cuLinkAddFile(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state, PyObject *__pyx_v_typename, char *__pyx_v_path, unsigned int __pyx_v_numOptions, PyObject *__pyx_v_options, PyObject *__pyx_v_optionValues) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUjitInputType __pyx_v_ctypename;
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_v_coptions;
  PyObject *__pyx_v_pylist = NULL;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *__pyx_v_voidStarHelper = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_13cuLinkAddFile_2generator4 = 0;
  PyObject *__pyx_9genexpr60__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr61__pyx_v_pyoptions = NULL;
  PyObject *__pyx_9genexpr61__pyx_v_pyoptionValues = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUjitInputType __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *(*__pyx_t_13)(PyObject *);
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_14;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__573)
  __Pyx_RefNannySetupContext("cuLinkAddFile", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 10749, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuLinkAddFile", __pyx_f[0], 10749, 0, __PYX_ERR(0, 10749, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_options = __pyx_v_options;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);

  /* "cuda/cuda.pyx":10800
 *     cuLinkDestroy
 *     """
 *     options = [] if options is None else options             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_options == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10800, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_options;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_options);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_options, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10801
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_13cuLinkAddFile_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 10801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":10802
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__563, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 10802, __pyx_L1_error)

    /* "cuda/cuda.pyx":10801
 *     """
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 */
  }

  /* "cuda/cuda.pyx":10803
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value             # <<<<<<<<<<<<<<
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_ctypename = __pyx_t_5;

  /* "cuda/cuda.pyx":10804
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_6 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_6) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_options;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __PYX_ERR(0, 10804, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10805
 *     cdef ccuda.CUjitInputType ctypename = typename.value
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))             # <<<<<<<<<<<<<<
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 */
  __pyx_t_6 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10805, __pyx_L1_error)
  __pyx_t_4 = ((__pyx_v_numOptions > __pyx_t_6) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = PyObject_Length(__pyx_v_optionValues); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10805, __pyx_L1_error)
    __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_7, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 10805, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":10806
 *     if numOptions > len(options): raise RuntimeError("List is too small: " + str(len(options)) + " < " + str(numOptions))
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10806, __pyx_L8_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_options)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_options)) {
      __pyx_t_7 = __pyx_cur_scope->__pyx_v_options; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_options); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10806, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10806, __pyx_L8_error)
    }
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10806, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10806, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10806, __pyx_L8_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10806, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_7);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10806, __pyx_L8_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr60__pyx_v_pyoptions, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr60__pyx_v_pyoptions, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10806, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 10806, __pyx_L8_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_9genexpr60__pyx_v_pyoptions); __pyx_9genexpr60__pyx_v_pyoptions = 0;
    goto __pyx_L11_exit_scope;
    __pyx_L8_error:;
    __Pyx_XDECREF(__pyx_9genexpr60__pyx_v_pyoptions); __pyx_9genexpr60__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L11_exit_scope:;
  } /* exit inner scope */
  __pyx_t_9 = __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 10806, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_coptions = __pyx_t_9;

  /* "cuda/cuda.pyx":10807
 *     if numOptions > len(optionValues): raise RuntimeError("List is too small: " + str(len(optionValues)) + " < " + str(numOptions))
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]             # <<<<<<<<<<<<<<
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuLinkAddFile(state._ptr[0], ctypename, path, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10807, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10807, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_options);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_options);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_cur_scope->__pyx_v_options);
    __Pyx_INCREF(__pyx_v_optionValues);
    __Pyx_GIVEREF(__pyx_v_optionValues);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_optionValues);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10807, __pyx_L14_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_7 = __pyx_t_3; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10807, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 10807, __pyx_L14_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10807, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10807, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 10807, __pyx_L14_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10807, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_7);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 10807, __pyx_L14_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 10807, __pyx_L14_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_10 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_11);
        #else
        __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 10807, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10807, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 10807, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext;
        index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_10);
        index = 1; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_11);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 10807, __pyx_L14_error)
        __pyx_t_13 = NULL;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L18_unpacking_done;
        __pyx_L17_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 10807, __pyx_L14_error)
        __pyx_L18_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr61__pyx_v_pyoptions, __pyx_t_10);
      __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_9genexpr61__pyx_v_pyoptionValues, __pyx_t_11);
      __pyx_t_11 = 0;
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10807, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_9genexpr61__pyx_v_pyoptions);
      __Pyx_GIVEREF(__pyx_9genexpr61__pyx_v_pyoptions);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_9genexpr61__pyx_v_pyoptions);
      __Pyx_INCREF(__pyx_9genexpr61__pyx_v_pyoptionValues);
      __Pyx_GIVEREF(__pyx_9genexpr61__pyx_v_pyoptionValues);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_9genexpr61__pyx_v_pyoptionValues);
      __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option), __pyx_t_3, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10807, __pyx_L14_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 10807, __pyx_L14_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_9genexpr61__pyx_v_pyoptionValues); __pyx_9genexpr61__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr61__pyx_v_pyoptions); __pyx_9genexpr61__pyx_v_pyoptions = 0;
    goto __pyx_L19_exit_scope;
    __pyx_L14_error:;
    __Pyx_XDECREF(__pyx_9genexpr61__pyx_v_pyoptionValues); __pyx_9genexpr61__pyx_v_pyoptionValues = 0;
    __Pyx_XDECREF(__pyx_9genexpr61__pyx_v_pyoptions); __pyx_9genexpr61__pyx_v_pyoptions = 0;
    goto __pyx_L1_error;
    __pyx_L19_exit_scope:;
  } /* exit inner scope */
  __pyx_v_pylist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10808
 *     cdef vector[ccuda.CUjit_option] coptions = [pyoptions.value for pyoptions in (options)]
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLinkAddFile(state._ptr[0], ctypename, path, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __pyx_v_pylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_voidStarHelper = ((struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":10809
 *     pylist = [utils.HelperCUjit_option(pyoptions, pyoptionValues) for pyoptions, pyoptionValues in zip(options, optionValues)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuLinkAddFile(state._ptr[0], ctypename, path, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_voidStarHelper), __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_14 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_14 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 10809, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_15 = __pyx_f_4cuda_5ccuda_cuLinkAddFile((__pyx_v_state->_ptr[0]), __pyx_v_ctypename, __pyx_v_path, __pyx_v_numOptions, __pyx_v_coptions.data(), ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_14))); if (unlikely(__pyx_t_15 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10809, __pyx_L1_error)
  __pyx_v_err = __pyx_t_15;

  /* "cuda/cuda.pyx":10810
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     err = ccuda.cuLinkAddFile(state._ptr[0], ctypename, path, numOptions, coptions.data(), <void**><void_ptr>voidStarHelper.cptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 10810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10749
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddFile(state not None : CUlinkState, typename not None : CUjitInputType, char* path, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add a file input to a pending linker invocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuLinkAddFile", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pylist);
  __Pyx_XDECREF((PyObject *)__pyx_v_voidStarHelper);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_13cuLinkAddFile_2generator4);
  __Pyx_XDECREF(__pyx_9genexpr60__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr61__pyx_v_pyoptions);
  __Pyx_XDECREF(__pyx_9genexpr61__pyx_v_pyoptionValues);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10813
 * 
 * @cython.embedsignature(True)
 * def cuLinkComplete(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Complete a pending linker invocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_121cuLinkComplete(PyObject *__pyx_self, PyObject *__pyx_v_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_120cuLinkComplete[] = "cuLinkComplete(CUlinkState state: CUlinkState)\n Complete a pending linker invocation.\n\n    Completes the pending linker action and returns the cubin image for the\n    linked device code, which can be used with cuModuleLoadData. The cubin\n    is owned by `state`, so it should be loaded before `state` is destroyed\n    via cuLinkDestroy. This call does not destroy `state`.\n\n    Parameters\n    ----------\n    state : CUlinkState\n        A pending linker invocation\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    cubinOut : int\n        On success, this will point to the output image\n    sizeOut : int\n        Optional parameter to receive the size of the generated image\n\n    See Also\n    --------\n    cuLinkCreate\n    cuLinkAddData\n    cuLinkAddFile\n    cuLinkDestroy\n    cuModuleLoadData\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_121cuLinkComplete = {"cuLinkComplete", (PyCFunction)__pyx_pw_4cuda_4cuda_121cuLinkComplete, METH_O, __pyx_doc_4cuda_4cuda_120cuLinkComplete};
static PyObject *__pyx_pw_4cuda_4cuda_121cuLinkComplete(PyObject *__pyx_self, PyObject *__pyx_v_state) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLinkComplete (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_4cuda_4cuda_CUlinkState, 0, "state", 0))) __PYX_ERR(0, 10813, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_120cuLinkComplete(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_state));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_120cuLinkComplete(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_cubinOut;
  size_t __pyx_v_sizeOut;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__574)
  __Pyx_RefNannySetupContext("cuLinkComplete", 0);
  __Pyx_TraceCall("cuLinkComplete", __pyx_f[0], 10813, 0, __PYX_ERR(0, 10813, __pyx_L1_error));

  /* "cuda/cuda.pyx":10845
 *     cuModuleLoadData
 *     """
 *     cdef void_ptr cubinOut = 0             # <<<<<<<<<<<<<<
 *     cdef size_t sizeOut = 0
 *     err = ccuda.cuLinkComplete(state._ptr[0], <void**>&cubinOut, &sizeOut)
 */
  __pyx_v_cubinOut = 0;

  /* "cuda/cuda.pyx":10846
 *     """
 *     cdef void_ptr cubinOut = 0
 *     cdef size_t sizeOut = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLinkComplete(state._ptr[0], <void**>&cubinOut, &sizeOut)
 *     return (CUresult(err), cubinOut, sizeOut)
 */
  __pyx_v_sizeOut = 0;

  /* "cuda/cuda.pyx":10847
 *     cdef void_ptr cubinOut = 0
 *     cdef size_t sizeOut = 0
 *     err = ccuda.cuLinkComplete(state._ptr[0], <void**>&cubinOut, &sizeOut)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), cubinOut, sizeOut)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuLinkComplete((__pyx_v_state->_ptr[0]), ((void **)(&__pyx_v_cubinOut)), (&__pyx_v_sizeOut)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10847, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10848
 *     cdef size_t sizeOut = 0
 *     err = ccuda.cuLinkComplete(state._ptr[0], <void**>&cubinOut, &sizeOut)
 *     return (CUresult(err), cubinOut, sizeOut)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_cubinOut); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_sizeOut); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10813
 * 
 * @cython.embedsignature(True)
 * def cuLinkComplete(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Complete a pending linker invocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuLinkComplete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10851
 * 
 * @cython.embedsignature(True)
 * def cuLinkDestroy(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Destroys state for a JIT linker invocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_123cuLinkDestroy(PyObject *__pyx_self, PyObject *__pyx_v_state); /*proto*/
static char __pyx_doc_4cuda_4cuda_122cuLinkDestroy[] = "cuLinkDestroy(CUlinkState state: CUlinkState)\n Destroys state for a JIT linker invocation.\n\n    Parameters\n    ----------\n    state : CUlinkState\n        State object for the linker invocation\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuLinkCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_123cuLinkDestroy = {"cuLinkDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_123cuLinkDestroy, METH_O, __pyx_doc_4cuda_4cuda_122cuLinkDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_123cuLinkDestroy(PyObject *__pyx_self, PyObject *__pyx_v_state) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLinkDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_4cuda_4cuda_CUlinkState, 0, "state", 0))) __PYX_ERR(0, 10851, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_122cuLinkDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUlinkState *)__pyx_v_state));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_122cuLinkDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUlinkState *__pyx_v_state) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__575)
  __Pyx_RefNannySetupContext("cuLinkDestroy", 0);
  __Pyx_TraceCall("cuLinkDestroy", __pyx_f[0], 10851, 0, __PYX_ERR(0, 10851, __pyx_L1_error));

  /* "cuda/cuda.pyx":10871
 *     cuLinkCreate
 *     """
 *     err = ccuda.cuLinkDestroy(state._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuLinkDestroy((__pyx_v_state->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10871, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10872
 *     """
 *     err = ccuda.cuLinkDestroy(state._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10851
 * 
 * @cython.embedsignature(True)
 * def cuLinkDestroy(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Destroys state for a JIT linker invocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuLinkDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10875
 * 
 * @cython.embedsignature(True)
 * def cuMemGetInfo():             # <<<<<<<<<<<<<<
 *     """ Gets free and total memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_125cuMemGetInfo(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_124cuMemGetInfo[] = "cuMemGetInfo()\n Gets free and total memory.\n\n    Returns in `*total` the total amount of memory available to the the\n    current context. Returns in `*free` the amount of memory on the device\n    that is free according to the OS. CUDA is not guaranteed to be able to\n    allocate all of the memory that the OS reports as free.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    free : int\n        Returned free memory in bytes\n    total : int\n        Returned total memory in bytes\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemGetInfo\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_125cuMemGetInfo = {"cuMemGetInfo", (PyCFunction)__pyx_pw_4cuda_4cuda_125cuMemGetInfo, METH_NOARGS, __pyx_doc_4cuda_4cuda_124cuMemGetInfo};
static PyObject *__pyx_pw_4cuda_4cuda_125cuMemGetInfo(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemGetInfo (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_124cuMemGetInfo(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_124cuMemGetInfo(CYTHON_UNUSED PyObject *__pyx_self) {
  size_t __pyx_v_free;
  size_t __pyx_v_total;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__576)
  __Pyx_RefNannySetupContext("cuMemGetInfo", 0);
  __Pyx_TraceCall("cuMemGetInfo", __pyx_f[0], 10875, 0, __PYX_ERR(0, 10875, __pyx_L1_error));

  /* "cuda/cuda.pyx":10937
 *     cudaMemGetInfo
 *     """
 *     cdef size_t free = 0             # <<<<<<<<<<<<<<
 *     cdef size_t total = 0
 *     err = ccuda.cuMemGetInfo(&free, &total)
 */
  __pyx_v_free = 0;

  /* "cuda/cuda.pyx":10938
 *     """
 *     cdef size_t free = 0
 *     cdef size_t total = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemGetInfo(&free, &total)
 *     return (CUresult(err), free, total)
 */
  __pyx_v_total = 0;

  /* "cuda/cuda.pyx":10939
 *     cdef size_t free = 0
 *     cdef size_t total = 0
 *     err = ccuda.cuMemGetInfo(&free, &total)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), free, total)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemGetInfo((&__pyx_v_free), (&__pyx_v_total)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 10939, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":10940
 *     cdef size_t total = 0
 *     err = ccuda.cuMemGetInfo(&free, &total)
 *     return (CUresult(err), free, total)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_free); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_total); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10875
 * 
 * @cython.embedsignature(True)
 * def cuMemGetInfo():             # <<<<<<<<<<<<<<
 *     """ Gets free and total memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemGetInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":10943
 * 
 * @cython.embedsignature(True)
 * def cuMemAlloc(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_127cuMemAlloc(PyObject *__pyx_self, PyObject *__pyx_arg_bytesize); /*proto*/
static char __pyx_doc_4cuda_4cuda_126cuMemAlloc[] = "cuMemAlloc(size_t bytesize)\n Allocates device memory.\n\n    Allocates `bytesize` bytes of linear memory on the device and returns\n    in `*dptr` a pointer to the allocated memory. The allocated memory is\n    suitably aligned for any kind of variable. The memory is not cleared.\n    If `bytesize` is 0, cuMemAlloc() returns CUDA_ERROR_INVALID_VALUE.\n\n    Parameters\n    ----------\n    bytesize : size_t\n        Requested allocation size in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    dptr : CUdeviceptr\n        Returned device pointer\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMalloc\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_127cuMemAlloc = {"cuMemAlloc", (PyCFunction)__pyx_pw_4cuda_4cuda_127cuMemAlloc, METH_O, __pyx_doc_4cuda_4cuda_126cuMemAlloc};
static PyObject *__pyx_pw_4cuda_4cuda_127cuMemAlloc(PyObject *__pyx_self, PyObject *__pyx_arg_bytesize) {
  size_t __pyx_v_bytesize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAlloc (wrapper)", 0);
  assert(__pyx_arg_bytesize); {
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(__pyx_arg_bytesize); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 10943, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_126cuMemAlloc(__pyx_self, ((size_t)__pyx_v_bytesize));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_126cuMemAlloc(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__577)
  __Pyx_RefNannySetupContext("cuMemAlloc", 0);
  __Pyx_TraceCall("cuMemAlloc", __pyx_f[0], 10943, 0, __PYX_ERR(0, 10943, __pyx_L1_error));

  /* "cuda/cuda.pyx":11009
 *     cudaMalloc
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAlloc(dptr._ptr, bytesize)
 *     return (CUresult(err), dptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11010
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAlloc(dptr._ptr, bytesize)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemAlloc(__pyx_v_dptr->_ptr, __pyx_v_bytesize); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11010, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11011
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAlloc(dptr._ptr, bytesize)
 *     return (CUresult(err), dptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":10943
 * 
 * @cython.embedsignature(True)
 * def cuMemAlloc(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11014
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocPitch(size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes):             # <<<<<<<<<<<<<<
 *     """ Allocates pitched device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_129cuMemAllocPitch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_128cuMemAllocPitch[] = "cuMemAllocPitch(size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes)\n Allocates pitched device memory.\n\n    Allocates at least `WidthInBytes` * `Height` bytes of linear memory on\n    the device and returns in `*dptr` a pointer to the allocated memory.\n    The function may pad the allocation to ensure that corresponding\n    pointers in any given row will continue to meet the alignment\n    requirements for coalescing as the address is updated from row to row.\n    `ElementSizeBytes` specifies the size of the largest reads and writes\n    that will be performed on the memory range. `ElementSizeBytes` may be\n    4, 8 or 16 (since coalesced memory transactions are not possible on\n    other data sizes). If `ElementSizeBytes` is smaller than the actual\n    read/write size of a kernel, the kernel will run correctly, but\n    possibly at reduced speed. The pitch returned in `*pPitch` by\n    cuMemAllocPitch() is the width in bytes of the allocation. The intended\n    usage of pitch is as a separate parameter of the allocation, used to\n    compute addresses within the 2D array. Given the row and column of an\n    array element of type T, the address is computed as:\n    T*pElement=(T*)((char*)BaseAddress+Row*Pitch)+Column;\n\n    The pitch returned by cuMemAllocPitch() is guaranteed to work with\n    cuMemcpy2D() under all circumstances. For allocations of 2D arrays, it\n    is recommended that programmers consider performing pitch allocations\n    using cuMemAllocPitch(). Due to alignment restrictions in the hardware,\n    this is especially true if the application will be performing 2D memory\n    copies between different regions of device memory (whether linear\n    memory or CUDA arrays).\n\n    The byte alignment of the pitch returned by cuMemAllocPitch() is\n    guaranteed to match or exceed the alignment requirement for texture\n    binding with cuTexRefSetAddress2D().\n\n    Parameters\n    ----------\n    WidthInBytes : size_t\n        Reques""ted allocation width in bytes\n    Height : size_t\n        Requested allocation height in rows\n    ElementSizeBytes : unsigned int\n        Size of largest reads/writes for range\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    dptr : CUdeviceptr\n        Returned device pointer\n    pPitch : int\n        Returned pitch of allocation in bytes\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMallocPitch\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_129cuMemAllocPitch = {"cuMemAllocPitch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_129cuMemAllocPitch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_128cuMemAllocPitch};
static PyObject *__pyx_pw_4cuda_4cuda_129cuMemAllocPitch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_WidthInBytes;
  size_t __pyx_v_Height;
  unsigned int __pyx_v_ElementSizeBytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAllocPitch (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_WidthInBytes_2,&__pyx_n_s_Height_2,&__pyx_n_s_ElementSizeBytes,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_WidthInBytes_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAllocPitch", 1, 3, 3, 1); __PYX_ERR(0, 11014, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ElementSizeBytes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAllocPitch", 1, 3, 3, 2); __PYX_ERR(0, 11014, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAllocPitch") < 0)) __PYX_ERR(0, 11014, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_WidthInBytes = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_WidthInBytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 11014, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 11014, __pyx_L3_error)
    __pyx_v_ElementSizeBytes = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_ElementSizeBytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 11014, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAllocPitch", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 11014, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocPitch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_128cuMemAllocPitch(__pyx_self, __pyx_v_WidthInBytes, __pyx_v_Height, __pyx_v_ElementSizeBytes);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_128cuMemAllocPitch(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_WidthInBytes, size_t __pyx_v_Height, unsigned int __pyx_v_ElementSizeBytes) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  size_t __pyx_v_pPitch;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__578)
  __Pyx_RefNannySetupContext("cuMemAllocPitch", 0);
  __Pyx_TraceCall("cuMemAllocPitch", __pyx_f[0], 11014, 0, __PYX_ERR(0, 11014, __pyx_L1_error));

  /* "cuda/cuda.pyx":11110
 *     cudaMallocPitch
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cdef size_t pPitch = 0
 *     err = ccuda.cuMemAllocPitch(dptr._ptr, &pPitch, WidthInBytes, Height, ElementSizeBytes)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11111
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     cdef size_t pPitch = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAllocPitch(dptr._ptr, &pPitch, WidthInBytes, Height, ElementSizeBytes)
 *     return (CUresult(err), dptr, pPitch)
 */
  __pyx_v_pPitch = 0;

  /* "cuda/cuda.pyx":11112
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     cdef size_t pPitch = 0
 *     err = ccuda.cuMemAllocPitch(dptr._ptr, &pPitch, WidthInBytes, Height, ElementSizeBytes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr, pPitch)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemAllocPitch(__pyx_v_dptr->_ptr, (&__pyx_v_pPitch), __pyx_v_WidthInBytes, __pyx_v_Height, __pyx_v_ElementSizeBytes); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11112, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11113
 *     cdef size_t pPitch = 0
 *     err = ccuda.cuMemAllocPitch(dptr._ptr, &pPitch, WidthInBytes, Height, ElementSizeBytes)
 *     return (CUresult(err), dptr, pPitch)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_pPitch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11014
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocPitch(size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes):             # <<<<<<<<<<<<<<
 *     """ Allocates pitched device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocPitch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11116
 * 
 * @cython.embedsignature(True)
 * def cuMemFree(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Frees device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_131cuMemFree(PyObject *__pyx_self, PyObject *__pyx_v_dptr); /*proto*/
static char __pyx_doc_4cuda_4cuda_130cuMemFree[] = "cuMemFree(CUdeviceptr dptr: CUdeviceptr)\n Frees device memory.\n\n    Frees the memory space pointed to by `dptr`, which must have been\n    returned by a previous call to cuMemAlloc() or cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dptr : CUdeviceptr\n        Pointer to memory to free\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaFree\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_131cuMemFree = {"cuMemFree", (PyCFunction)__pyx_pw_4cuda_4cuda_131cuMemFree, METH_O, __pyx_doc_4cuda_4cuda_130cuMemFree};
static PyObject *__pyx_pw_4cuda_4cuda_131cuMemFree(PyObject *__pyx_self, PyObject *__pyx_v_dptr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemFree (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 11116, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_130cuMemFree(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dptr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_130cuMemFree(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__579)
  __Pyx_RefNannySetupContext("cuMemFree", 0);
  __Pyx_TraceCall("cuMemFree", __pyx_f[0], 11116, 0, __PYX_ERR(0, 11116, __pyx_L1_error));

  /* "cuda/cuda.pyx":11179
 *     cudaFree
 *     """
 *     err = ccuda.cuMemFree(dptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemFree((__pyx_v_dptr->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11179, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":11180
 *     """
 *     err = ccuda.cuMemFree(dptr._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11116
 * 
 * @cython.embedsignature(True)
 * def cuMemFree(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Frees device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemFree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11183
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAddressRange(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get information on memory allocations.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_133cuMemGetAddressRange(PyObject *__pyx_self, PyObject *__pyx_v_dptr); /*proto*/
static char __pyx_doc_4cuda_4cuda_132cuMemGetAddressRange[] = "cuMemGetAddressRange(CUdeviceptr dptr: CUdeviceptr)\n Get information on memory allocations.\n\n    Returns the base address in `*pbase` and size in `*psize` of the\n    allocation by cuMemAlloc() or cuMemAllocPitch() that contains the input\n    pointer `dptr`. Both parameters `pbase` and `psize` are optional. If\n    one of them is NULL, it is ignored.\n\n    Parameters\n    ----------\n    dptr : CUdeviceptr\n        Device pointer to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_NOT_FOUND\n        CUDA_ERROR_INVALID_VALUE\n    pbase : CUdeviceptr\n        Returned base address\n    psize : int\n        Returned size of device memory allocation\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_133cuMemGetAddressRange = {"cuMemGetAddressRange", (PyCFunction)__pyx_pw_4cuda_4cuda_133cuMemGetAddressRange, METH_O, __pyx_doc_4cuda_4cuda_132cuMemGetAddressRange};
static PyObject *__pyx_pw_4cuda_4cuda_133cuMemGetAddressRange(PyObject *__pyx_self, PyObject *__pyx_v_dptr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemGetAddressRange (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 11183, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_132cuMemGetAddressRange(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dptr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_132cuMemGetAddressRange(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_pbase = 0;
  size_t __pyx_v_psize;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__580)
  __Pyx_RefNannySetupContext("cuMemGetAddressRange", 0);
  __Pyx_TraceCall("cuMemGetAddressRange", __pyx_f[0], 11183, 0, __PYX_ERR(0, 11183, __pyx_L1_error));

  /* "cuda/cuda.pyx":11250
 *     cuMemsetD32
 *     """
 *     cdef CUdeviceptr pbase = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cdef size_t psize = 0
 *     err = ccuda.cuMemGetAddressRange(pbase._ptr, &psize, dptr._ptr[0])
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pbase = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11251
 *     """
 *     cdef CUdeviceptr pbase = CUdeviceptr()
 *     cdef size_t psize = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemGetAddressRange(pbase._ptr, &psize, dptr._ptr[0])
 *     return (CUresult(err), pbase, psize)
 */
  __pyx_v_psize = 0;

  /* "cuda/cuda.pyx":11252
 *     cdef CUdeviceptr pbase = CUdeviceptr()
 *     cdef size_t psize = 0
 *     err = ccuda.cuMemGetAddressRange(pbase._ptr, &psize, dptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pbase, psize)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemGetAddressRange(__pyx_v_pbase->_ptr, (&__pyx_v_psize), (__pyx_v_dptr->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11252, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11253
 *     cdef size_t psize = 0
 *     err = ccuda.cuMemGetAddressRange(pbase._ptr, &psize, dptr._ptr[0])
 *     return (CUresult(err), pbase, psize)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_psize); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pbase));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pbase));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_pbase));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11183
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAddressRange(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get information on memory allocations.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemGetAddressRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pbase);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11256
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocHost(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_135cuMemAllocHost(PyObject *__pyx_self, PyObject *__pyx_arg_bytesize); /*proto*/
static char __pyx_doc_4cuda_4cuda_134cuMemAllocHost[] = "cuMemAllocHost(size_t bytesize)\n Allocates page-locked host memory.\n\n    Allocates `bytesize` bytes of host memory that is page-locked and\n    accessible to the device. The driver tracks the virtual memory ranges\n    allocated with this function and automatically accelerates calls to\n    functions such as cuMemcpy(). Since the memory can be accessed directly\n    by the device, it can be read or written with much higher bandwidth\n    than pageable memory obtained with functions such as malloc().\n    Allocating excessive amounts of memory with cuMemAllocHost() may\n    degrade system performance, since it reduces the amount of memory\n    available to the system for paging. As a result, this function is best\n    used sparingly to allocate staging areas for data exchange between host\n    and device.\n\n    Note all host memory allocated using cuMemHostAlloc() will\n    automatically be immediately accessible to all contexts on all devices\n    which support unified addressing (as may be queried using\n    CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING). The device pointer that may be\n    used to access this host memory from those contexts is always equal to\n    the returned host pointer `*pp`. See Unified Addressing for additional\n    details.\n\n    Parameters\n    ----------\n    bytesize : size_t\n        Requested allocation size in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    pp : int\n        Returned host pointer to page-locked memory\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemc""pyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMallocHost\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_135cuMemAllocHost = {"cuMemAllocHost", (PyCFunction)__pyx_pw_4cuda_4cuda_135cuMemAllocHost, METH_O, __pyx_doc_4cuda_4cuda_134cuMemAllocHost};
static PyObject *__pyx_pw_4cuda_4cuda_135cuMemAllocHost(PyObject *__pyx_self, PyObject *__pyx_arg_bytesize) {
  size_t __pyx_v_bytesize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAllocHost (wrapper)", 0);
  assert(__pyx_arg_bytesize); {
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(__pyx_arg_bytesize); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 11256, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocHost", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_134cuMemAllocHost(__pyx_self, ((size_t)__pyx_v_bytesize));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_134cuMemAllocHost(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_pp;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__581)
  __Pyx_RefNannySetupContext("cuMemAllocHost", 0);
  __Pyx_TraceCall("cuMemAllocHost", __pyx_f[0], 11256, 0, __PYX_ERR(0, 11256, __pyx_L1_error));

  /* "cuda/cuda.pyx":11337
 *     cudaMallocHost
 *     """
 *     cdef void_ptr pp = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAllocHost(<void**>&pp, bytesize)
 *     return (CUresult(err), pp)
 */
  __pyx_v_pp = 0;

  /* "cuda/cuda.pyx":11338
 *     """
 *     cdef void_ptr pp = 0
 *     err = ccuda.cuMemAllocHost(<void**>&pp, bytesize)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pp)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemAllocHost(((void **)(&__pyx_v_pp)), __pyx_v_bytesize); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11338, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":11339
 *     cdef void_ptr pp = 0
 *     err = ccuda.cuMemAllocHost(<void**>&pp, bytesize)
 *     return (CUresult(err), pp)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_pp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11256
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocHost(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocHost", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11342
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeHost(p):             # <<<<<<<<<<<<<<
 *     """ Frees page-locked host memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_137cuMemFreeHost(PyObject *__pyx_self, PyObject *__pyx_v_p); /*proto*/
static char __pyx_doc_4cuda_4cuda_136cuMemFreeHost[] = "cuMemFreeHost(p)\n Frees page-locked host memory.\n\n    Frees the memory space pointed to by `p`, which must have been returned\n    by a previous call to cuMemAllocHost().\n\n    Parameters\n    ----------\n    p : Any\n        Pointer to memory to free\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaFreeHost\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_137cuMemFreeHost = {"cuMemFreeHost", (PyCFunction)__pyx_pw_4cuda_4cuda_137cuMemFreeHost, METH_O, __pyx_doc_4cuda_4cuda_136cuMemFreeHost};
static PyObject *__pyx_pw_4cuda_4cuda_137cuMemFreeHost(PyObject *__pyx_self, PyObject *__pyx_v_p) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemFreeHost (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_136cuMemFreeHost(__pyx_self, ((PyObject *)__pyx_v_p));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_136cuMemFreeHost(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p) {
  PyObject *__pyx_v_cp = NULL;
  void *__pyx_v_cp_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__582)
  __Pyx_RefNannySetupContext("cuMemFreeHost", 0);
  __Pyx_TraceCall("cuMemFreeHost", __pyx_f[0], 11342, 0, __PYX_ERR(0, 11342, __pyx_L1_error));

  /* "cuda/cuda.pyx":11405
 *     cudaFreeHost
 *     """
 *     cp = utils.HelperInputVoidPtr(p)             # <<<<<<<<<<<<<<
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemFreeHost(cp_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11406
 *     """
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemFreeHost(cp_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cp, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 11406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cp_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":11407
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemFreeHost(cp_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemFreeHost(__pyx_v_cp_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11407, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":11408
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemFreeHost(cp_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 11408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11342
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeHost(p):             # <<<<<<<<<<<<<<
 *     """ Frees page-locked host memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemFreeHost", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11411
 * 
 * @cython.embedsignature(True)
 * def cuMemHostAlloc(size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_139cuMemHostAlloc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_138cuMemHostAlloc[] = "cuMemHostAlloc(size_t bytesize, unsigned int Flags)\n Allocates page-locked host memory.\n\n    Allocates `bytesize` bytes of host memory that is page-locked and\n    accessible to the device. The driver tracks the virtual memory ranges\n    allocated with this function and automatically accelerates calls to\n    functions such as cuMemcpyHtoD(). Since the memory can be accessed\n    directly by the device, it can be read or written with much higher\n    bandwidth than pageable memory obtained with functions such as\n    malloc(). Allocating excessive amounts of pinned memory may degrade\n    system performance, since it reduces the amount of memory available to\n    the system for paging. As a result, this function is best used\n    sparingly to allocate staging areas for data exchange between host and\n    device.\n\n    The `Flags` parameter enables different options to be specified that\n    affect the allocation, as follows.\n\n    CU_MEMHOSTALLOC_PORTABLE: The memory returned by this call will be\n    considered as pinned memory by all CUDA contexts, not just the one that\n    performed the allocation. CU_MEMHOSTALLOC_DEVICEMAP: Maps the\n    allocation into the CUDA address space. The device pointer to the\n    memory may be obtained by calling cuMemHostGetDevicePointer().\n    CU_MEMHOSTALLOC_WRITECOMBINED: Allocates the memory as write-combined\n    (WC). WC memory can be transferred across the PCI Express bus more\n    quickly on some system configurations, but cannot be read efficiently\n    by most CPUs. WC memory is a good option for buffers that will be\n    written by the CPU and read by the GPU via mapped pinned memory or\n    host->device transfers.\n\n    All of these flags are orthogonal to one another: a developer may\n    allocate memory that is portable, mapped and/or write-combined with no\n    restrictions.\n\n    The CU_MEMHOSTALLOC_DEVICEMAP flag may be specified on CUDA contexts\n    for devices that do not support mapped pinned memory. Th""e failure is\n    deferred to cuMemHostGetDevicePointer() because the memory may be\n    mapped into other CUDA contexts via the CU_MEMHOSTALLOC_PORTABLE flag.\n\n    The memory allocated by this function must be freed with\n    cuMemFreeHost().\n\n    Note all host memory allocated using cuMemHostAlloc() will\n    automatically be immediately accessible to all contexts on all devices\n    which support unified addressing (as may be queried using\n    CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING). Unless the flag\n    CU_MEMHOSTALLOC_WRITECOMBINED is specified, the device pointer that may\n    be used to access this host memory from those contexts is always equal\n    to the returned host pointer `*pp`. If the flag\n    CU_MEMHOSTALLOC_WRITECOMBINED is specified, then the function\n    cuMemHostGetDevicePointer() must be used to query the device pointer,\n    even if the context supports unified addressing. See Unified Addressing\n    for additional details.\n\n    Parameters\n    ----------\n    bytesize : size_t\n        Requested allocation size in bytes\n    Flags : unsigned int\n        Flags for allocation request\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    pp : int\n        Returned host pointer to page-locked memory\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n   "" cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaHostAlloc\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_139cuMemHostAlloc = {"cuMemHostAlloc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_139cuMemHostAlloc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_138cuMemHostAlloc};
static PyObject *__pyx_pw_4cuda_4cuda_139cuMemHostAlloc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_bytesize;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemHostAlloc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bytesize_2,&__pyx_n_s_Flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bytesize_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemHostAlloc", 1, 2, 2, 1); __PYX_ERR(0, 11411, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemHostAlloc") < 0)) __PYX_ERR(0, 11411, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 11411, __pyx_L3_error)
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 11411, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemHostAlloc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 11411, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemHostAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_138cuMemHostAlloc(__pyx_self, __pyx_v_bytesize, __pyx_v_Flags);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_138cuMemHostAlloc(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_pp;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__583)
  __Pyx_RefNannySetupContext("cuMemHostAlloc", 0);
  __Pyx_TraceCall("cuMemHostAlloc", __pyx_f[0], 11411, 0, __PYX_ERR(0, 11411, __pyx_L1_error));

  /* "cuda/cuda.pyx":11525
 *     cudaHostAlloc
 *     """
 *     cdef void_ptr pp = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemHostAlloc(<void**>&pp, bytesize, Flags)
 *     return (CUresult(err), pp)
 */
  __pyx_v_pp = 0;

  /* "cuda/cuda.pyx":11526
 *     """
 *     cdef void_ptr pp = 0
 *     err = ccuda.cuMemHostAlloc(<void**>&pp, bytesize, Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pp)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemHostAlloc(((void **)(&__pyx_v_pp)), __pyx_v_bytesize, __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11526, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":11527
 *     cdef void_ptr pp = 0
 *     err = ccuda.cuMemHostAlloc(<void**>&pp, bytesize, Flags)
 *     return (CUresult(err), pp)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_pp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11411
 * 
 * @cython.embedsignature(True)
 * def cuMemHostAlloc(size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemHostAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11530
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetDevicePointer(p, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Passes back device pointer of mapped pinned memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_141cuMemHostGetDevicePointer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_140cuMemHostGetDevicePointer[] = "cuMemHostGetDevicePointer(p, unsigned int Flags)\n Passes back device pointer of mapped pinned memory.\n\n    Passes back the device pointer `pdptr` corresponding to the mapped,\n    pinned host buffer `p` allocated by cuMemHostAlloc.\n\n    cuMemHostGetDevicePointer() will fail if the CU_MEMHOSTALLOC_DEVICEMAP\n    flag was not specified at the time the memory was allocated, or if the\n    function is called on a GPU that does not support mapped pinned memory.\n\n    For devices that have a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM, the memory\n    can also be accessed from the device using the host pointer `p`. The\n    device pointer returned by cuMemHostGetDevicePointer() may or may not\n    match the original host pointer `p` and depends on the devices visible\n    to the application. If all devices visible to the application have a\n    non-zero value for the device attribute, the device pointer returned by\n    cuMemHostGetDevicePointer() will match the original pointer `p`. If any\n    device visible to the application has a zero value for the device\n    attribute, the device pointer returned by cuMemHostGetDevicePointer()\n    will not match the original host pointer `p`, but it will be suitable\n    for use on all devices provided Unified Virtual Addressing is enabled.\n    In such systems, it is valid to access the memory using either pointer\n    on devices that have a non-zero value for the device attribute. Note\n    however that such devices should access the memory using only of the\n    two pointers and not both.\n\n    `Flags` provides for future releases. For now, it must be set to 0.\n\n    Parameters\n    ----------\n    p : Any\n        Host pointer\n    Flags : unsigned int\n        Options (must be 0)\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CU""DA_ERROR_INVALID_VALUE\n    pdptr : CUdeviceptr\n        Returned device pointer\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaHostGetDevicePointer\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_141cuMemHostGetDevicePointer = {"cuMemHostGetDevicePointer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_141cuMemHostGetDevicePointer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_140cuMemHostGetDevicePointer};
static PyObject *__pyx_pw_4cuda_4cuda_141cuMemHostGetDevicePointer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_p = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemHostGetDevicePointer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_Flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemHostGetDevicePointer", 1, 2, 2, 1); __PYX_ERR(0, 11530, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemHostGetDevicePointer") < 0)) __PYX_ERR(0, 11530, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_p = values[0];
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 11530, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemHostGetDevicePointer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 11530, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemHostGetDevicePointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_140cuMemHostGetDevicePointer(__pyx_self, __pyx_v_p, __pyx_v_Flags);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_140cuMemHostGetDevicePointer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p, unsigned int __pyx_v_Flags) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_pdptr = 0;
  PyObject *__pyx_v_cp = NULL;
  void *__pyx_v_cp_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__584)
  __Pyx_RefNannySetupContext("cuMemHostGetDevicePointer", 0);
  __Pyx_TraceCall("cuMemHostGetDevicePointer", __pyx_f[0], 11530, 0, __PYX_ERR(0, 11530, __pyx_L1_error));

  /* "cuda/cuda.pyx":11618
 *     cudaHostGetDevicePointer
 *     """
 *     cdef CUdeviceptr pdptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pdptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11619
 *     """
 *     cdef CUdeviceptr pdptr = CUdeviceptr()
 *     cp = utils.HelperInputVoidPtr(p)             # <<<<<<<<<<<<<<
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostGetDevicePointer(pdptr._ptr, cp_ptr, Flags)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11620
 *     cdef CUdeviceptr pdptr = CUdeviceptr()
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemHostGetDevicePointer(pdptr._ptr, cp_ptr, Flags)
 *     return (CUresult(err), pdptr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cp, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 11620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cp_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":11621
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostGetDevicePointer(pdptr._ptr, cp_ptr, Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pdptr)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemHostGetDevicePointer(__pyx_v_pdptr->_ptr, __pyx_v_cp_ptr, __pyx_v_Flags); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11621, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":11622
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostGetDevicePointer(pdptr._ptr, cp_ptr, Flags)
 *     return (CUresult(err), pdptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 11622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pdptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pdptr));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_pdptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11530
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetDevicePointer(p, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Passes back device pointer of mapped pinned memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemHostGetDevicePointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pdptr);
  __Pyx_XDECREF(__pyx_v_cp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11625
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetFlags(p):             # <<<<<<<<<<<<<<
 *     """ Passes back flags that were used for a pinned allocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_143cuMemHostGetFlags(PyObject *__pyx_self, PyObject *__pyx_v_p); /*proto*/
static char __pyx_doc_4cuda_4cuda_142cuMemHostGetFlags[] = "cuMemHostGetFlags(p)\n Passes back flags that were used for a pinned allocation.\n\n    Passes back the flags `pFlags` that were specified when allocating the\n    pinned host buffer `p` allocated by cuMemHostAlloc.\n\n    cuMemHostGetFlags() will fail if the pointer does not reside in an\n    allocation performed by cuMemAllocHost() or cuMemHostAlloc().\n\n    Parameters\n    ----------\n    p : Any\n        Host pointer\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pFlags : unsigned int\n        Returned flags word\n\n    See Also\n    --------\n    cuMemAllocHost\n    cuMemHostAlloc\n    cudaHostGetFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_143cuMemHostGetFlags = {"cuMemHostGetFlags", (PyCFunction)__pyx_pw_4cuda_4cuda_143cuMemHostGetFlags, METH_O, __pyx_doc_4cuda_4cuda_142cuMemHostGetFlags};
static PyObject *__pyx_pw_4cuda_4cuda_143cuMemHostGetFlags(PyObject *__pyx_self, PyObject *__pyx_v_p) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemHostGetFlags (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_142cuMemHostGetFlags(__pyx_self, ((PyObject *)__pyx_v_p));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_142cuMemHostGetFlags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p) {
  unsigned int __pyx_v_pFlags;
  PyObject *__pyx_v_cp = NULL;
  void *__pyx_v_cp_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__585)
  __Pyx_RefNannySetupContext("cuMemHostGetFlags", 0);
  __Pyx_TraceCall("cuMemHostGetFlags", __pyx_f[0], 11625, 0, __PYX_ERR(0, 11625, __pyx_L1_error));

  /* "cuda/cuda.pyx":11656
 *     cudaHostGetFlags
 *     """
 *     cdef unsigned int pFlags = 0             # <<<<<<<<<<<<<<
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 */
  __pyx_v_pFlags = 0;

  /* "cuda/cuda.pyx":11657
 *     """
 *     cdef unsigned int pFlags = 0
 *     cp = utils.HelperInputVoidPtr(p)             # <<<<<<<<<<<<<<
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostGetFlags(&pFlags, cp_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11658
 *     cdef unsigned int pFlags = 0
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemHostGetFlags(&pFlags, cp_ptr)
 *     return (CUresult(err), pFlags)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cp, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 11658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cp_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":11659
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostGetFlags(&pFlags, cp_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pFlags)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemHostGetFlags((&__pyx_v_pFlags), __pyx_v_cp_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11659, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":11660
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostGetFlags(&pFlags, cp_ptr)
 *     return (CUresult(err), pFlags)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 11660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_pFlags); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 11660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11625
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetFlags(p):             # <<<<<<<<<<<<<<
 *     """ Passes back flags that were used for a pinned allocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemHostGetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11663
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocManaged(size_t bytesize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Allocates memory that will be automatically managed by the Unified Memory system.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_145cuMemAllocManaged(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_144cuMemAllocManaged[] = "cuMemAllocManaged(size_t bytesize, unsigned int flags)\n Allocates memory that will be automatically managed by the Unified Memory system.\n\n    Allocates `bytesize` bytes of managed memory on the device and returns\n    in `*dptr` a pointer to the allocated memory. If the device doesn't\n    support allocating managed memory, CUDA_ERROR_NOT_SUPPORTED is\n    returned. Support for managed memory can be queried using the device\n    attribute CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY. The allocated memory is\n    suitably aligned for any kind of variable. The memory is not cleared.\n    If `bytesize` is 0, cuMemAllocManaged returns CUDA_ERROR_INVALID_VALUE.\n    The pointer is valid on the CPU and on all GPUs in the system that\n    support managed memory. All accesses to this pointer must obey the\n    Unified Memory programming model.\n\n    `flags` specifies the default stream association for this allocation.\n    `flags` must be one of CU_MEM_ATTACH_GLOBAL or CU_MEM_ATTACH_HOST. If\n    CU_MEM_ATTACH_GLOBAL is specified, then this memory is accessible from\n    any stream on any device. If CU_MEM_ATTACH_HOST is specified, then the\n    allocation should not be accessed from devices that have a zero value\n    for the device attribute CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS;\n    an explicit call to cuStreamAttachMemAsync will be required to enable\n    access on such devices.\n\n    If the association is later changed via cuStreamAttachMemAsync to a\n    single stream, the default association as specifed during\n    cuMemAllocManaged is restored when that stream is destroyed. For\n    managed variables, the default association is always\n    CU_MEM_ATTACH_GLOBAL. Note that destroying a stream is an asynchronous\n    operation, and as a result, the change to default association won't\n    happen until all work in the stream has completed.\n\n    Memory allocated with cuMemAllocManaged should be released with\n    cuMemFree.\n\n    Device memory oversubscription is"" possible for GPUs that have a non-\n    zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS. Managed memory on such\n    GPUs may be evicted from device memory to host memory at any time by\n    the Unified Memory driver in order to make room for other allocations.\n\n    In a multi-GPU system where all GPUs have a non-zero value for the\n    device attribute CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS, managed\n    memory may not be populated when this API returns and instead may be\n    populated on access. In such systems, managed memory can migrate to any\n    processor's memory at any time. The Unified Memory driver will employ\n    heuristics to maintain data locality and prevent excessive page faults\n    to the extent possible. The application can also guide the driver about\n    memory usage patterns via cuMemAdvise. The application can also\n    explicitly migrate memory to a desired processor's memory via\n    cuMemPrefetchAsync.\n\n    In a multi-GPU system where all of the GPUs have a zero value for the\n    device attribute CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS and all\n    the GPUs have peer-to-peer support with each other, the physical\n    storage for managed memory is created on the GPU which is active at the\n    time cuMemAllocManaged is called. All other GPUs will reference the\n    data at reduced bandwidth via peer mappings over the PCIe bus. The\n    Unified Memory driver does not migrate memory among such GPUs.\n\n    In a multi-GPU system where not all GPUs have peer-to-peer support with\n    each other and where the value of the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS is zero for at least one\n    of those GPUs, the location chosen for physical storage of managed\n    memory is system-dependent. On Linux, the location chosen will be\n    device memory as long as the current set of active contexts are on\n    devices that either have peer-to-peer support with each oth""er or have a\n    non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS. If there is an active\n    context on a GPU that does not have a non-zero value for that device\n    attribute and it does not have peer-to-peer support with the other\n    devices that have active contexts on them, then the location for\n    physical storage will be 'zero-copy' or host memory. Note that this\n    means that managed memory that is located in device memory is migrated\n    to host memory if a new context is created on a GPU that doesn't have a\n    non-zero value for the device attribute and does not support peer-to-\n    peer with at least one of the other devices that has an active context.\n    This in turn implies that context creation may fail if there is\n    insufficient host memory to migrate all managed allocations. On\n    Windows, the physical storage is always created in 'zero-copy' or host\n    memory. All GPUs will reference the data at reduced bandwidth over the\n    PCIe bus. In these circumstances, use of the environment variable\n    CUDA_VISIBLE_DEVICES is recommended to restrict CUDA to only use those\n    GPUs that have peer-to-peer support. Alternatively, users can also set\n    CUDA_MANAGED_FORCE_DEVICE_ALLOC to a non-zero value to force the driver\n    to always use device memory for physical storage. When this environment\n    variable is set to a non-zero value, all contexts created in that\n    process on devices that support managed memory have to be peer-to-peer\n    compatible with each other. Context creation will fail if a context is\n    created on a device that supports managed memory and is not peer-to-\n    peer compatible with any of the other managed memory supporting devices\n    on which contexts were previously created, even if those contexts have\n    been destroyed. These environment variables are described in the CUDA\n    programming guide under the \"CUDA environment variables\" section. On\n    A""RM, managed memory is not available on discrete gpu with Drive PX-2.\n\n    Parameters\n    ----------\n    bytesize : size_t\n        Requested allocation size in bytes\n    flags : unsigned int\n        Must be one of CU_MEM_ATTACH_GLOBAL or CU_MEM_ATTACH_HOST\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    dptr : CUdeviceptr\n        Returned device pointer\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cuDeviceGetAttribute\n    cuStreamAttachMemAsync\n    cudaMallocManaged\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_145cuMemAllocManaged = {"cuMemAllocManaged", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_145cuMemAllocManaged, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_144cuMemAllocManaged};
static PyObject *__pyx_pw_4cuda_4cuda_145cuMemAllocManaged(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_bytesize;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAllocManaged (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bytesize_2,&__pyx_n_s_flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bytesize_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAllocManaged", 1, 2, 2, 1); __PYX_ERR(0, 11663, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAllocManaged") < 0)) __PYX_ERR(0, 11663, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 11663, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 11663, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAllocManaged", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 11663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocManaged", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_144cuMemAllocManaged(__pyx_self, __pyx_v_bytesize, __pyx_v_flags);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_144cuMemAllocManaged(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__586)
  __Pyx_RefNannySetupContext("cuMemAllocManaged", 0);
  __Pyx_TraceCall("cuMemAllocManaged", __pyx_f[0], 11663, 0, __PYX_ERR(0, 11663, __pyx_L1_error));

  /* "cuda/cuda.pyx":11821
 *     cudaMallocManaged
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAllocManaged(dptr._ptr, bytesize, flags)
 *     return (CUresult(err), dptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11822
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAllocManaged(dptr._ptr, bytesize, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemAllocManaged(__pyx_v_dptr->_ptr, __pyx_v_bytesize, __pyx_v_flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11822, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11823
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAllocManaged(dptr._ptr, bytesize, flags)
 *     return (CUresult(err), dptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11663
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocManaged(size_t bytesize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Allocates memory that will be automatically managed by the Unified Memory system.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocManaged", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11826
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetByPCIBusId(char* pciBusId):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_147cuDeviceGetByPCIBusId(PyObject *__pyx_self, PyObject *__pyx_arg_pciBusId); /*proto*/
static char __pyx_doc_4cuda_4cuda_146cuDeviceGetByPCIBusId[] = "cuDeviceGetByPCIBusId(char *pciBusId)\n Returns a handle to a compute device.\n\n    Returns in `*device` a device handle given a PCI bus ID string.\n\n    Parameters\n    ----------\n    pciBusId : bytes\n        String in one of the following forms:\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    dev : CUdevice\n        Returned device handle\n\n    See Also\n    --------\n    cuDeviceGet\n    cuDeviceGetAttribute\n    cuDeviceGetPCIBusId\n    cudaDeviceGetByPCIBusId\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_147cuDeviceGetByPCIBusId = {"cuDeviceGetByPCIBusId", (PyCFunction)__pyx_pw_4cuda_4cuda_147cuDeviceGetByPCIBusId, METH_O, __pyx_doc_4cuda_4cuda_146cuDeviceGetByPCIBusId};
static PyObject *__pyx_pw_4cuda_4cuda_147cuDeviceGetByPCIBusId(PyObject *__pyx_self, PyObject *__pyx_arg_pciBusId) {
  char *__pyx_v_pciBusId;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetByPCIBusId (wrapper)", 0);
  assert(__pyx_arg_pciBusId); {
    __pyx_v_pciBusId = __Pyx_PyObject_AsWritableString(__pyx_arg_pciBusId); if (unlikely((!__pyx_v_pciBusId) && PyErr_Occurred())) __PYX_ERR(0, 11826, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetByPCIBusId", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_146cuDeviceGetByPCIBusId(__pyx_self, ((char *)__pyx_v_pciBusId));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_146cuDeviceGetByPCIBusId(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_pciBusId) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__587)
  __Pyx_RefNannySetupContext("cuDeviceGetByPCIBusId", 0);
  __Pyx_TraceCall("cuDeviceGetByPCIBusId", __pyx_f[0], 11826, 0, __PYX_ERR(0, 11826, __pyx_L1_error));

  /* "cuda/cuda.pyx":11854
 *     cudaDeviceGetByPCIBusId
 *     """
 *     cdef CUdevice dev = CUdevice()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetByPCIBusId(dev._ptr, pciBusId)
 *     return (CUresult(err), dev)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11855
 *     """
 *     cdef CUdevice dev = CUdevice()
 *     err = ccuda.cuDeviceGetByPCIBusId(dev._ptr, pciBusId)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dev)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuDeviceGetByPCIBusId(__pyx_v_dev->_ptr, __pyx_v_pciBusId); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11855, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11856
 *     cdef CUdevice dev = CUdevice()
 *     err = ccuda.cuDeviceGetByPCIBusId(dev._ptr, pciBusId)
 *     return (CUresult(err), dev)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dev));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dev));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dev));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11826
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetByPCIBusId(char* pciBusId):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetByPCIBusId", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dev);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11859
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetPCIBusId(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns a PCI Bus Id string for the device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_149cuDeviceGetPCIBusId(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_148cuDeviceGetPCIBusId[] = "cuDeviceGetPCIBusId(int length, CUdevice dev: CUdevice)\n Returns a PCI Bus Id string for the device.\n\n    Returns an ASCII string identifying the device `dev` in the NULL-\n    terminated string pointed to by `pciBusId`. `length` specifies the\n    maximum length of the string that may be returned.\n\n    Parameters\n    ----------\n    length : int\n        Maximum length of string to store in `name`\n    dev : CUdevice\n        Device to get identifier string for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    pciBusId : bytes\n        Returned identifier string for the device in the following format\n\n    See Also\n    --------\n    cuDeviceGet\n    cuDeviceGetAttribute\n    cuDeviceGetByPCIBusId\n    cudaDeviceGetPCIBusId\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_149cuDeviceGetPCIBusId = {"cuDeviceGetPCIBusId", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_149cuDeviceGetPCIBusId, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_148cuDeviceGetPCIBusId};
static PyObject *__pyx_pw_4cuda_4cuda_149cuDeviceGetPCIBusId(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_length;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetPCIBusId (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_length,&__pyx_n_s_dev,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetPCIBusId", 1, 2, 2, 1); __PYX_ERR(0, 11859, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetPCIBusId") < 0)) __PYX_ERR(0, 11859, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_length = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_length == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 11859, __pyx_L3_error)
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetPCIBusId", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 11859, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetPCIBusId", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 11859, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_148cuDeviceGetPCIBusId(__pyx_self, __pyx_v_length, __pyx_v_dev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_148cuDeviceGetPCIBusId(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_length, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev) {
  char *__pyx_v_pciBusId;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__588)
  __Pyx_RefNannySetupContext("cuDeviceGetPCIBusId", 0);
  __Pyx_TraceCall("cuDeviceGetPCIBusId", __pyx_f[0], 11859, 0, __PYX_ERR(0, 11859, __pyx_L1_error));

  /* "cuda/cuda.pyx":11891
 *     cudaDeviceGetPCIBusId
 *     """
 *     cdef char* pciBusId = <char*>calloc(1, length)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetPCIBusId(pciBusId, length, dev._ptr[0])
 *     return (CUresult(err), <bytes>pciBusId)
 */
  __pyx_v_pciBusId = ((char *)calloc(1, __pyx_v_length));

  /* "cuda/cuda.pyx":11892
 *     """
 *     cdef char* pciBusId = <char*>calloc(1, length)
 *     err = ccuda.cuDeviceGetPCIBusId(pciBusId, length, dev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), <bytes>pciBusId)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceGetPCIBusId(__pyx_v_pciBusId, __pyx_v_length, (__pyx_v_dev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11892, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":11893
 *     cdef char* pciBusId = <char*>calloc(1, length)
 *     err = ccuda.cuDeviceGetPCIBusId(pciBusId, length, dev._ptr[0])
 *     return (CUresult(err), <bytes>pciBusId)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_pciBusId); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_INCREF(((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11859
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetPCIBusId(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns a PCI Bus Id string for the device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetPCIBusId", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11896
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetEventHandle(event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess handle for a previously allocated event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_151cuIpcGetEventHandle(PyObject *__pyx_self, PyObject *__pyx_v_event); /*proto*/
static char __pyx_doc_4cuda_4cuda_150cuIpcGetEventHandle[] = "cuIpcGetEventHandle(CUevent event: CUevent)\n Gets an interprocess handle for a previously allocated event.\n\n    Takes as input a previously allocated event. This event must have been\n    created with the CU_EVENT_INTERPROCESS and CU_EVENT_DISABLE_TIMING\n    flags set. This opaque handle may be copied into other processes and\n    opened with cuIpcOpenEventHandle to allow efficient hardware\n    synchronization between GPU work in different processes.\n\n    After the event has been opened in the importing process,\n    cuEventRecord, cuEventSynchronize, cuStreamWaitEvent and cuEventQuery\n    may be used in either process. Performing operations on the imported\n    event after the exported event has been freed with cuEventDestroy will\n    result in undefined behavior.\n\n    IPC functionality is restricted to devices with support for unified\n    addressing on Linux and Windows operating systems. IPC functionality on\n    Windows is restricted to GPUs in TCC mode\n\n    Parameters\n    ----------\n    event : CUevent\n        Event allocated with CU_EVENT_INTERPROCESS and\n        CU_EVENT_DISABLE_TIMING flags.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_MAP_FAILED\n        CUDA_ERROR_INVALID_VALUE\n    pHandle : CUipcEventHandle\n        Pointer to a user allocated CUipcEventHandle in which to return the\n        opaque event handle\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventDestroy\n    cuEventSynchronize\n    cuEventQuery\n    cuStreamWaitEvent\n    cuIpcOpenEventHandle\n    cuIpcGetMemHandle\n    cuIpcOpenMemHandle\n    cuIpcCloseMemHandle\n    cudaIpcGetEventHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_151cuIpcGetEventHandle = {"cuIpcGetEventHandle", (PyCFunction)__pyx_pw_4cuda_4cuda_151cuIpcGetEventHandle, METH_O, __pyx_doc_4cuda_4cuda_150cuIpcGetEventHandle};
static PyObject *__pyx_pw_4cuda_4cuda_151cuIpcGetEventHandle(PyObject *__pyx_self, PyObject *__pyx_v_event) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuIpcGetEventHandle (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 11896, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_150cuIpcGetEventHandle(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_event));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_150cuIpcGetEventHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  struct __pyx_obj_4cuda_4cuda_CUipcEventHandle *__pyx_v_pHandle = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__589)
  __Pyx_RefNannySetupContext("cuIpcGetEventHandle", 0);
  __Pyx_TraceCall("cuIpcGetEventHandle", __pyx_f[0], 11896, 0, __PYX_ERR(0, 11896, __pyx_L1_error));

  /* "cuda/cuda.pyx":11946
 *     cudaIpcGetEventHandle
 *     """
 *     cdef CUipcEventHandle pHandle = CUipcEventHandle()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuIpcGetEventHandle(pHandle._ptr, event._ptr[0])
 *     return (CUresult(err), pHandle)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcEventHandle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pHandle = ((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11947
 *     """
 *     cdef CUipcEventHandle pHandle = CUipcEventHandle()
 *     err = ccuda.cuIpcGetEventHandle(pHandle._ptr, event._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pHandle)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuIpcGetEventHandle(__pyx_v_pHandle->__pyx_base._ptr, (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11947, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11948
 *     cdef CUipcEventHandle pHandle = CUipcEventHandle()
 *     err = ccuda.cuIpcGetEventHandle(pHandle._ptr, event._ptr[0])
 *     return (CUresult(err), pHandle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pHandle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pHandle));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pHandle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11896
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetEventHandle(event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess handle for a previously allocated event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuIpcGetEventHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pHandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":11951
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenEventHandle(handle not None : CUipcEventHandle):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess event handle for use in the current process.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_153cuIpcOpenEventHandle(PyObject *__pyx_self, PyObject *__pyx_v_handle); /*proto*/
static char __pyx_doc_4cuda_4cuda_152cuIpcOpenEventHandle[] = "cuIpcOpenEventHandle(CUipcEventHandle handle: CUipcEventHandle)\n Opens an interprocess event handle for use in the current process.\n\n    Opens an interprocess event handle exported from another process with\n    cuIpcGetEventHandle. This function returns a CUevent that behaves like\n    a locally created event with the CU_EVENT_DISABLE_TIMING flag\n    specified. This event must be freed with cuEventDestroy.\n\n    Performing operations on the imported event after the exported event\n    has been freed with cuEventDestroy will result in undefined behavior.\n\n    IPC functionality is restricted to devices with support for unified\n    addressing on Linux and Windows operating systems. IPC functionality on\n    Windows is restricted to GPUs in TCC mode\n\n    Parameters\n    ----------\n    handle : CUipcEventHandle\n        Interprocess handle to open\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_MAP_FAILED\n        CUDA_ERROR_PEER_ACCESS_UNSUPPORTED\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    phEvent : CUevent\n        Returns the imported event\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventDestroy\n    cuEventSynchronize\n    cuEventQuery\n    cuStreamWaitEvent\n    cuIpcGetEventHandle\n    cuIpcGetMemHandle\n    cuIpcOpenMemHandle\n    cuIpcCloseMemHandle\n    cudaIpcOpenEventHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_153cuIpcOpenEventHandle = {"cuIpcOpenEventHandle", (PyCFunction)__pyx_pw_4cuda_4cuda_153cuIpcOpenEventHandle, METH_O, __pyx_doc_4cuda_4cuda_152cuIpcOpenEventHandle};
static PyObject *__pyx_pw_4cuda_4cuda_153cuIpcOpenEventHandle(PyObject *__pyx_self, PyObject *__pyx_v_handle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuIpcOpenEventHandle (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda_CUipcEventHandle, 0, "handle", 0))) __PYX_ERR(0, 11951, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_152cuIpcOpenEventHandle(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUipcEventHandle *)__pyx_v_handle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_152cuIpcOpenEventHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUipcEventHandle *__pyx_v_handle) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_phEvent = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__590)
  __Pyx_RefNannySetupContext("cuIpcOpenEventHandle", 0);
  __Pyx_TraceCall("cuIpcOpenEventHandle", __pyx_f[0], 11951, 0, __PYX_ERR(0, 11951, __pyx_L1_error));

  /* "cuda/cuda.pyx":11996
 *     cudaIpcOpenEventHandle
 *     """
 *     cdef CUevent phEvent = CUevent()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuIpcOpenEventHandle(phEvent._ptr, handle._ptr[0])
 *     return (CUresult(err), phEvent)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUevent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phEvent = ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11997
 *     """
 *     cdef CUevent phEvent = CUevent()
 *     err = ccuda.cuIpcOpenEventHandle(phEvent._ptr, handle._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phEvent)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuIpcOpenEventHandle(__pyx_v_phEvent->_ptr, (__pyx_v_handle->__pyx_base._ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 11997, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":11998
 *     cdef CUevent phEvent = CUevent()
 *     err = ccuda.cuIpcOpenEventHandle(phEvent._ptr, handle._ptr[0])
 *     return (CUresult(err), phEvent)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phEvent));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phEvent));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phEvent));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":11951
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenEventHandle(handle not None : CUipcEventHandle):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess event handle for use in the current process.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuIpcOpenEventHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phEvent);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12001
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess memory handle for an existing device memory allocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_155cuIpcGetMemHandle(PyObject *__pyx_self, PyObject *__pyx_v_dptr); /*proto*/
static char __pyx_doc_4cuda_4cuda_154cuIpcGetMemHandle[] = "cuIpcGetMemHandle(CUdeviceptr dptr: CUdeviceptr)\n Gets an interprocess memory handle for an existing device memory allocation.\n\n    Takes a pointer to the base of an existing device memory allocation\n    created with cuMemAlloc and exports it for use in another process. This\n    is a lightweight operation and may be called multiple times on an\n    allocation without adverse effects.\n\n    If a region of memory is freed with cuMemFree and a subsequent call to\n    cuMemAlloc returns memory with the same device address,\n    cuIpcGetMemHandle will return a unique handle for the new memory.\n\n    IPC functionality is restricted to devices with support for unified\n    addressing on Linux and Windows operating systems. IPC functionality on\n    Windows is restricted to GPUs in TCC mode\n\n    Parameters\n    ----------\n    dptr : CUdeviceptr\n        Base pointer to previously allocated device memory\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_MAP_FAILED\n        CUDA_ERROR_INVALID_VALUE\n    pHandle : CUipcMemHandle\n        Pointer to user allocated CUipcMemHandle to return the handle in.\n\n    See Also\n    --------\n    cuMemAlloc\n    cuMemFree\n    cuIpcGetEventHandle\n    cuIpcOpenEventHandle\n    cuIpcOpenMemHandle\n    cuIpcCloseMemHandle\n    cudaIpcGetMemHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_155cuIpcGetMemHandle = {"cuIpcGetMemHandle", (PyCFunction)__pyx_pw_4cuda_4cuda_155cuIpcGetMemHandle, METH_O, __pyx_doc_4cuda_4cuda_154cuIpcGetMemHandle};
static PyObject *__pyx_pw_4cuda_4cuda_155cuIpcGetMemHandle(PyObject *__pyx_self, PyObject *__pyx_v_dptr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuIpcGetMemHandle (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 12001, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_154cuIpcGetMemHandle(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dptr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_154cuIpcGetMemHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr) {
  struct __pyx_obj_4cuda_4cuda_CUipcMemHandle *__pyx_v_pHandle = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__591)
  __Pyx_RefNannySetupContext("cuIpcGetMemHandle", 0);
  __Pyx_TraceCall("cuIpcGetMemHandle", __pyx_f[0], 12001, 0, __PYX_ERR(0, 12001, __pyx_L1_error));

  /* "cuda/cuda.pyx":12044
 *     cudaIpcGetMemHandle
 *     """
 *     cdef CUipcMemHandle pHandle = CUipcMemHandle()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuIpcGetMemHandle(pHandle._ptr, dptr._ptr[0])
 *     return (CUresult(err), pHandle)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcMemHandle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pHandle = ((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12045
 *     """
 *     cdef CUipcMemHandle pHandle = CUipcMemHandle()
 *     err = ccuda.cuIpcGetMemHandle(pHandle._ptr, dptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pHandle)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuIpcGetMemHandle(__pyx_v_pHandle->__pyx_base._ptr, (__pyx_v_dptr->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12045, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":12046
 *     cdef CUipcMemHandle pHandle = CUipcMemHandle()
 *     err = ccuda.cuIpcGetMemHandle(pHandle._ptr, dptr._ptr[0])
 *     return (CUresult(err), pHandle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pHandle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pHandle));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pHandle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12001
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess memory handle for an existing device memory allocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuIpcGetMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pHandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12049
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenMemHandle(handle not None : CUipcMemHandle, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess memory handle exported from another process and returns a device pointer usable in the local process.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_157cuIpcOpenMemHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_156cuIpcOpenMemHandle[] = "cuIpcOpenMemHandle(CUipcMemHandle handle: CUipcMemHandle, unsigned int Flags)\n Opens an interprocess memory handle exported from another process and returns a device pointer usable in the local process.\n\n    Maps memory exported from another process with cuIpcGetMemHandle into\n    the current device address space. For contexts on different devices\n    cuIpcOpenMemHandle can attempt to enable peer access between the\n    devices as if the user called cuCtxEnablePeerAccess. This behavior is\n    controlled by the CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS flag.\n    cuDeviceCanAccessPeer can determine if a mapping is possible.\n\n    Contexts that may open CUipcMemHandles are restricted in the following\n    way. CUipcMemHandles from each CUdevice in a given process may only be\n    opened by one CUcontext per CUdevice per other process.\n\n    If the memory handle has already been opened by the current context,\n    the reference count on the handle is incremented by 1 and the existing\n    device pointer is returned.\n\n    Memory returned from cuIpcOpenMemHandle must be freed with\n    cuIpcCloseMemHandle.\n\n    Calling cuMemFree on an exported memory region before calling\n    cuIpcCloseMemHandle in the importing context will result in undefined\n    behavior.\n\n    IPC functionality is restricted to devices with support for unified\n    addressing on Linux and Windows operating systems. IPC functionality on\n    Windows is restricted to GPUs in TCC mode\n\n    Parameters\n    ----------\n    handle : CUipcMemHandle\n        ::CUipcMemHandle to open\n    Flags : unsigned int\n        Flags for this operation. Must be specified as\n        CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_MAP_FAILED\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_TOO_MANY_PEERS\n        CUDA_ERROR_INVALID_VALUE\n    pdptr : CUdeviceptr\n        Returned device pointer\n""\n    See Also\n    --------\n    cuMemAlloc\n    cuMemFree\n    cuIpcGetEventHandle\n    cuIpcOpenEventHandle\n    cuIpcGetMemHandle\n    cuIpcCloseMemHandle\n    cuCtxEnablePeerAccess\n    cuDeviceCanAccessPeer\n    cudaIpcOpenMemHandle\n\n    Notes\n    -----\n    No guarantees are made about the address returned in `*pdptr`. In particular, multiple processes may not receive the same address for the same `handle`.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_157cuIpcOpenMemHandle = {"cuIpcOpenMemHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_157cuIpcOpenMemHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_156cuIpcOpenMemHandle};
static PyObject *__pyx_pw_4cuda_4cuda_157cuIpcOpenMemHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUipcMemHandle *__pyx_v_handle = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuIpcOpenMemHandle (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handle_2,&__pyx_n_s_Flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handle_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuIpcOpenMemHandle", 1, 2, 2, 1); __PYX_ERR(0, 12049, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuIpcOpenMemHandle") < 0)) __PYX_ERR(0, 12049, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_handle = ((struct __pyx_obj_4cuda_4cuda_CUipcMemHandle *)values[0]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12049, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuIpcOpenMemHandle", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12049, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuIpcOpenMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda_CUipcMemHandle, 0, "handle", 0))) __PYX_ERR(0, 12049, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_156cuIpcOpenMemHandle(__pyx_self, __pyx_v_handle, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_156cuIpcOpenMemHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUipcMemHandle *__pyx_v_handle, unsigned int __pyx_v_Flags) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_pdptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__592)
  __Pyx_RefNannySetupContext("cuIpcOpenMemHandle", 0);
  __Pyx_TraceCall("cuIpcOpenMemHandle", __pyx_f[0], 12049, 0, __PYX_ERR(0, 12049, __pyx_L1_error));

  /* "cuda/cuda.pyx":12115
 * 
 *     """
 *     cdef CUdeviceptr pdptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuIpcOpenMemHandle(pdptr._ptr, handle._ptr[0], Flags)
 *     return (CUresult(err), pdptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pdptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12116
 *     """
 *     cdef CUdeviceptr pdptr = CUdeviceptr()
 *     err = ccuda.cuIpcOpenMemHandle(pdptr._ptr, handle._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pdptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuIpcOpenMemHandle(__pyx_v_pdptr->_ptr, (__pyx_v_handle->__pyx_base._ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12116, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":12117
 *     cdef CUdeviceptr pdptr = CUdeviceptr()
 *     err = ccuda.cuIpcOpenMemHandle(pdptr._ptr, handle._ptr[0], Flags)
 *     return (CUresult(err), pdptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pdptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pdptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pdptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12049
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenMemHandle(handle not None : CUipcMemHandle, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess memory handle exported from another process and returns a device pointer usable in the local process.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuIpcOpenMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pdptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12120
 * 
 * @cython.embedsignature(True)
 * def cuIpcCloseMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Attempts to close memory mapped with cuIpcOpenMemHandle.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_159cuIpcCloseMemHandle(PyObject *__pyx_self, PyObject *__pyx_v_dptr); /*proto*/
static char __pyx_doc_4cuda_4cuda_158cuIpcCloseMemHandle[] = "cuIpcCloseMemHandle(CUdeviceptr dptr: CUdeviceptr)\n Attempts to close memory mapped with cuIpcOpenMemHandle.\n\n    Decrements the reference count of the memory returned by\n    cuIpcOpenMemHandle by 1. When the reference count reaches 0, this API\n    unmaps the memory. The original allocation in the exporting process as\n    well as imported mappings in other processes will be unaffected.\n\n    Any resources used to enable peer access will be freed if this is the\n    last mapping using them.\n\n    IPC functionality is restricted to devices with support for unified\n    addressing on Linux and Windows operating systems. IPC functionality on\n    Windows is restricted to GPUs in TCC mode\n\n    Parameters\n    ----------\n    dptr : CUdeviceptr\n        Device pointer returned by cuIpcOpenMemHandle\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_MAP_FAILED\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemAlloc\n    cuMemFree\n    cuIpcGetEventHandle\n    cuIpcOpenEventHandle\n    cuIpcGetMemHandle\n    cuIpcOpenMemHandle\n    cudaIpcCloseMemHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_159cuIpcCloseMemHandle = {"cuIpcCloseMemHandle", (PyCFunction)__pyx_pw_4cuda_4cuda_159cuIpcCloseMemHandle, METH_O, __pyx_doc_4cuda_4cuda_158cuIpcCloseMemHandle};
static PyObject *__pyx_pw_4cuda_4cuda_159cuIpcCloseMemHandle(PyObject *__pyx_self, PyObject *__pyx_v_dptr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuIpcCloseMemHandle (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 12120, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_158cuIpcCloseMemHandle(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_dptr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_158cuIpcCloseMemHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__593)
  __Pyx_RefNannySetupContext("cuIpcCloseMemHandle", 0);
  __Pyx_TraceCall("cuIpcCloseMemHandle", __pyx_f[0], 12120, 0, __PYX_ERR(0, 12120, __pyx_L1_error));

  /* "cuda/cuda.pyx":12161
 *     cudaIpcCloseMemHandle
 *     """
 *     err = ccuda.cuIpcCloseMemHandle(dptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuIpcCloseMemHandle((__pyx_v_dptr->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12161, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":12162
 *     """
 *     err = ccuda.cuIpcCloseMemHandle(dptr._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12120
 * 
 * @cython.embedsignature(True)
 * def cuIpcCloseMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Attempts to close memory mapped with cuIpcOpenMemHandle.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuIpcCloseMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12165
 * 
 * @cython.embedsignature(True)
 * def cuMemHostRegister(p, size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Registers an existing host memory range for use by CUDA.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_161cuMemHostRegister(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_160cuMemHostRegister[] = "cuMemHostRegister(p, size_t bytesize, unsigned int Flags)\n Registers an existing host memory range for use by CUDA.\n\n    Page-locks the memory range specified by `p` and `bytesize` and maps it\n    for the device(s) as specified by `Flags`. This memory range also is\n    added to the same tracking mechanism as cuMemHostAlloc to automatically\n    accelerate calls to functions such as cuMemcpyHtoD(). Since the memory\n    can be accessed directly by the device, it can be read or written with\n    much higher bandwidth than pageable memory that has not been\n    registered. Page-locking excessive amounts of memory may degrade system\n    performance, since it reduces the amount of memory available to the\n    system for paging. As a result, this function is best used sparingly to\n    register staging areas for data exchange between host and device.\n\n    This function has limited support on Mac OS X. OS 10.7 or higher is\n    required.\n\n    The `Flags` parameter enables different options to be specified that\n    affect the allocation, as follows.\n\n    CU_MEMHOSTREGISTER_PORTABLE: The memory returned by this call will be\n    considered as pinned memory by all CUDA contexts, not just the one that\n    performed the allocation. CU_MEMHOSTREGISTER_DEVICEMAP: Maps the\n    allocation into the CUDA address space. The device pointer to the\n    memory may be obtained by calling cuMemHostGetDevicePointer().\n    CU_MEMHOSTREGISTER_IOMEMORY: The pointer is treated as pointing to some\n    I/O memory space, e.g. the PCI Express resource of a 3rd party device.\n    CU_MEMHOSTREGISTER_READ_ONLY: The pointer is treated as pointing to\n    memory that is considered read-only by the device. On platforms without\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES, this\n    flag is required in order to register memory mapped to the CPU as read-\n    only. Support for the use of this flag can be queried from the device\n    attribute CU_DEVICE_ATTRIBUTE_RE""AD_ONLY_HOST_REGISTER_SUPPORTED. Using\n    this flag with a current context associated with a device that does not\n    have this attribute set will cause cuMemHostRegister to error with\n    CUDA_ERROR_NOT_SUPPORTED.\n\n    All of these flags are orthogonal to one another: a developer may page-\n    lock memory that is portable or mapped with no restrictions.\n\n    The CU_MEMHOSTREGISTER_DEVICEMAP flag may be specified on CUDA contexts\n    for devices that do not support mapped pinned memory. The failure is\n    deferred to cuMemHostGetDevicePointer() because the memory may be\n    mapped into other CUDA contexts via the CU_MEMHOSTREGISTER_PORTABLE\n    flag.\n\n    For devices that have a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM, the memory\n    can also be accessed from the device using the host pointer `p`. The\n    device pointer returned by cuMemHostGetDevicePointer() may or may not\n    match the original host pointer `ptr` and depends on the devices\n    visible to the application. If all devices visible to the application\n    have a non-zero value for the device attribute, the device pointer\n    returned by cuMemHostGetDevicePointer() will match the original pointer\n    `ptr`. If any device visible to the application has a zero value for\n    the device attribute, the device pointer returned by\n    cuMemHostGetDevicePointer() will not match the original host pointer\n    `ptr`, but it will be suitable for use on all devices provided Unified\n    Virtual Addressing is enabled. In such systems, it is valid to access\n    the memory using either pointer on devices that have a non-zero value\n    for the device attribute. Note however that such devices should access\n    the memory using only of the two pointers and not both.\n\n    The memory page-locked by this function must be unregistered with\n    cuMemHostUnregister().\n\n    Parameters\n    ----------\n    p : Any\n        Host pointe""r to memory to page-lock\n    bytesize : size_t\n        Size in bytes of the address range to page-lock\n    Flags : unsigned int\n        Flags for allocation request\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemHostUnregister\n    cuMemHostGetFlags\n    cuMemHostGetDevicePointer\n    cudaHostRegister\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_161cuMemHostRegister = {"cuMemHostRegister", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_161cuMemHostRegister, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_160cuMemHostRegister};
static PyObject *__pyx_pw_4cuda_4cuda_161cuMemHostRegister(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_p = 0;
  size_t __pyx_v_bytesize;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemHostRegister (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_bytesize_2,&__pyx_n_s_Flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bytesize_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemHostRegister", 1, 3, 3, 1); __PYX_ERR(0, 12165, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemHostRegister", 1, 3, 3, 2); __PYX_ERR(0, 12165, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemHostRegister") < 0)) __PYX_ERR(0, 12165, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_p = values[0];
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12165, __pyx_L3_error)
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12165, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemHostRegister", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12165, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemHostRegister", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_160cuMemHostRegister(__pyx_self, __pyx_v_p, __pyx_v_bytesize, __pyx_v_Flags);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_160cuMemHostRegister(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p, size_t __pyx_v_bytesize, unsigned int __pyx_v_Flags) {
  PyObject *__pyx_v_cp = NULL;
  void *__pyx_v_cp_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__594)
  __Pyx_RefNannySetupContext("cuMemHostRegister", 0);
  __Pyx_TraceCall("cuMemHostRegister", __pyx_f[0], 12165, 0, __PYX_ERR(0, 12165, __pyx_L1_error));

  /* "cuda/cuda.pyx":12262
 *     cudaHostRegister
 *     """
 *     cp = utils.HelperInputVoidPtr(p)             # <<<<<<<<<<<<<<
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostRegister(cp_ptr, bytesize, Flags)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12263
 *     """
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemHostRegister(cp_ptr, bytesize, Flags)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cp, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 12263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cp_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":12264
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostRegister(cp_ptr, bytesize, Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemHostRegister(__pyx_v_cp_ptr, __pyx_v_bytesize, __pyx_v_Flags); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12264, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":12265
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostRegister(cp_ptr, bytesize, Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 12265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12165
 * 
 * @cython.embedsignature(True)
 * def cuMemHostRegister(p, size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Registers an existing host memory range for use by CUDA.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemHostRegister", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12268
 * 
 * @cython.embedsignature(True)
 * def cuMemHostUnregister(p):             # <<<<<<<<<<<<<<
 *     """ Unregisters a memory range that was registered with cuMemHostRegister.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_163cuMemHostUnregister(PyObject *__pyx_self, PyObject *__pyx_v_p); /*proto*/
static char __pyx_doc_4cuda_4cuda_162cuMemHostUnregister[] = "cuMemHostUnregister(p)\n Unregisters a memory range that was registered with cuMemHostRegister.\n\n    Unmaps the memory range whose base address is specified by `p`, and\n    makes it pageable again.\n\n    The base address must be the same one specified to cuMemHostRegister().\n\n    Parameters\n    ----------\n    p : Any\n        Host pointer to memory to unregister\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED\n    None\n        None\n\n    See Also\n    --------\n    cuMemHostRegister\n    cudaHostUnregister\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_163cuMemHostUnregister = {"cuMemHostUnregister", (PyCFunction)__pyx_pw_4cuda_4cuda_163cuMemHostUnregister, METH_O, __pyx_doc_4cuda_4cuda_162cuMemHostUnregister};
static PyObject *__pyx_pw_4cuda_4cuda_163cuMemHostUnregister(PyObject *__pyx_self, PyObject *__pyx_v_p) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemHostUnregister (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_162cuMemHostUnregister(__pyx_self, ((PyObject *)__pyx_v_p));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_162cuMemHostUnregister(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p) {
  PyObject *__pyx_v_cp = NULL;
  void *__pyx_v_cp_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__595)
  __Pyx_RefNannySetupContext("cuMemHostUnregister", 0);
  __Pyx_TraceCall("cuMemHostUnregister", __pyx_f[0], 12268, 0, __PYX_ERR(0, 12268, __pyx_L1_error));

  /* "cuda/cuda.pyx":12299
 *     cudaHostUnregister
 *     """
 *     cp = utils.HelperInputVoidPtr(p)             # <<<<<<<<<<<<<<
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostUnregister(cp_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12300
 *     """
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemHostUnregister(cp_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cp, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 12300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cp_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":12301
 *     cp = utils.HelperInputVoidPtr(p)
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostUnregister(cp_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemHostUnregister(__pyx_v_cp_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12301, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":12302
 *     cdef void* cp_ptr = <void*><void_ptr>cp.cptr
 *     err = ccuda.cuMemHostUnregister(cp_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 12302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12268
 * 
 * @cython.embedsignature(True)
 * def cuMemHostUnregister(p):             # <<<<<<<<<<<<<<
 *     """ Unregisters a memory range that was registered with cuMemHostRegister.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemHostUnregister", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12305
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_165cuMemcpy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_164cuMemcpy[] = "cuMemcpy(CUdeviceptr dst: CUdeviceptr, CUdeviceptr src: CUdeviceptr, size_t ByteCount)\n Copies memory.\n\n    Copies data between two pointers. `dst` and `src` are base pointers of\n    the destination and source, respectively. `ByteCount` specifies the\n    number of bytes to copy. Note that this function infers the type of the\n    transfer (host to host, host to device, device to device, or device to\n    host) from the pointer values. This function is only allowed in\n    contexts which support unified addressing.\n\n    Parameters\n    ----------\n    dst : CUdeviceptr\n        Destination unified virtual address space pointer\n    src : CUdeviceptr\n        Source unified virtual address space pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy\n    cudaMemcpyToSymbol\n    cudaMemcpyFromSymbol\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_165cuMemcpy = {"cuMemcpy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_165cuMemcpy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_164cuMemcpy};
static PyObject *__pyx_pw_4cuda_4cuda_165cuMemcpy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_src = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dst_2,&__pyx_n_s_src,&__pyx_n_s_ByteCount,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dst_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_src)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpy", 1, 3, 3, 1); __PYX_ERR(0, 12305, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpy", 1, 3, 3, 2); __PYX_ERR(0, 12305, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpy") < 0)) __PYX_ERR(0, 12305, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dst = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_src = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12305, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12305, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dst", 0))) __PYX_ERR(0, 12305, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "src", 0))) __PYX_ERR(0, 12305, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_164cuMemcpy(__pyx_self, __pyx_v_dst, __pyx_v_src, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_164cuMemcpy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_src, size_t __pyx_v_ByteCount) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__596)
  __Pyx_RefNannySetupContext("cuMemcpy", 0);
  __Pyx_TraceCall("cuMemcpy", __pyx_f[0], 12305, 0, __PYX_ERR(0, 12305, __pyx_L1_error));

  /* "cuda/cuda.pyx":12377
 *     cudaMemcpyFromSymbol
 *     """
 *     err = ccuda.cuMemcpy(dst._ptr[0], src._ptr[0], ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpy((__pyx_v_dst->_ptr[0]), (__pyx_v_src->_ptr[0]), __pyx_v_ByteCount); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12377, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":12378
 *     """
 *     err = ccuda.cuMemcpy(dst._ptr[0], src._ptr[0], ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12305
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12381
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeer(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_167cuMemcpyPeer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_166cuMemcpyPeer[] = "cuMemcpyPeer(CUdeviceptr dstDevice: CUdeviceptr, CUcontext dstContext: CUcontext, CUdeviceptr srcDevice: CUdeviceptr, CUcontext srcContext: CUcontext, size_t ByteCount)\n Copies device memory between two contexts.\n\n    Copies from device memory in one context to device memory in another\n    context. `dstDevice` is the base device pointer of the destination\n    memory and `dstContext` is the destination context. `srcDevice` is the\n    base device pointer of the source memory and `srcContext` is the source\n    pointer. `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstContext : CUcontext\n        Destination context\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcContext : CUcontext\n        Source context\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpyDtoD\n    cuMemcpy3DPeer\n    cuMemcpyDtoDAsync\n    cuMemcpyPeerAsync\n    cuMemcpy3DPeerAsync\n    cudaMemcpyPeer\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_167cuMemcpyPeer = {"cuMemcpyPeer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_167cuMemcpyPeer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_166cuMemcpyPeer};
static PyObject *__pyx_pw_4cuda_4cuda_167cuMemcpyPeer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyPeer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstContext_2,&__pyx_n_s_srcDevice_2,&__pyx_n_s_srcContext_2,&__pyx_n_s_ByteCount,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstContext_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeer", 1, 5, 5, 1); __PYX_ERR(0, 12381, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeer", 1, 5, 5, 2); __PYX_ERR(0, 12381, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcContext_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeer", 1, 5, 5, 3); __PYX_ERR(0, 12381, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeer", 1, 5, 5, 4); __PYX_ERR(0, 12381, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyPeer") < 0)) __PYX_ERR(0, 12381, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[1]);
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
    __pyx_v_srcContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[3]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12381, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyPeer", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12381, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyPeer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 12381, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstContext), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "dstContext", 0))) __PYX_ERR(0, 12381, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 12381, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcContext), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "srcContext", 0))) __PYX_ERR(0, 12381, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_166cuMemcpyPeer(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstContext, __pyx_v_srcDevice, __pyx_v_srcContext, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_166cuMemcpyPeer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext, size_t __pyx_v_ByteCount) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__597)
  __Pyx_RefNannySetupContext("cuMemcpyPeer", 0);
  __Pyx_TraceCall("cuMemcpyPeer", __pyx_f[0], 12381, 0, __PYX_ERR(0, 12381, __pyx_L1_error));

  /* "cuda/cuda.pyx":12423
 *     cudaMemcpyPeer
 *     """
 *     err = ccuda.cuMemcpyPeer(dstDevice._ptr[0], dstContext._ptr[0], srcDevice._ptr[0], srcContext._ptr[0], ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyPeer((__pyx_v_dstDevice->_ptr[0]), (__pyx_v_dstContext->_ptr[0]), (__pyx_v_srcDevice->_ptr[0]), (__pyx_v_srcContext->_ptr[0]), __pyx_v_ByteCount); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12423, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":12424
 *     """
 *     err = ccuda.cuMemcpyPeer(dstDevice._ptr[0], dstContext._ptr[0], srcDevice._ptr[0], srcContext._ptr[0], ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12381
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeer(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyPeer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12427
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoD(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_169cuMemcpyHtoD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_168cuMemcpyHtoD[] = "cuMemcpyHtoD(CUdeviceptr dstDevice: CUdeviceptr, srcHost, size_t ByteCount)\n Copies memory from Host to Device.\n\n    Copies from host memory to device memory. `dstDevice` and `srcHost` are\n    the base addresses of the destination and source, respectively.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    srcHost : Any\n        Source host pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy\n    cudaMemcpyToSymbol\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_169cuMemcpyHtoD = {"cuMemcpyHtoD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_169cuMemcpyHtoD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_168cuMemcpyHtoD};
static PyObject *__pyx_pw_4cuda_4cuda_169cuMemcpyHtoD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  PyObject *__pyx_v_srcHost = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyHtoD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_srcHost_2,&__pyx_n_s_ByteCount,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcHost_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoD", 1, 3, 3, 1); __PYX_ERR(0, 12427, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoD", 1, 3, 3, 2); __PYX_ERR(0, 12427, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyHtoD") < 0)) __PYX_ERR(0, 12427, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_srcHost = values[1];
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12427, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoD", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12427, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 12427, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_168cuMemcpyHtoD(__pyx_self, __pyx_v_dstDevice, __pyx_v_srcHost, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_168cuMemcpyHtoD(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount) {
  PyObject *__pyx_v_csrcHost = NULL;
  void *__pyx_v_csrcHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__598)
  __Pyx_RefNannySetupContext("cuMemcpyHtoD", 0);
  __Pyx_TraceCall("cuMemcpyHtoD", __pyx_f[0], 12427, 0, __PYX_ERR(0, 12427, __pyx_L1_error));

  /* "cuda/cuda.pyx":12496
 *     cudaMemcpyToSymbol
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoD(dstDevice._ptr[0], csrcHost_ptr, ByteCount)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12497
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyHtoD(dstDevice._ptr[0], csrcHost_ptr, ByteCount)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 12497, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_csrcHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":12498
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoD(dstDevice._ptr[0], csrcHost_ptr, ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyHtoD((__pyx_v_dstDevice->_ptr[0]), __pyx_v_csrcHost_ptr, __pyx_v_ByteCount); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12498, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":12499
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoD(dstDevice._ptr[0], csrcHost_ptr, ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 12499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12427
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoD(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_csrcHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12502
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoH(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_171cuMemcpyDtoH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_170cuMemcpyDtoH[] = "cuMemcpyDtoH(dstHost, CUdeviceptr srcDevice: CUdeviceptr, size_t ByteCount)\n Copies memory from Device to Host.\n\n    Copies from device to host memory. `dstHost` and `srcDevice` specify\n    the base pointers of the destination and source, respectively.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstHost : Any\n        Destination host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy\n    cudaMemcpyFromSymbol\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_171cuMemcpyDtoH = {"cuMemcpyDtoH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_171cuMemcpyDtoH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_170cuMemcpyDtoH};
static PyObject *__pyx_pw_4cuda_4cuda_171cuMemcpyDtoH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_dstHost = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyDtoH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstHost_2,&__pyx_n_s_srcDevice_2,&__pyx_n_s_ByteCount,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstHost_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoH", 1, 3, 3, 1); __PYX_ERR(0, 12502, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoH", 1, 3, 3, 2); __PYX_ERR(0, 12502, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyDtoH") < 0)) __PYX_ERR(0, 12502, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dstHost = values[0];
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12502, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoH", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12502, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 12502, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_170cuMemcpyDtoH(__pyx_self, __pyx_v_dstHost, __pyx_v_srcDevice, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_170cuMemcpyDtoH(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount) {
  PyObject *__pyx_v_cdstHost = NULL;
  void *__pyx_v_cdstHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__599)
  __Pyx_RefNannySetupContext("cuMemcpyDtoH", 0);
  __Pyx_TraceCall("cuMemcpyDtoH", __pyx_f[0], 12502, 0, __PYX_ERR(0, 12502, __pyx_L1_error));

  /* "cuda/cuda.pyx":12571
 *     cudaMemcpyFromSymbol
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyDtoH(cdstHost_ptr, srcDevice._ptr[0], ByteCount)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12572
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyDtoH(cdstHost_ptr, srcDevice._ptr[0], ByteCount)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 12572, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cdstHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":12573
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyDtoH(cdstHost_ptr, srcDevice._ptr[0], ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyDtoH(__pyx_v_cdstHost_ptr, (__pyx_v_srcDevice->_ptr[0]), __pyx_v_ByteCount); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12573, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":12574
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyDtoH(cdstHost_ptr, srcDevice._ptr[0], ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 12574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12502
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoH(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cdstHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12577
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoD(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_173cuMemcpyDtoD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_172cuMemcpyDtoD[] = "cuMemcpyDtoD(CUdeviceptr dstDevice: CUdeviceptr, CUdeviceptr srcDevice: CUdeviceptr, size_t ByteCount)\n Copies memory from Device to Device.\n\n    Copies from device memory to device memory. `dstDevice` and `srcDevice`\n    are the base pointers of the destination and source, respectively.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy\n    cudaMemcpyToSymbol\n    cudaMemcpyFromSymbol\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_173cuMemcpyDtoD = {"cuMemcpyDtoD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_173cuMemcpyDtoD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_172cuMemcpyDtoD};
static PyObject *__pyx_pw_4cuda_4cuda_173cuMemcpyDtoD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyDtoD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_srcDevice_2,&__pyx_n_s_ByteCount,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoD", 1, 3, 3, 1); __PYX_ERR(0, 12577, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoD", 1, 3, 3, 2); __PYX_ERR(0, 12577, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyDtoD") < 0)) __PYX_ERR(0, 12577, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12577, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoD", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 12577, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 12577, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_172cuMemcpyDtoD(__pyx_self, __pyx_v_dstDevice, __pyx_v_srcDevice, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_172cuMemcpyDtoD(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__600)
  __Pyx_RefNannySetupContext("cuMemcpyDtoD", 0);
  __Pyx_TraceCall("cuMemcpyDtoD", __pyx_f[0], 12577, 0, __PYX_ERR(0, 12577, __pyx_L1_error));

  /* "cuda/cuda.pyx":12646
 *     cudaMemcpyFromSymbol
 *     """
 *     err = ccuda.cuMemcpyDtoD(dstDevice._ptr[0], srcDevice._ptr[0], ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyDtoD((__pyx_v_dstDevice->_ptr[0]), (__pyx_v_srcDevice->_ptr[0]), __pyx_v_ByteCount); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12646, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":12647
 *     """
 *     err = ccuda.cuMemcpyDtoD(dstDevice._ptr[0], srcDevice._ptr[0], ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12577
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoD(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12650
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoA(dstArray not None : CUarray, size_t dstOffset, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_175cuMemcpyDtoA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_174cuMemcpyDtoA[] = "cuMemcpyDtoA(CUarray dstArray: CUarray, size_t dstOffset, CUdeviceptr srcDevice: CUdeviceptr, size_t ByteCount)\n Copies memory from Device to Array.\n\n    Copies from device memory to a 1D CUDA array. `dstArray` and\n    `dstOffset` specify the CUDA array handle and starting index of the\n    destination data. `srcDevice` specifies the base pointer of the source.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstArray : CUarray\n        Destination array\n    dstOffset : size_t\n        Offset in bytes of destination array\n    srcDevice : CUdeviceptr\n        Source device pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpyToArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_175cuMemcpyDtoA = {"cuMemcpyDtoA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_175cuMemcpyDtoA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_174cuMemcpyDtoA};
static PyObject *__pyx_pw_4cuda_4cuda_175cuMemcpyDtoA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray = 0;
  size_t __pyx_v_dstOffset;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyDtoA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstArray_2,&__pyx_n_s_dstOffset,&__pyx_n_s_srcDevice_2,&__pyx_n_s_ByteCount,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoA", 1, 4, 4, 1); __PYX_ERR(0, 12650, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoA", 1, 4, 4, 2); __PYX_ERR(0, 12650, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoA", 1, 4, 4, 3); __PYX_ERR(0, 12650, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyDtoA") < 0)) __PYX_ERR(0, 12650, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[0]);
    __pyx_v_dstOffset = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12650, __pyx_L3_error)
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12650, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoA", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12650, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "dstArray", 0))) __PYX_ERR(0, 12650, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 12650, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_174cuMemcpyDtoA(__pyx_self, __pyx_v_dstArray, __pyx_v_dstOffset, __pyx_v_srcDevice, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_174cuMemcpyDtoA(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__601)
  __Pyx_RefNannySetupContext("cuMemcpyDtoA", 0);
  __Pyx_TraceCall("cuMemcpyDtoA", __pyx_f[0], 12650, 0, __PYX_ERR(0, 12650, __pyx_L1_error));

  /* "cuda/cuda.pyx":12721
 *     cudaMemcpyToArray
 *     """
 *     err = ccuda.cuMemcpyDtoA(dstArray._ptr[0], dstOffset, srcDevice._ptr[0], ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyDtoA((__pyx_v_dstArray->_ptr[0]), __pyx_v_dstOffset, (__pyx_v_srcDevice->_ptr[0]), __pyx_v_ByteCount); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12721, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":12722
 *     """
 *     err = ccuda.cuMemcpyDtoA(dstArray._ptr[0], dstOffset, srcDevice._ptr[0], ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12650
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoA(dstArray not None : CUarray, size_t dstOffset, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoD(dstDevice not None : CUdeviceptr, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_177cuMemcpyAtoD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_176cuMemcpyAtoD[] = "cuMemcpyAtoD(CUdeviceptr dstDevice: CUdeviceptr, CUarray srcArray: CUarray, size_t srcOffset, size_t ByteCount)\n Copies memory from Array to Device.\n\n    Copies from one 1D CUDA array to device memory. `dstDevice` specifies\n    the base pointer of the destination and must be naturally aligned with\n    the CUDA array elements. `srcArray` and `srcOffset` specify the CUDA\n    array handle and the offset in bytes into the array where the copy is\n    to begin. `ByteCount` specifies the number of bytes to copy and must be\n    evenly divisible by the array element size.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    srcArray : CUarray\n        Source array\n    srcOffset : size_t\n        Offset in bytes of source array\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpyFromArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_177cuMemcpyAtoD = {"cuMemcpyAtoD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_177cuMemcpyAtoD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_176cuMemcpyAtoD};
static PyObject *__pyx_pw_4cuda_4cuda_177cuMemcpyAtoD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray = 0;
  size_t __pyx_v_srcOffset;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyAtoD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_srcArray_2,&__pyx_n_s_srcOffset,&__pyx_n_s_ByteCount,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoD", 1, 4, 4, 1); __PYX_ERR(0, 12725, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoD", 1, 4, 4, 2); __PYX_ERR(0, 12725, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoD", 1, 4, 4, 3); __PYX_ERR(0, 12725, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyAtoD") < 0)) __PYX_ERR(0, 12725, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[1]);
    __pyx_v_srcOffset = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_srcOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12725, __pyx_L3_error)
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12725, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12725, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 12725, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "srcArray", 0))) __PYX_ERR(0, 12725, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_176cuMemcpyAtoD(__pyx_self, __pyx_v_dstDevice, __pyx_v_srcArray, __pyx_v_srcOffset, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_176cuMemcpyAtoD(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__602)
  __Pyx_RefNannySetupContext("cuMemcpyAtoD", 0);
  __Pyx_TraceCall("cuMemcpyAtoD", __pyx_f[0], 12725, 0, __PYX_ERR(0, 12725, __pyx_L1_error));

  /* "cuda/cuda.pyx":12798
 *     cudaMemcpyFromArray
 *     """
 *     err = ccuda.cuMemcpyAtoD(dstDevice._ptr[0], srcArray._ptr[0], srcOffset, ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyAtoD((__pyx_v_dstDevice->_ptr[0]), (__pyx_v_srcArray->_ptr[0]), __pyx_v_srcOffset, __pyx_v_ByteCount); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12798, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":12799
 *     """
 *     err = ccuda.cuMemcpyAtoD(dstDevice._ptr[0], srcArray._ptr[0], srcOffset, ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoD(dstDevice not None : CUdeviceptr, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12802
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoA(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_179cuMemcpyHtoA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_178cuMemcpyHtoA[] = "cuMemcpyHtoA(CUarray dstArray: CUarray, size_t dstOffset, srcHost, size_t ByteCount)\n Copies memory from Host to Array.\n\n    Copies from host memory to a 1D CUDA array. `dstArray` and `dstOffset`\n    specify the CUDA array handle and starting offset in bytes of the\n    destination data. `pSrc` specifies the base address of the source.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstArray : CUarray\n        Destination array\n    dstOffset : size_t\n        Offset in bytes of destination array\n    srcHost : Any\n        Source host pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpyToArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_179cuMemcpyHtoA = {"cuMemcpyHtoA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_179cuMemcpyHtoA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_178cuMemcpyHtoA};
static PyObject *__pyx_pw_4cuda_4cuda_179cuMemcpyHtoA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray = 0;
  size_t __pyx_v_dstOffset;
  PyObject *__pyx_v_srcHost = 0;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyHtoA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstArray_2,&__pyx_n_s_dstOffset,&__pyx_n_s_srcHost_2,&__pyx_n_s_ByteCount,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoA", 1, 4, 4, 1); __PYX_ERR(0, 12802, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcHost_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoA", 1, 4, 4, 2); __PYX_ERR(0, 12802, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoA", 1, 4, 4, 3); __PYX_ERR(0, 12802, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyHtoA") < 0)) __PYX_ERR(0, 12802, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[0]);
    __pyx_v_dstOffset = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12802, __pyx_L3_error)
    __pyx_v_srcHost = values[2];
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12802, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoA", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12802, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "dstArray", 0))) __PYX_ERR(0, 12802, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_178cuMemcpyHtoA(__pyx_self, __pyx_v_dstArray, __pyx_v_dstOffset, __pyx_v_srcHost, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_178cuMemcpyHtoA(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount) {
  PyObject *__pyx_v_csrcHost = NULL;
  void *__pyx_v_csrcHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__603)
  __Pyx_RefNannySetupContext("cuMemcpyHtoA", 0);
  __Pyx_TraceCall("cuMemcpyHtoA", __pyx_f[0], 12802, 0, __PYX_ERR(0, 12802, __pyx_L1_error));

  /* "cuda/cuda.pyx":12873
 *     cudaMemcpyToArray
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoA(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12874
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyHtoA(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 12874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_csrcHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":12875
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoA(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyHtoA((__pyx_v_dstArray->_ptr[0]), __pyx_v_dstOffset, __pyx_v_csrcHost_ptr, __pyx_v_ByteCount); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12875, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":12876
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoA(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 12876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12802
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoA(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_csrcHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12879
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoH(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_181cuMemcpyAtoH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_180cuMemcpyAtoH[] = "cuMemcpyAtoH(dstHost, CUarray srcArray: CUarray, size_t srcOffset, size_t ByteCount)\n Copies memory from Array to Host.\n\n    Copies from one 1D CUDA array to host memory. `dstHost` specifies the\n    base pointer of the destination. `srcArray` and `srcOffset` specify the\n    CUDA array handle and starting offset in bytes of the source data.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstHost : Any\n        Destination device pointer\n    srcArray : CUarray\n        Source array\n    srcOffset : size_t\n        Offset in bytes of source array\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpyFromArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_181cuMemcpyAtoH = {"cuMemcpyAtoH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_181cuMemcpyAtoH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_180cuMemcpyAtoH};
static PyObject *__pyx_pw_4cuda_4cuda_181cuMemcpyAtoH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_dstHost = 0;
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray = 0;
  size_t __pyx_v_srcOffset;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyAtoH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstHost_2,&__pyx_n_s_srcArray_2,&__pyx_n_s_srcOffset,&__pyx_n_s_ByteCount,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstHost_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoH", 1, 4, 4, 1); __PYX_ERR(0, 12879, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoH", 1, 4, 4, 2); __PYX_ERR(0, 12879, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoH", 1, 4, 4, 3); __PYX_ERR(0, 12879, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyAtoH") < 0)) __PYX_ERR(0, 12879, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstHost = values[0];
    __pyx_v_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[1]);
    __pyx_v_srcOffset = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_srcOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12879, __pyx_L3_error)
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12879, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12879, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "srcArray", 0))) __PYX_ERR(0, 12879, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_180cuMemcpyAtoH(__pyx_self, __pyx_v_dstHost, __pyx_v_srcArray, __pyx_v_srcOffset, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_180cuMemcpyAtoH(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount) {
  PyObject *__pyx_v_cdstHost = NULL;
  void *__pyx_v_cdstHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__604)
  __Pyx_RefNannySetupContext("cuMemcpyAtoH", 0);
  __Pyx_TraceCall("cuMemcpyAtoH", __pyx_f[0], 12879, 0, __PYX_ERR(0, 12879, __pyx_L1_error));

  /* "cuda/cuda.pyx":12950
 *     cudaMemcpyFromArray
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyAtoH(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":12951
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyAtoH(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 12951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cdstHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":12952
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyAtoH(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyAtoH(__pyx_v_cdstHost_ptr, (__pyx_v_srcArray->_ptr[0]), __pyx_v_srcOffset, __pyx_v_ByteCount); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 12952, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":12953
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyAtoH(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 12953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12879
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoH(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cdstHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":12956
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoA(dstArray not None : CUarray, size_t dstOffset, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_183cuMemcpyAtoA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_182cuMemcpyAtoA[] = "cuMemcpyAtoA(CUarray dstArray: CUarray, size_t dstOffset, CUarray srcArray: CUarray, size_t srcOffset, size_t ByteCount)\n Copies memory from Array to Array.\n\n    Copies from one 1D CUDA array to another. `dstArray` and `srcArray`\n    specify the handles of the destination and source CUDA arrays for the\n    copy, respectively. `dstOffset` and `srcOffset` specify the destination\n    and source offsets in bytes into the CUDA arrays. `ByteCount` is the\n    number of bytes to be copied. The size of the elements in the CUDA\n    arrays need not be the same format, but the elements must be the same\n    size; and count must be evenly divisible by that size.\n\n    Parameters\n    ----------\n    dstArray : CUarray\n        Destination array\n    dstOffset : size_t\n        Offset in bytes of destination array\n    srcArray : CUarray\n        Source array\n    srcOffset : size_t\n        Offset in bytes of source array\n    ByteCount : size_t\n        Size of memory copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32""\n    cudaMemcpyArrayToArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_183cuMemcpyAtoA = {"cuMemcpyAtoA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_183cuMemcpyAtoA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_182cuMemcpyAtoA};
static PyObject *__pyx_pw_4cuda_4cuda_183cuMemcpyAtoA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray = 0;
  size_t __pyx_v_dstOffset;
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray = 0;
  size_t __pyx_v_srcOffset;
  size_t __pyx_v_ByteCount;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyAtoA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstArray_2,&__pyx_n_s_dstOffset,&__pyx_n_s_srcArray_2,&__pyx_n_s_srcOffset,&__pyx_n_s_ByteCount,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoA", 1, 5, 5, 1); __PYX_ERR(0, 12956, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoA", 1, 5, 5, 2); __PYX_ERR(0, 12956, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoA", 1, 5, 5, 3); __PYX_ERR(0, 12956, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoA", 1, 5, 5, 4); __PYX_ERR(0, 12956, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyAtoA") < 0)) __PYX_ERR(0, 12956, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[0]);
    __pyx_v_dstOffset = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12956, __pyx_L3_error)
    __pyx_v_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[2]);
    __pyx_v_srcOffset = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_srcOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12956, __pyx_L3_error)
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 12956, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoA", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12956, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "dstArray", 0))) __PYX_ERR(0, 12956, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "srcArray", 0))) __PYX_ERR(0, 12956, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_182cuMemcpyAtoA(__pyx_self, __pyx_v_dstArray, __pyx_v_dstOffset, __pyx_v_srcArray, __pyx_v_srcOffset, __pyx_v_ByteCount);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_182cuMemcpyAtoA(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__605)
  __Pyx_RefNannySetupContext("cuMemcpyAtoA", 0);
  __Pyx_TraceCall("cuMemcpyAtoA", __pyx_f[0], 12956, 0, __PYX_ERR(0, 12956, __pyx_L1_error));

  /* "cuda/cuda.pyx":13032
 *     cudaMemcpyArrayToArray
 *     """
 *     err = ccuda.cuMemcpyAtoA(dstArray._ptr[0], dstOffset, srcArray._ptr[0], srcOffset, ByteCount)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyAtoA((__pyx_v_dstArray->_ptr[0]), __pyx_v_dstOffset, (__pyx_v_srcArray->_ptr[0]), __pyx_v_srcOffset, __pyx_v_ByteCount); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13032, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":13033
 *     """
 *     err = ccuda.cuMemcpyAtoA(dstArray._ptr[0], dstOffset, srcArray._ptr[0], srcOffset, ByteCount)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":12956
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoA(dstArray not None : CUarray, size_t dstOffset, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13036
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2D(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_185cuMemcpy2D(PyObject *__pyx_self, PyObject *__pyx_v_pCopy); /*proto*/
static char __pyx_doc_4cuda_4cuda_184cuMemcpy2D[] = "cuMemcpy2D(CUDA_MEMCPY2D pCopy: CUDA_MEMCPY2D)\n Copies memory for 2D arrays.\n\n    Perform a 2D memory copy according to the parameters specified in\n    `pCopy`. The CUDA_MEMCPY2D structure is defined as:\n\n    typedefstructCUDA_MEMCPY2D_st{ unsignedintsrcXInBytes,srcY;\n    CUmemorytypesrcMemoryType; constvoid*srcHost; CUdeviceptrsrcDevice;\n    CUarraysrcArray; unsignedintsrcPitch;  unsignedintdstXInBytes,dstY;\n    CUmemorytypedstMemoryType; void*dstHost; CUdeviceptrdstDevice;\n    CUarraydstArray; unsignedintdstPitch;  unsignedintWidthInBytes;\n    unsignedintHeight; }CUDA_MEMCPY2D; where: ::srcMemoryType and\n    dstMemoryType specify the type of memory of the source and destination,\n    respectively; CUmemorytype_enum is defined as:\n\n    typedefenumCUmemorytype_enum{ CU_MEMORYTYPE_HOST=0x01,\n    CU_MEMORYTYPE_DEVICE=0x02, CU_MEMORYTYPE_ARRAY=0x03,\n    CU_MEMORYTYPE_UNIFIED=0x04 }CUmemorytype;\n\n    If srcMemoryType is CU_MEMORYTYPE_UNIFIED, srcDevice and srcPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. srcArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If srcMemoryType is CU_MEMORYTYPE_HOST, srcHost and srcPitch specify\n    the (host) base address of the source data and the bytes per row to\n    apply. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_DEVICE, srcDevice and srcPitch\n    specify the (device) base address of the source data and the bytes per\n    row to apply. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_ARRAY, srcArray specifies the handle\n    of the source data. srcHost, srcDevice and srcPitch are ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_HOST, dstHost and dstPitch specify\n    the (host) base address of the destination data and the bytes per row\n    to apply. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_UNIFIED, dstDevice and d""stPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. dstArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If dstMemoryType is CU_MEMORYTYPE_DEVICE, dstDevice and dstPitch\n    specify the (device) base address of the destination data and the bytes\n    per row to apply. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_ARRAY, dstArray specifies the handle\n    of the destination data. dstHost, dstDevice and dstPitch are ignored.\n\n    For host pointers, the starting address is\n    void*Start=(void*)((char*)srcHost+srcY*srcPitch+srcXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrStart=srcDevice+srcY*srcPitch+srcXInBytes;\n\n    For CUDA arrays, srcXInBytes must be evenly divisible by the array\n    element size.\n\n    For host pointers, the base address is\n    void*dstStart=(void*)((char*)dstHost+dstY*dstPitch+dstXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrdstStart=dstDevice+dstY*dstPitch+dstXInBytes;\n\n    For CUDA arrays, dstXInBytes must be evenly divisible by the array\n    element size.\n\n    cuMemcpy2D() returns an error if any pitch is greater than the maximum\n    allowed (CU_DEVICE_ATTRIBUTE_MAX_PITCH). cuMemAllocPitch() passes back\n    pitches that always work with cuMemcpy2D(). On intra-device memory\n    copies (device to device, CUDA array to device, CUDA array to CUDA\n    array), cuMemcpy2D() may fail for pitches not computed by\n    cuMemAllocPitch(). cuMemcpy2DUnaligned() does not have this\n    restriction, but may run significantly slower in the cases where\n    cuMemcpy2D() would have returned an error code.\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY2D\n        Parameters for the memory copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERRO""R_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy2D\n    cudaMemcpy2DToArray\n    cudaMemcpy2DFromArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_185cuMemcpy2D = {"cuMemcpy2D", (PyCFunction)__pyx_pw_4cuda_4cuda_185cuMemcpy2D, METH_O, __pyx_doc_4cuda_4cuda_184cuMemcpy2D};
static PyObject *__pyx_pw_4cuda_4cuda_185cuMemcpy2D(PyObject *__pyx_self, PyObject *__pyx_v_pCopy) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy2D (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D, 1, "pCopy", 0))) __PYX_ERR(0, 13036, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_184cuMemcpy2D(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *)__pyx_v_pCopy));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_184cuMemcpy2D(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__606)
  __Pyx_RefNannySetupContext("cuMemcpy2D", 0);
  __Pyx_TraceCall("cuMemcpy2D", __pyx_f[0], 13036, 0, __PYX_ERR(0, 13036, __pyx_L1_error));

  /* "cuda/cuda.pyx":13175
 *     cudaMemcpy2DFromArray
 *     """
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy2D(cpCopy_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13175, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 13175, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":13176
 *     """
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy2D(cpCopy_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy2D(__pyx_v_cpCopy_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13176, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":13177
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy2D(cpCopy_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13036
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2D(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13180
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DUnaligned(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_187cuMemcpy2DUnaligned(PyObject *__pyx_self, PyObject *__pyx_v_pCopy); /*proto*/
static char __pyx_doc_4cuda_4cuda_186cuMemcpy2DUnaligned[] = "cuMemcpy2DUnaligned(CUDA_MEMCPY2D pCopy: CUDA_MEMCPY2D)\n Copies memory for 2D arrays.\n\n    Perform a 2D memory copy according to the parameters specified in\n    `pCopy`. The CUDA_MEMCPY2D structure is defined as:\n\n    typedefstructCUDA_MEMCPY2D_st{ unsignedintsrcXInBytes,srcY;\n    CUmemorytypesrcMemoryType; constvoid*srcHost; CUdeviceptrsrcDevice;\n    CUarraysrcArray; unsignedintsrcPitch; unsignedintdstXInBytes,dstY;\n    CUmemorytypedstMemoryType; void*dstHost; CUdeviceptrdstDevice;\n    CUarraydstArray; unsignedintdstPitch; unsignedintWidthInBytes;\n    unsignedintHeight; }CUDA_MEMCPY2D; where: ::srcMemoryType and\n    dstMemoryType specify the type of memory of the source and destination,\n    respectively; CUmemorytype_enum is defined as:\n\n    typedefenumCUmemorytype_enum{ CU_MEMORYTYPE_HOST=0x01,\n    CU_MEMORYTYPE_DEVICE=0x02, CU_MEMORYTYPE_ARRAY=0x03,\n    CU_MEMORYTYPE_UNIFIED=0x04 }CUmemorytype;\n\n    If srcMemoryType is CU_MEMORYTYPE_UNIFIED, srcDevice and srcPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. srcArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If srcMemoryType is CU_MEMORYTYPE_HOST, srcHost and srcPitch specify\n    the (host) base address of the source data and the bytes per row to\n    apply. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_DEVICE, srcDevice and srcPitch\n    specify the (device) base address of the source data and the bytes per\n    row to apply. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_ARRAY, srcArray specifies the handle\n    of the source data. srcHost, srcDevice and srcPitch are ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_UNIFIED, dstDevice and dstPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. dstArray is ignored. This value\n    may be used only ""if unified addressing is supported in the calling\n    context.\n\n    If dstMemoryType is CU_MEMORYTYPE_HOST, dstHost and dstPitch specify\n    the (host) base address of the destination data and the bytes per row\n    to apply. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_DEVICE, dstDevice and dstPitch\n    specify the (device) base address of the destination data and the bytes\n    per row to apply. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_ARRAY, dstArray specifies the handle\n    of the destination data. dstHost, dstDevice and dstPitch are ignored.\n\n    For host pointers, the starting address is\n    void*Start=(void*)((char*)srcHost+srcY*srcPitch+srcXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrStart=srcDevice+srcY*srcPitch+srcXInBytes;\n\n    For CUDA arrays, srcXInBytes must be evenly divisible by the array\n    element size.\n\n    For host pointers, the base address is\n    void*dstStart=(void*)((char*)dstHost+dstY*dstPitch+dstXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrdstStart=dstDevice+dstY*dstPitch+dstXInBytes;\n\n    For CUDA arrays, dstXInBytes must be evenly divisible by the array\n    element size.\n\n    cuMemcpy2D() returns an error if any pitch is greater than the maximum\n    allowed (CU_DEVICE_ATTRIBUTE_MAX_PITCH). cuMemAllocPitch() passes back\n    pitches that always work with cuMemcpy2D(). On intra-device memory\n    copies (device to device, CUDA array to device, CUDA array to CUDA\n    array), cuMemcpy2D() may fail for pitches not computed by\n    cuMemAllocPitch(). cuMemcpy2DUnaligned() does not have this\n    restriction, but may run significantly slower in the cases where\n    cuMemcpy2D() would have returned an error code.\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY2D\n        Parameters for the memory copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CU""DA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy2D\n    cudaMemcpy2DToArray\n    cudaMemcpy2DFromArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_187cuMemcpy2DUnaligned = {"cuMemcpy2DUnaligned", (PyCFunction)__pyx_pw_4cuda_4cuda_187cuMemcpy2DUnaligned, METH_O, __pyx_doc_4cuda_4cuda_186cuMemcpy2DUnaligned};
static PyObject *__pyx_pw_4cuda_4cuda_187cuMemcpy2DUnaligned(PyObject *__pyx_self, PyObject *__pyx_v_pCopy) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy2DUnaligned (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D, 1, "pCopy", 0))) __PYX_ERR(0, 13180, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_186cuMemcpy2DUnaligned(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *)__pyx_v_pCopy));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_186cuMemcpy2DUnaligned(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__607)
  __Pyx_RefNannySetupContext("cuMemcpy2DUnaligned", 0);
  __Pyx_TraceCall("cuMemcpy2DUnaligned", __pyx_f[0], 13180, 0, __PYX_ERR(0, 13180, __pyx_L1_error));

  /* "cuda/cuda.pyx":13319
 *     cudaMemcpy2DFromArray
 *     """
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy2DUnaligned(cpCopy_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13319, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 13319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":13320
 *     """
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy2DUnaligned(cpCopy_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy2DUnaligned(__pyx_v_cpCopy_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13320, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":13321
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy2DUnaligned(cpCopy_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13180
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DUnaligned(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy2DUnaligned", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13324
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3D(pCopy : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_189cuMemcpy3D(PyObject *__pyx_self, PyObject *__pyx_v_pCopy); /*proto*/
static char __pyx_doc_4cuda_4cuda_188cuMemcpy3D[] = "cuMemcpy3D(CUDA_MEMCPY3D pCopy: CUDA_MEMCPY3D)\n Copies memory for 3D arrays.\n\n    Perform a 3D memory copy according to the parameters specified in\n    `pCopy`. The CUDA_MEMCPY3D structure is defined as:\n\n    typedefstructCUDA_MEMCPY3D_st{  unsignedintsrcXInBytes,srcY,srcZ;\n    unsignedintsrcLOD; CUmemorytypesrcMemoryType; constvoid*srcHost;\n    CUdeviceptrsrcDevice; CUarraysrcArray;\n    unsignedintsrcPitch;//ignoredwhensrcisarray\n    unsignedintsrcHeight;//ignoredwhensrcisarray;maybe0ifDepth==1\n    unsignedintdstXInBytes,dstY,dstZ; unsignedintdstLOD;\n    CUmemorytypedstMemoryType; void*dstHost; CUdeviceptrdstDevice;\n    CUarraydstArray; unsignedintdstPitch;//ignoredwhendstisarray\n    unsignedintdstHeight;//ignoredwhendstisarray;maybe0ifDepth==1\n    unsignedintWidthInBytes; unsignedintHeight; unsignedintDepth;\n    }CUDA_MEMCPY3D; where: ::srcMemoryType and dstMemoryType specify the\n    type of memory of the source and destination, respectively;\n    CUmemorytype_enum is defined as:\n\n    typedefenumCUmemorytype_enum{ CU_MEMORYTYPE_HOST=0x01,\n    CU_MEMORYTYPE_DEVICE=0x02, CU_MEMORYTYPE_ARRAY=0x03,\n    CU_MEMORYTYPE_UNIFIED=0x04 }CUmemorytype;\n\n    If srcMemoryType is CU_MEMORYTYPE_UNIFIED, srcDevice and srcPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. srcArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If srcMemoryType is CU_MEMORYTYPE_HOST, srcHost, srcPitch and srcHeight\n    specify the (host) base address of the source data, the bytes per row,\n    and the height of each 2D slice of the 3D array. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_DEVICE, srcDevice, srcPitch and\n    srcHeight specify the (device) base address of the source data, the\n    bytes per row, and the height of each 2D slice of the 3D array.\n    srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYP""E_ARRAY, srcArray specifies the handle\n    of the source data. srcHost, srcDevice, srcPitch and srcHeight are\n    ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_UNIFIED, dstDevice and dstPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. dstArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If dstMemoryType is CU_MEMORYTYPE_HOST, dstHost and dstPitch specify\n    the (host) base address of the destination data, the bytes per row, and\n    the height of each 2D slice of the 3D array. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_DEVICE, dstDevice and dstPitch\n    specify the (device) base address of the destination data, the bytes\n    per row, and the height of each 2D slice of the 3D array. dstArray is\n    ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_ARRAY, dstArray specifies the handle\n    of the destination data. dstHost, dstDevice, dstPitch and dstHeight are\n    ignored.\n\n    For host pointers, the starting address is void*Start=(void*)((char*)sr\n    cHost+(srcZ*srcHeight+srcY)*srcPitch+srcXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrStart=srcDevice+(srcZ*srcHeight+srcY)*srcPitch+srcXInBytes;\n\n    For CUDA arrays, srcXInBytes must be evenly divisible by the array\n    element size.\n\n    For host pointers, the base address is void*dstStart=(void*)((char*)dst\n    Host+(dstZ*dstHeight+dstY)*dstPitch+dstXInBytes);\n\n    For device pointers, the starting address is CUdeviceptrdstStart=dstDev\n    ice+(dstZ*dstHeight+dstY)*dstPitch+dstXInBytes;\n\n    For CUDA arrays, dstXInBytes must be evenly divisible by the array\n    element size.\n\n    cuMemcpy3D() returns an error if any pitch is greater than the maximum\n    allowed (CU_DEVICE_ATTRIBUTE_MAX_PITCH).\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY3D\n        Parameters for the memory cop""y\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMemcpy3D\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_189cuMemcpy3D = {"cuMemcpy3D", (PyCFunction)__pyx_pw_4cuda_4cuda_189cuMemcpy3D, METH_O, __pyx_doc_4cuda_4cuda_188cuMemcpy3D};
static PyObject *__pyx_pw_4cuda_4cuda_189cuMemcpy3D(PyObject *__pyx_self, PyObject *__pyx_v_pCopy) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy3D (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D, 1, "pCopy", 0))) __PYX_ERR(0, 13324, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_188cuMemcpy3D(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *)__pyx_v_pCopy));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_188cuMemcpy3D(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_pCopy) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__608)
  __Pyx_RefNannySetupContext("cuMemcpy3D", 0);
  __Pyx_TraceCall("cuMemcpy3D", __pyx_f[0], 13324, 0, __PYX_ERR(0, 13324, __pyx_L1_error));

  /* "cuda/cuda.pyx":13464
 *     cudaMemcpy3D
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy3D(cpCopy_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13464, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 13464, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":13465
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3D(cpCopy_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy3D(__pyx_v_cpCopy_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13465, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":13466
 *     cdef ccuda.CUDA_MEMCPY3D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3D(cpCopy_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13324
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3D(pCopy : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13469
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeer(pCopy : CUDA_MEMCPY3D_PEER):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_191cuMemcpy3DPeer(PyObject *__pyx_self, PyObject *__pyx_v_pCopy); /*proto*/
static char __pyx_doc_4cuda_4cuda_190cuMemcpy3DPeer[] = "cuMemcpy3DPeer(CUDA_MEMCPY3D_PEER pCopy: CUDA_MEMCPY3D_PEER)\n Copies memory between contexts.\n\n    Perform a 3D memory copy according to the parameters specified in\n    `pCopy`. See the definition of the CUDA_MEMCPY3D_PEER structure for\n    documentation of its parameters.\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY3D_PEER\n        Parameters for the memory copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpyDtoD\n    cuMemcpyPeer\n    cuMemcpyDtoDAsync\n    cuMemcpyPeerAsync\n    cuMemcpy3DPeerAsync\n    cudaMemcpy3DPeer\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_191cuMemcpy3DPeer = {"cuMemcpy3DPeer", (PyCFunction)__pyx_pw_4cuda_4cuda_191cuMemcpy3DPeer, METH_O, __pyx_doc_4cuda_4cuda_190cuMemcpy3DPeer};
static PyObject *__pyx_pw_4cuda_4cuda_191cuMemcpy3DPeer(PyObject *__pyx_self, PyObject *__pyx_v_pCopy) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy3DPeer (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER, 1, "pCopy", 0))) __PYX_ERR(0, 13469, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_190cuMemcpy3DPeer(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *)__pyx_v_pCopy));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_190cuMemcpy3DPeer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *__pyx_v_pCopy) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__609)
  __Pyx_RefNannySetupContext("cuMemcpy3DPeer", 0);
  __Pyx_TraceCall("cuMemcpy3DPeer", __pyx_f[0], 13469, 0, __PYX_ERR(0, 13469, __pyx_L1_error));

  /* "cuda/cuda.pyx":13501
 *     cudaMemcpy3DPeer
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D_PEER* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy3DPeer(cpCopy_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13501, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 13501, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":13502
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D_PEER* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3DPeer(cpCopy_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy3DPeer(__pyx_v_cpCopy_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13502, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":13503
 *     cdef ccuda.CUDA_MEMCPY3D_PEER* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3DPeer(cpCopy_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13469
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeer(pCopy : CUDA_MEMCPY3D_PEER):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy3DPeer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13506
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAsync(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory asynchronously.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_193cuMemcpyAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_192cuMemcpyAsync[] = "cuMemcpyAsync(CUdeviceptr dst: CUdeviceptr, CUdeviceptr src: CUdeviceptr, size_t ByteCount, CUstream hStream: CUstream)\n Copies memory asynchronously.\n\n    Copies data between two pointers. `dst` and `src` are base pointers of\n    the destination and source, respectively. `ByteCount` specifies the\n    number of bytes to copy. Note that this function infers the type of the\n    transfer (host to host, host to device, device to device, or device to\n    host) from the pointer values. This function is only allowed in\n    contexts which support unified addressing.\n\n    Parameters\n    ----------\n    dst : CUdeviceptr\n        Destination unified virtual address space pointer\n    src : CUdeviceptr\n        Source unified virtual address space pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemse""tD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpyAsync\n    cudaMemcpyToSymbolAsync\n    cudaMemcpyFromSymbolAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_193cuMemcpyAsync = {"cuMemcpyAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_193cuMemcpyAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_192cuMemcpyAsync};
static PyObject *__pyx_pw_4cuda_4cuda_193cuMemcpyAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_src = 0;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dst_2,&__pyx_n_s_src,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dst_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_src)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAsync", 1, 4, 4, 1); __PYX_ERR(0, 13506, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAsync", 1, 4, 4, 2); __PYX_ERR(0, 13506, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAsync", 1, 4, 4, 3); __PYX_ERR(0, 13506, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyAsync") < 0)) __PYX_ERR(0, 13506, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dst = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_src = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13506, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13506, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dst", 0))) __PYX_ERR(0, 13506, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "src", 0))) __PYX_ERR(0, 13506, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13506, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_192cuMemcpyAsync(__pyx_self, __pyx_v_dst, __pyx_v_src, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_192cuMemcpyAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_src, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__610)
  __Pyx_RefNannySetupContext("cuMemcpyAsync", 0);
  __Pyx_TraceCall("cuMemcpyAsync", __pyx_f[0], 13506, 0, __PYX_ERR(0, 13506, __pyx_L1_error));

  /* "cuda/cuda.pyx":13588
 *     cudaMemcpyFromSymbolAsync
 *     """
 *     err = ccuda.cuMemcpyAsync(dst._ptr[0], src._ptr[0], ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyAsync((__pyx_v_dst->_ptr[0]), (__pyx_v_src->_ptr[0]), __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13588, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":13589
 *     """
 *     err = ccuda.cuMemcpyAsync(dst._ptr[0], src._ptr[0], ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13506
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAsync(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory asynchronously.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13592
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeerAsync(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts asynchronously.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_195cuMemcpyPeerAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_194cuMemcpyPeerAsync[] = "cuMemcpyPeerAsync(CUdeviceptr dstDevice: CUdeviceptr, CUcontext dstContext: CUcontext, CUdeviceptr srcDevice: CUdeviceptr, CUcontext srcContext: CUcontext, size_t ByteCount, CUstream hStream: CUstream)\n Copies device memory between two contexts asynchronously.\n\n    Copies from device memory in one context to device memory in another\n    context. `dstDevice` is the base device pointer of the destination\n    memory and `dstContext` is the destination context. `srcDevice` is the\n    base device pointer of the source memory and `srcContext` is the source\n    pointer. `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstContext : CUcontext\n        Destination context\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcContext : CUcontext\n        Source context\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpyDtoD\n    cuMemcpyPeer\n    cuMemcpy3DPeer\n    cuMemcpyDtoDAsync\n    cuMemcpy3DPeerAsync\n    cudaMemcpyPeerAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_195cuMemcpyPeerAsync = {"cuMemcpyPeerAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_195cuMemcpyPeerAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_194cuMemcpyPeerAsync};
static PyObject *__pyx_pw_4cuda_4cuda_195cuMemcpyPeerAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext = 0;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyPeerAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstContext_2,&__pyx_n_s_srcDevice_2,&__pyx_n_s_srcContext_2,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstContext_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeerAsync", 1, 6, 6, 1); __PYX_ERR(0, 13592, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeerAsync", 1, 6, 6, 2); __PYX_ERR(0, 13592, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcContext_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeerAsync", 1, 6, 6, 3); __PYX_ERR(0, 13592, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeerAsync", 1, 6, 6, 4); __PYX_ERR(0, 13592, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyPeerAsync", 1, 6, 6, 5); __PYX_ERR(0, 13592, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyPeerAsync") < 0)) __PYX_ERR(0, 13592, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[1]);
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
    __pyx_v_srcContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[3]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13592, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[5]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyPeerAsync", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13592, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyPeerAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstContext), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "dstContext", 0))) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcContext), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "srcContext", 0))) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13592, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_194cuMemcpyPeerAsync(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstContext, __pyx_v_srcDevice, __pyx_v_srcContext, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_194cuMemcpyPeerAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_dstContext, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_srcContext, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__611)
  __Pyx_RefNannySetupContext("cuMemcpyPeerAsync", 0);
  __Pyx_TraceCall("cuMemcpyPeerAsync", __pyx_f[0], 13592, 0, __PYX_ERR(0, 13592, __pyx_L1_error));

  /* "cuda/cuda.pyx":13637
 *     cudaMemcpyPeerAsync
 *     """
 *     err = ccuda.cuMemcpyPeerAsync(dstDevice._ptr[0], dstContext._ptr[0], srcDevice._ptr[0], srcContext._ptr[0], ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyPeerAsync((__pyx_v_dstDevice->_ptr[0]), (__pyx_v_dstContext->_ptr[0]), (__pyx_v_srcDevice->_ptr[0]), (__pyx_v_srcContext->_ptr[0]), __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13637, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":13638
 *     """
 *     err = ccuda.cuMemcpyPeerAsync(dstDevice._ptr[0], dstContext._ptr[0], srcDevice._ptr[0], srcContext._ptr[0], ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13592
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeerAsync(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts asynchronously.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyPeerAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13641
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoDAsync(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_197cuMemcpyHtoDAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_196cuMemcpyHtoDAsync[] = "cuMemcpyHtoDAsync(CUdeviceptr dstDevice: CUdeviceptr, srcHost, size_t ByteCount, CUstream hStream: CUstream)\n Copies memory from Host to Device.\n\n    Copies from host memory to device memory. `dstDevice` and `srcHost` are\n    the base addresses of the destination and source, respectively.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    srcHost : Any\n        Source host pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpyAsync\n    cudaMemcpyToSymbolAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_197cuMemcpyHtoDAsync = {"cuMemcpyHtoDAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_197cuMemcpyHtoDAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_196cuMemcpyHtoDAsync};
static PyObject *__pyx_pw_4cuda_4cuda_197cuMemcpyHtoDAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  PyObject *__pyx_v_srcHost = 0;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyHtoDAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_srcHost_2,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcHost_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoDAsync", 1, 4, 4, 1); __PYX_ERR(0, 13641, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoDAsync", 1, 4, 4, 2); __PYX_ERR(0, 13641, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoDAsync", 1, 4, 4, 3); __PYX_ERR(0, 13641, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyHtoDAsync") < 0)) __PYX_ERR(0, 13641, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_srcHost = values[1];
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13641, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoDAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13641, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoDAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 13641, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13641, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_196cuMemcpyHtoDAsync(__pyx_self, __pyx_v_dstDevice, __pyx_v_srcHost, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_196cuMemcpyHtoDAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  PyObject *__pyx_v_csrcHost = NULL;
  void *__pyx_v_csrcHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__612)
  __Pyx_RefNannySetupContext("cuMemcpyHtoDAsync", 0);
  __Pyx_TraceCall("cuMemcpyHtoDAsync", __pyx_f[0], 13641, 0, __PYX_ERR(0, 13641, __pyx_L1_error));

  /* "cuda/cuda.pyx":13719
 *     cudaMemcpyToSymbolAsync
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoDAsync(dstDevice._ptr[0], csrcHost_ptr, ByteCount, hStream._ptr[0])
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":13720
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyHtoDAsync(dstDevice._ptr[0], csrcHost_ptr, ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 13720, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_csrcHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":13721
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoDAsync(dstDevice._ptr[0], csrcHost_ptr, ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyHtoDAsync((__pyx_v_dstDevice->_ptr[0]), __pyx_v_csrcHost_ptr, __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13721, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":13722
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoDAsync(dstDevice._ptr[0], csrcHost_ptr, ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13641
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoDAsync(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoDAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_csrcHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoHAsync(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_199cuMemcpyDtoHAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_198cuMemcpyDtoHAsync[] = "cuMemcpyDtoHAsync(dstHost, CUdeviceptr srcDevice: CUdeviceptr, size_t ByteCount, CUstream hStream: CUstream)\n Copies memory from Device to Host.\n\n    Copies from device to host memory. `dstHost` and `srcDevice` specify\n    the base pointers of the destination and source, respectively.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstHost : Any\n        Destination host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpyAsync\n    cudaMemcpyFromSymbolAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_199cuMemcpyDtoHAsync = {"cuMemcpyDtoHAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_199cuMemcpyDtoHAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_198cuMemcpyDtoHAsync};
static PyObject *__pyx_pw_4cuda_4cuda_199cuMemcpyDtoHAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_dstHost = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyDtoHAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstHost_2,&__pyx_n_s_srcDevice_2,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstHost_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoHAsync", 1, 4, 4, 1); __PYX_ERR(0, 13725, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoHAsync", 1, 4, 4, 2); __PYX_ERR(0, 13725, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoHAsync", 1, 4, 4, 3); __PYX_ERR(0, 13725, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyDtoHAsync") < 0)) __PYX_ERR(0, 13725, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstHost = values[0];
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13725, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoHAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13725, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoHAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 13725, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13725, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_198cuMemcpyDtoHAsync(__pyx_self, __pyx_v_dstHost, __pyx_v_srcDevice, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_198cuMemcpyDtoHAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  PyObject *__pyx_v_cdstHost = NULL;
  void *__pyx_v_cdstHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__613)
  __Pyx_RefNannySetupContext("cuMemcpyDtoHAsync", 0);
  __Pyx_TraceCall("cuMemcpyDtoHAsync", __pyx_f[0], 13725, 0, __PYX_ERR(0, 13725, __pyx_L1_error));

  /* "cuda/cuda.pyx":13803
 *     cudaMemcpyFromSymbolAsync
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyDtoHAsync(cdstHost_ptr, srcDevice._ptr[0], ByteCount, hStream._ptr[0])
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":13804
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyDtoHAsync(cdstHost_ptr, srcDevice._ptr[0], ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 13804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cdstHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":13805
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyDtoHAsync(cdstHost_ptr, srcDevice._ptr[0], ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyDtoHAsync(__pyx_v_cdstHost_ptr, (__pyx_v_srcDevice->_ptr[0]), __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13805, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":13806
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyDtoHAsync(cdstHost_ptr, srcDevice._ptr[0], ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoHAsync(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoHAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cdstHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13809
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoDAsync(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_201cuMemcpyDtoDAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_200cuMemcpyDtoDAsync[] = "cuMemcpyDtoDAsync(CUdeviceptr dstDevice: CUdeviceptr, CUdeviceptr srcDevice: CUdeviceptr, size_t ByteCount, CUstream hStream: CUstream)\n Copies memory from Device to Device.\n\n    Copies from device memory to device memory. `dstDevice` and `srcDevice`\n    are the base pointers of the destination and source, respectively.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpyAsync\n    cudaMemcpyToSymbolAsync\n    cudaMemcpyFromSymbolAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_201cuMemcpyDtoDAsync = {"cuMemcpyDtoDAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_201cuMemcpyDtoDAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_200cuMemcpyDtoDAsync};
static PyObject *__pyx_pw_4cuda_4cuda_201cuMemcpyDtoDAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice = 0;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyDtoDAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_srcDevice_2,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoDAsync", 1, 4, 4, 1); __PYX_ERR(0, 13809, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoDAsync", 1, 4, 4, 2); __PYX_ERR(0, 13809, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoDAsync", 1, 4, 4, 3); __PYX_ERR(0, 13809, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyDtoDAsync") < 0)) __PYX_ERR(0, 13809, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13809, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyDtoDAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13809, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoDAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 13809, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "srcDevice", 0))) __PYX_ERR(0, 13809, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13809, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_200cuMemcpyDtoDAsync(__pyx_self, __pyx_v_dstDevice, __pyx_v_srcDevice, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_200cuMemcpyDtoDAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_srcDevice, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__614)
  __Pyx_RefNannySetupContext("cuMemcpyDtoDAsync", 0);
  __Pyx_TraceCall("cuMemcpyDtoDAsync", __pyx_f[0], 13809, 0, __PYX_ERR(0, 13809, __pyx_L1_error));

  /* "cuda/cuda.pyx":13888
 *     cudaMemcpyFromSymbolAsync
 *     """
 *     err = ccuda.cuMemcpyDtoDAsync(dstDevice._ptr[0], srcDevice._ptr[0], ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemcpyDtoDAsync((__pyx_v_dstDevice->_ptr[0]), (__pyx_v_srcDevice->_ptr[0]), __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13888, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":13889
 *     """
 *     err = ccuda.cuMemcpyDtoDAsync(dstDevice._ptr[0], srcDevice._ptr[0], ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13809
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoDAsync(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyDtoDAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13892
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoAAsync(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_203cuMemcpyHtoAAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_202cuMemcpyHtoAAsync[] = "cuMemcpyHtoAAsync(CUarray dstArray: CUarray, size_t dstOffset, srcHost, size_t ByteCount, CUstream hStream: CUstream)\n Copies memory from Host to Array.\n\n    Copies from host memory to a 1D CUDA array. `dstArray` and `dstOffset`\n    specify the CUDA array handle and starting offset in bytes of the\n    destination data. `srcHost` specifies the base address of the source.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstArray : CUarray\n        Destination array\n    dstOffset : size_t\n        Offset in bytes of destination array\n    srcHost : Any\n        Source host pointer\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpyToArrayAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_203cuMemcpyHtoAAsync = {"cuMemcpyHtoAAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_203cuMemcpyHtoAAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_202cuMemcpyHtoAAsync};
static PyObject *__pyx_pw_4cuda_4cuda_203cuMemcpyHtoAAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray = 0;
  size_t __pyx_v_dstOffset;
  PyObject *__pyx_v_srcHost = 0;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyHtoAAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstArray_2,&__pyx_n_s_dstOffset,&__pyx_n_s_srcHost_2,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoAAsync", 1, 5, 5, 1); __PYX_ERR(0, 13892, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcHost_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoAAsync", 1, 5, 5, 2); __PYX_ERR(0, 13892, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoAAsync", 1, 5, 5, 3); __PYX_ERR(0, 13892, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoAAsync", 1, 5, 5, 4); __PYX_ERR(0, 13892, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyHtoAAsync") < 0)) __PYX_ERR(0, 13892, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[0]);
    __pyx_v_dstOffset = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13892, __pyx_L3_error)
    __pyx_v_srcHost = values[2];
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13892, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[4]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyHtoAAsync", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13892, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoAAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "dstArray", 0))) __PYX_ERR(0, 13892, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13892, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_202cuMemcpyHtoAAsync(__pyx_self, __pyx_v_dstArray, __pyx_v_dstOffset, __pyx_v_srcHost, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_202cuMemcpyHtoAAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_dstArray, size_t __pyx_v_dstOffset, PyObject *__pyx_v_srcHost, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  PyObject *__pyx_v_csrcHost = NULL;
  void *__pyx_v_csrcHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__615)
  __Pyx_RefNannySetupContext("cuMemcpyHtoAAsync", 0);
  __Pyx_TraceCall("cuMemcpyHtoAAsync", __pyx_f[0], 13892, 0, __PYX_ERR(0, 13892, __pyx_L1_error));

  /* "cuda/cuda.pyx":13972
 *     cudaMemcpyToArrayAsync
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)             # <<<<<<<<<<<<<<
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoAAsync(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount, hStream._ptr[0])
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_srcHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_csrcHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":13973
 *     """
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyHtoAAsync(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_csrcHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 13973, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_csrcHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":13974
 *     csrcHost = utils.HelperInputVoidPtr(srcHost)
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoAAsync(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyHtoAAsync((__pyx_v_dstArray->_ptr[0]), __pyx_v_dstOffset, __pyx_v_csrcHost_ptr, __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 13974, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":13975
 *     cdef void* csrcHost_ptr = <void*><void_ptr>csrcHost.cptr
 *     err = ccuda.cuMemcpyHtoAAsync(dstArray._ptr[0], dstOffset, csrcHost_ptr, ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13892
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoAAsync(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyHtoAAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_csrcHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":13978
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoHAsync(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_205cuMemcpyAtoHAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_204cuMemcpyAtoHAsync[] = "cuMemcpyAtoHAsync(dstHost, CUarray srcArray: CUarray, size_t srcOffset, size_t ByteCount, CUstream hStream: CUstream)\n Copies memory from Array to Host.\n\n    Copies from one 1D CUDA array to host memory. `dstHost` specifies the\n    base pointer of the destination. `srcArray` and `srcOffset` specify the\n    CUDA array handle and starting offset in bytes of the source data.\n    `ByteCount` specifies the number of bytes to copy.\n\n    Parameters\n    ----------\n    dstHost : Any\n        Destination pointer\n    srcArray : CUarray\n        Source array\n    srcOffset : size_t\n        Offset in bytes of source array\n    ByteCount : size_t\n        Size of memory copy in bytes\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpyFromArrayAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_205cuMemcpyAtoHAsync = {"cuMemcpyAtoHAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_205cuMemcpyAtoHAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_204cuMemcpyAtoHAsync};
static PyObject *__pyx_pw_4cuda_4cuda_205cuMemcpyAtoHAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_dstHost = 0;
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray = 0;
  size_t __pyx_v_srcOffset;
  size_t __pyx_v_ByteCount;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpyAtoHAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstHost_2,&__pyx_n_s_srcArray_2,&__pyx_n_s_srcOffset,&__pyx_n_s_ByteCount,&__pyx_n_s_hStream_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstHost_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoHAsync", 1, 5, 5, 1); __PYX_ERR(0, 13978, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcOffset)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoHAsync", 1, 5, 5, 2); __PYX_ERR(0, 13978, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ByteCount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoHAsync", 1, 5, 5, 3); __PYX_ERR(0, 13978, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoHAsync", 1, 5, 5, 4); __PYX_ERR(0, 13978, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpyAtoHAsync") < 0)) __PYX_ERR(0, 13978, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstHost = values[0];
    __pyx_v_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[1]);
    __pyx_v_srcOffset = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_srcOffset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13978, __pyx_L3_error)
    __pyx_v_ByteCount = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_ByteCount == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13978, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[4]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpyAtoHAsync", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13978, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoHAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "srcArray", 0))) __PYX_ERR(0, 13978, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 13978, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_204cuMemcpyAtoHAsync(__pyx_self, __pyx_v_dstHost, __pyx_v_srcArray, __pyx_v_srcOffset, __pyx_v_ByteCount, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_204cuMemcpyAtoHAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dstHost, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_srcArray, size_t __pyx_v_srcOffset, size_t __pyx_v_ByteCount, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  PyObject *__pyx_v_cdstHost = NULL;
  void *__pyx_v_cdstHost_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__616)
  __Pyx_RefNannySetupContext("cuMemcpyAtoHAsync", 0);
  __Pyx_TraceCall("cuMemcpyAtoHAsync", __pyx_f[0], 13978, 0, __PYX_ERR(0, 13978, __pyx_L1_error));

  /* "cuda/cuda.pyx":14058
 *     cudaMemcpyFromArrayAsync
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)             # <<<<<<<<<<<<<<
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyAtoHAsync(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount, hStream._ptr[0])
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_dstHost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cdstHost = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":14059
 *     """
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpyAtoHAsync(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdstHost, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 14059, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cdstHost_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":14060
 *     cdstHost = utils.HelperInputVoidPtr(dstHost)
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyAtoHAsync(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemcpyAtoHAsync(__pyx_v_cdstHost_ptr, (__pyx_v_srcArray->_ptr[0]), __pyx_v_srcOffset, __pyx_v_ByteCount, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14060, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":14061
 *     cdef void* cdstHost_ptr = <void*><void_ptr>cdstHost.cptr
 *     err = ccuda.cuMemcpyAtoHAsync(cdstHost_ptr, srcArray._ptr[0], srcOffset, ByteCount, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":13978
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoHAsync(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpyAtoHAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cdstHost);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14064
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DAsync(pCopy : CUDA_MEMCPY2D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_207cuMemcpy2DAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_206cuMemcpy2DAsync[] = "cuMemcpy2DAsync(CUDA_MEMCPY2D pCopy: CUDA_MEMCPY2D, CUstream hStream: CUstream)\n Copies memory for 2D arrays.\n\n    Perform a 2D memory copy according to the parameters specified in\n    `pCopy`. The CUDA_MEMCPY2D structure is defined as:\n\n    typedefstructCUDA_MEMCPY2D_st{ unsignedintsrcXInBytes,srcY;\n    CUmemorytypesrcMemoryType; constvoid*srcHost; CUdeviceptrsrcDevice;\n    CUarraysrcArray; unsignedintsrcPitch; unsignedintdstXInBytes,dstY;\n    CUmemorytypedstMemoryType; void*dstHost; CUdeviceptrdstDevice;\n    CUarraydstArray; unsignedintdstPitch; unsignedintWidthInBytes;\n    unsignedintHeight; }CUDA_MEMCPY2D; where: ::srcMemoryType and\n    dstMemoryType specify the type of memory of the source and destination,\n    respectively; CUmemorytype_enum is defined as:\n\n    typedefenumCUmemorytype_enum{ CU_MEMORYTYPE_HOST=0x01,\n    CU_MEMORYTYPE_DEVICE=0x02, CU_MEMORYTYPE_ARRAY=0x03,\n    CU_MEMORYTYPE_UNIFIED=0x04 }CUmemorytype;\n\n    If srcMemoryType is CU_MEMORYTYPE_HOST, srcHost and srcPitch specify\n    the (host) base address of the source data and the bytes per row to\n    apply. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_UNIFIED, srcDevice and srcPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. srcArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If srcMemoryType is CU_MEMORYTYPE_DEVICE, srcDevice and srcPitch\n    specify the (device) base address of the source data and the bytes per\n    row to apply. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_ARRAY, srcArray specifies the handle\n    of the source data. srcHost, srcDevice and srcPitch are ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_UNIFIED, dstDevice and dstPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. dstArray is ignored. This valu""e\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If dstMemoryType is CU_MEMORYTYPE_HOST, dstHost and dstPitch specify\n    the (host) base address of the destination data and the bytes per row\n    to apply. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_DEVICE, dstDevice and dstPitch\n    specify the (device) base address of the destination data and the bytes\n    per row to apply. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_ARRAY, dstArray specifies the handle\n    of the destination data. dstHost, dstDevice and dstPitch are ignored.\n\n    For host pointers, the starting address is\n    void*Start=(void*)((char*)srcHost+srcY*srcPitch+srcXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrStart=srcDevice+srcY*srcPitch+srcXInBytes;\n\n    For CUDA arrays, srcXInBytes must be evenly divisible by the array\n    element size.\n\n    For host pointers, the base address is\n    void*dstStart=(void*)((char*)dstHost+dstY*dstPitch+dstXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrdstStart=dstDevice+dstY*dstPitch+dstXInBytes;\n\n    For CUDA arrays, dstXInBytes must be evenly divisible by the array\n    element size.\n\n    cuMemcpy2DAsync() returns an error if any pitch is greater than the\n    maximum allowed (CU_DEVICE_ATTRIBUTE_MAX_PITCH). cuMemAllocPitch()\n    passes back pitches that always work with cuMemcpy2D(). On intra-device\n    memory copies (device to device, CUDA array to device, CUDA array to\n    CUDA array), cuMemcpy2DAsync() may fail for pitches not computed by\n    cuMemAllocPitch().\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY2D\n        Parameters for the memory copy\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERRO""R_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpy2DAsync\n    cudaMemcpy2DToArrayAsync\n    cudaMemcpy2DFromArrayAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_207cuMemcpy2DAsync = {"cuMemcpy2DAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_207cuMemcpy2DAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_206cuMemcpy2DAsync};
static PyObject *__pyx_pw_4cuda_4cuda_207cuMemcpy2DAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy2DAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pCopy,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pCopy)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpy2DAsync", 1, 2, 2, 1); __PYX_ERR(0, 14064, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpy2DAsync") < 0)) __PYX_ERR(0, 14064, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pCopy = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpy2DAsync", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14064, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy2DAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D, 1, "pCopy", 0))) __PYX_ERR(0, 14064, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 14064, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_206cuMemcpy2DAsync(__pyx_self, __pyx_v_pCopy, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_206cuMemcpy2DAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D *__pyx_v_pCopy, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__617)
  __Pyx_RefNannySetupContext("cuMemcpy2DAsync", 0);
  __Pyx_TraceCall("cuMemcpy2DAsync", __pyx_f[0], 14064, 0, __PYX_ERR(0, 14064, __pyx_L1_error));

  /* "cuda/cuda.pyx":14210
 *     cudaMemcpy2DFromArrayAsync
 *     """
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy2DAsync(cpCopy_ptr, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14210, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 14210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":14211
 *     """
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy2DAsync(cpCopy_ptr, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy2DAsync(__pyx_v_cpCopy_ptr, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14211, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":14212
 *     cdef ccuda.CUDA_MEMCPY2D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy2DAsync(cpCopy_ptr, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 14212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14064
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DAsync(pCopy : CUDA_MEMCPY2D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy2DAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14215
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DAsync(pCopy : CUDA_MEMCPY3D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_209cuMemcpy3DAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_208cuMemcpy3DAsync[] = "cuMemcpy3DAsync(CUDA_MEMCPY3D pCopy: CUDA_MEMCPY3D, CUstream hStream: CUstream)\n Copies memory for 3D arrays.\n\n    Perform a 3D memory copy according to the parameters specified in\n    `pCopy`. The CUDA_MEMCPY3D structure is defined as:\n\n    typedefstructCUDA_MEMCPY3D_st{  unsignedintsrcXInBytes,srcY,srcZ;\n    unsignedintsrcLOD; CUmemorytypesrcMemoryType; constvoid*srcHost;\n    CUdeviceptrsrcDevice; CUarraysrcArray;\n    unsignedintsrcPitch;//ignoredwhensrcisarray\n    unsignedintsrcHeight;//ignoredwhensrcisarray;maybe0ifDepth==1\n    unsignedintdstXInBytes,dstY,dstZ; unsignedintdstLOD;\n    CUmemorytypedstMemoryType; void*dstHost; CUdeviceptrdstDevice;\n    CUarraydstArray; unsignedintdstPitch;//ignoredwhendstisarray\n    unsignedintdstHeight;//ignoredwhendstisarray;maybe0ifDepth==1\n    unsignedintWidthInBytes; unsignedintHeight; unsignedintDepth;\n    }CUDA_MEMCPY3D; where: ::srcMemoryType and dstMemoryType specify the\n    type of memory of the source and destination, respectively;\n    CUmemorytype_enum is defined as:\n\n    typedefenumCUmemorytype_enum{ CU_MEMORYTYPE_HOST=0x01,\n    CU_MEMORYTYPE_DEVICE=0x02, CU_MEMORYTYPE_ARRAY=0x03,\n    CU_MEMORYTYPE_UNIFIED=0x04 }CUmemorytype;\n\n    If srcMemoryType is CU_MEMORYTYPE_UNIFIED, srcDevice and srcPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. srcArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If srcMemoryType is CU_MEMORYTYPE_HOST, srcHost, srcPitch and srcHeight\n    specify the (host) base address of the source data, the bytes per row,\n    and the height of each 2D slice of the 3D array. srcArray is ignored.\n\n    If srcMemoryType is CU_MEMORYTYPE_DEVICE, srcDevice, srcPitch and\n    srcHeight specify the (device) base address of the source data, the\n    bytes per row, and the height of each 2D slice of the 3D array.\n    srcArray is ignored.\n\n   "" If srcMemoryType is CU_MEMORYTYPE_ARRAY, srcArray specifies the handle\n    of the source data. srcHost, srcDevice, srcPitch and srcHeight are\n    ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_UNIFIED, dstDevice and dstPitch\n    specify the (unified virtual address space) base address of the source\n    data and the bytes per row to apply. dstArray is ignored. This value\n    may be used only if unified addressing is supported in the calling\n    context.\n\n    If dstMemoryType is CU_MEMORYTYPE_HOST, dstHost and dstPitch specify\n    the (host) base address of the destination data, the bytes per row, and\n    the height of each 2D slice of the 3D array. dstArray is ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_DEVICE, dstDevice and dstPitch\n    specify the (device) base address of the destination data, the bytes\n    per row, and the height of each 2D slice of the 3D array. dstArray is\n    ignored.\n\n    If dstMemoryType is CU_MEMORYTYPE_ARRAY, dstArray specifies the handle\n    of the destination data. dstHost, dstDevice, dstPitch and dstHeight are\n    ignored.\n\n    For host pointers, the starting address is void*Start=(void*)((char*)sr\n    cHost+(srcZ*srcHeight+srcY)*srcPitch+srcXInBytes);\n\n    For device pointers, the starting address is\n    CUdeviceptrStart=srcDevice+(srcZ*srcHeight+srcY)*srcPitch+srcXInBytes;\n\n    For CUDA arrays, srcXInBytes must be evenly divisible by the array\n    element size.\n\n    For host pointers, the base address is void*dstStart=(void*)((char*)dst\n    Host+(dstZ*dstHeight+dstY)*dstPitch+dstXInBytes);\n\n    For device pointers, the starting address is CUdeviceptrdstStart=dstDev\n    ice+(dstZ*dstHeight+dstY)*dstPitch+dstXInBytes;\n\n    For CUDA arrays, dstXInBytes must be evenly divisible by the array\n    element size.\n\n    cuMemcpy3DAsync() returns an error if any pitch is greater than the\n    maximum allowed (CU_DEVICE_ATTRIBUTE_MAX_PITCH).\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY3D""\n        Parameters for the memory copy\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemcpy3DAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_209cuMemcpy3DAsync = {"cuMemcpy3DAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_209cuMemcpy3DAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_208cuMemcpy3DAsync};
static PyObject *__pyx_pw_4cuda_4cuda_209cuMemcpy3DAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_pCopy = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy3DAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pCopy,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pCopy)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpy3DAsync", 1, 2, 2, 1); __PYX_ERR(0, 14215, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpy3DAsync") < 0)) __PYX_ERR(0, 14215, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pCopy = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpy3DAsync", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14215, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy3DAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D, 1, "pCopy", 0))) __PYX_ERR(0, 14215, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 14215, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_208cuMemcpy3DAsync(__pyx_self, __pyx_v_pCopy, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_208cuMemcpy3DAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_pCopy, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__618)
  __Pyx_RefNannySetupContext("cuMemcpy3DAsync", 0);
  __Pyx_TraceCall("cuMemcpy3DAsync", __pyx_f[0], 14215, 0, __PYX_ERR(0, 14215, __pyx_L1_error));

  /* "cuda/cuda.pyx":14364
 *     cudaMemcpy3DAsync
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy3DAsync(cpCopy_ptr, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14364, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 14364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":14365
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3DAsync(cpCopy_ptr, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy3DAsync(__pyx_v_cpCopy_ptr, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14365, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":14366
 *     cdef ccuda.CUDA_MEMCPY3D* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3DAsync(cpCopy_ptr, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 14366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14215
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DAsync(pCopy : CUDA_MEMCPY3D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy3DAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14369
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeerAsync(pCopy : CUDA_MEMCPY3D_PEER, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts asynchronously.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_211cuMemcpy3DPeerAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_210cuMemcpy3DPeerAsync[] = "cuMemcpy3DPeerAsync(CUDA_MEMCPY3D_PEER pCopy: CUDA_MEMCPY3D_PEER, CUstream hStream: CUstream)\n Copies memory between contexts asynchronously.\n\n    Perform a 3D memory copy according to the parameters specified in\n    `pCopy`. See the definition of the CUDA_MEMCPY3D_PEER structure for\n    documentation of its parameters.\n\n    Parameters\n    ----------\n    pCopy : CUDA_MEMCPY3D_PEER\n        Parameters for the memory copy\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpyDtoD\n    cuMemcpyPeer\n    cuMemcpyDtoDAsync\n    cuMemcpyPeerAsync\n    cuMemcpy3DPeerAsync\n    cudaMemcpy3DPeerAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_211cuMemcpy3DPeerAsync = {"cuMemcpy3DPeerAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_211cuMemcpy3DPeerAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_210cuMemcpy3DPeerAsync};
static PyObject *__pyx_pw_4cuda_4cuda_211cuMemcpy3DPeerAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *__pyx_v_pCopy = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemcpy3DPeerAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pCopy,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pCopy)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemcpy3DPeerAsync", 1, 2, 2, 1); __PYX_ERR(0, 14369, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemcpy3DPeerAsync") < 0)) __PYX_ERR(0, 14369, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pCopy = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemcpy3DPeerAsync", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14369, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy3DPeerAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pCopy), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER, 1, "pCopy", 0))) __PYX_ERR(0, 14369, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 14369, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_210cuMemcpy3DPeerAsync(__pyx_self, __pyx_v_pCopy, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_210cuMemcpy3DPeerAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER *__pyx_v_pCopy, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER *__pyx_v_cpCopy_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__619)
  __Pyx_RefNannySetupContext("cuMemcpy3DPeerAsync", 0);
  __Pyx_TraceCall("cuMemcpy3DPeerAsync", __pyx_f[0], 14369, 0, __PYX_ERR(0, 14369, __pyx_L1_error));

  /* "cuda/cuda.pyx":14403
 *     cudaMemcpy3DPeerAsync
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D_PEER* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemcpy3DPeerAsync(cpCopy_ptr, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pCopy), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14403, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 14403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pCopy->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpCopy_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":14404
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D_PEER* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3DPeerAsync(cpCopy_ptr, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemcpy3DPeerAsync(__pyx_v_cpCopy_ptr, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14404, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":14405
 *     cdef ccuda.CUDA_MEMCPY3D_PEER* cpCopy_ptr = pCopy._ptr if pCopy != None else NULL
 *     err = ccuda.cuMemcpy3DPeerAsync(cpCopy_ptr, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 14405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 14405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14369
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeerAsync(pCopy : CUDA_MEMCPY3D_PEER, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts asynchronously.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemcpy3DPeerAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14408
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_213cuMemsetD8(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_212cuMemsetD8[] = "cuMemsetD8(CUdeviceptr dstDevice: CUdeviceptr, unsigned char uc, size_t N)\n Initializes device memory.\n\n    Sets the memory range of `N` 8-bit values to the specified value `uc`.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    uc : unsigned char\n        Value to set\n    N : size_t\n        Number of elements\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemset\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_213cuMemsetD8 = {"cuMemsetD8", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_213cuMemsetD8, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_212cuMemsetD8};
static PyObject *__pyx_pw_4cuda_4cuda_213cuMemsetD8(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  unsigned char __pyx_v_uc;
  size_t __pyx_v_N;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD8 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_uc,&__pyx_n_s_N,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD8", 1, 3, 3, 1); __PYX_ERR(0, 14408, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD8", 1, 3, 3, 2); __PYX_ERR(0, 14408, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD8") < 0)) __PYX_ERR(0, 14408, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_uc = __Pyx_PyInt_As_unsigned_char(values[1]); if (unlikely((__pyx_v_uc == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 14408, __pyx_L3_error)
    __pyx_v_N = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_N == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14408, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD8", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14408, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD8", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14408, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_212cuMemsetD8(__pyx_self, __pyx_v_dstDevice, __pyx_v_uc, __pyx_v_N);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_212cuMemsetD8(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned char __pyx_v_uc, size_t __pyx_v_N) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__620)
  __Pyx_RefNannySetupContext("cuMemsetD8", 0);
  __Pyx_TraceCall("cuMemsetD8", __pyx_f[0], 14408, 0, __PYX_ERR(0, 14408, __pyx_L1_error));

  /* "cuda/cuda.pyx":14480
 *     cudaMemset
 *     """
 *     err = ccuda.cuMemsetD8(dstDevice._ptr[0], uc, N)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD8((__pyx_v_dstDevice->_ptr[0]), __pyx_v_uc, __pyx_v_N); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14480, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14481
 *     """
 *     err = ccuda.cuMemsetD8(dstDevice._ptr[0], uc, N)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14408
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD8", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14484
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16(dstDevice not None : CUdeviceptr, unsigned short us, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_215cuMemsetD16(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_214cuMemsetD16[] = "cuMemsetD16(CUdeviceptr dstDevice: CUdeviceptr, unsigned short us, size_t N)\n Initializes device memory.\n\n    Sets the memory range of `N` 16-bit values to the specified value `us`.\n    The `dstDevice` pointer must be two byte aligned.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    us : unsigned short\n        Value to set\n    N : size_t\n        Number of elements\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemset\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_215cuMemsetD16 = {"cuMemsetD16", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_215cuMemsetD16, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_214cuMemsetD16};
static PyObject *__pyx_pw_4cuda_4cuda_215cuMemsetD16(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  unsigned short __pyx_v_us;
  size_t __pyx_v_N;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD16 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_us,&__pyx_n_s_N,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD16", 1, 3, 3, 1); __PYX_ERR(0, 14484, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD16", 1, 3, 3, 2); __PYX_ERR(0, 14484, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD16") < 0)) __PYX_ERR(0, 14484, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_us = __Pyx_PyInt_As_unsigned_short(values[1]); if (unlikely((__pyx_v_us == (unsigned short)-1) && PyErr_Occurred())) __PYX_ERR(0, 14484, __pyx_L3_error)
    __pyx_v_N = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_N == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14484, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD16", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14484, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD16", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14484, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_214cuMemsetD16(__pyx_self, __pyx_v_dstDevice, __pyx_v_us, __pyx_v_N);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_214cuMemsetD16(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned short __pyx_v_us, size_t __pyx_v_N) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__621)
  __Pyx_RefNannySetupContext("cuMemsetD16", 0);
  __Pyx_TraceCall("cuMemsetD16", __pyx_f[0], 14484, 0, __PYX_ERR(0, 14484, __pyx_L1_error));

  /* "cuda/cuda.pyx":14557
 *     cudaMemset
 *     """
 *     err = ccuda.cuMemsetD16(dstDevice._ptr[0], us, N)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD16((__pyx_v_dstDevice->_ptr[0]), __pyx_v_us, __pyx_v_N); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14557, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14558
 *     """
 *     err = ccuda.cuMemsetD16(dstDevice._ptr[0], us, N)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14484
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16(dstDevice not None : CUdeviceptr, unsigned short us, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD16", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14561
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_217cuMemsetD32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_216cuMemsetD32[] = "cuMemsetD32(CUdeviceptr dstDevice: CUdeviceptr, unsigned int ui, size_t N)\n Initializes device memory.\n\n    Sets the memory range of `N` 32-bit values to the specified value `ui`.\n    The `dstDevice` pointer must be four byte aligned.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    ui : unsigned int\n        Value to set\n    N : size_t\n        Number of elements\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32Async\n    cudaMemset\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_217cuMemsetD32 = {"cuMemsetD32", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_217cuMemsetD32, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_216cuMemsetD32};
static PyObject *__pyx_pw_4cuda_4cuda_217cuMemsetD32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  unsigned int __pyx_v_ui;
  size_t __pyx_v_N;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD32 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_ui,&__pyx_n_s_N,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ui)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD32", 1, 3, 3, 1); __PYX_ERR(0, 14561, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD32", 1, 3, 3, 2); __PYX_ERR(0, 14561, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD32") < 0)) __PYX_ERR(0, 14561, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_ui = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_ui == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 14561, __pyx_L3_error)
    __pyx_v_N = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_N == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14561, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD32", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14561, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14561, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_216cuMemsetD32(__pyx_self, __pyx_v_dstDevice, __pyx_v_ui, __pyx_v_N);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_216cuMemsetD32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned int __pyx_v_ui, size_t __pyx_v_N) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__622)
  __Pyx_RefNannySetupContext("cuMemsetD32", 0);
  __Pyx_TraceCall("cuMemsetD32", __pyx_f[0], 14561, 0, __PYX_ERR(0, 14561, __pyx_L1_error));

  /* "cuda/cuda.pyx":14634
 *     cudaMemset
 *     """
 *     err = ccuda.cuMemsetD32(dstDevice._ptr[0], ui, N)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD32((__pyx_v_dstDevice->_ptr[0]), __pyx_v_ui, __pyx_v_N); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14634, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14635
 *     """
 *     err = ccuda.cuMemsetD32(dstDevice._ptr[0], ui, N)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14561
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14638
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_219cuMemsetD2D8(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_218cuMemsetD2D8[] = "cuMemsetD2D8(CUdeviceptr dstDevice: CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height)\n Initializes device memory.\n\n    Sets the 2D memory range of `Width` 8-bit values to the specified value\n    `uc`. `Height` specifies the number of rows to set, and `dstPitch`\n    specifies the number of bytes between each row. This function performs\n    fastest when the pitch is one that has been passed back by\n    cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstPitch : size_t\n        Pitch of destination device pointer(Unused if `Height` is 1)\n    uc : unsigned char\n        Value to set\n    Width : size_t\n        Width of row\n    Height : size_t\n        Number of rows\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemset2D\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_219cuMemsetD2D8 = {"cuMemsetD2D8", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_219cuMemsetD2D8, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_218cuMemsetD2D8};
static PyObject *__pyx_pw_4cuda_4cuda_219cuMemsetD2D8(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  size_t __pyx_v_dstPitch;
  unsigned char __pyx_v_uc;
  size_t __pyx_v_Width;
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD2D8 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstPitch_2,&__pyx_n_s_uc,&__pyx_n_s_Width_2,&__pyx_n_s_Height_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstPitch_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8", 1, 5, 5, 1); __PYX_ERR(0, 14638, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8", 1, 5, 5, 2); __PYX_ERR(0, 14638, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Width_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8", 1, 5, 5, 3); __PYX_ERR(0, 14638, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8", 1, 5, 5, 4); __PYX_ERR(0, 14638, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD2D8") < 0)) __PYX_ERR(0, 14638, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14638, __pyx_L3_error)
    __pyx_v_uc = __Pyx_PyInt_As_unsigned_char(values[2]); if (unlikely((__pyx_v_uc == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 14638, __pyx_L3_error)
    __pyx_v_Width = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14638, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14638, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14638, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D8", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14638, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_218cuMemsetD2D8(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstPitch, __pyx_v_uc, __pyx_v_Width, __pyx_v_Height);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_218cuMemsetD2D8(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned char __pyx_v_uc, size_t __pyx_v_Width, size_t __pyx_v_Height) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__623)
  __Pyx_RefNannySetupContext("cuMemsetD2D8", 0);
  __Pyx_TraceCall("cuMemsetD2D8", __pyx_f[0], 14638, 0, __PYX_ERR(0, 14638, __pyx_L1_error));

  /* "cuda/cuda.pyx":14718
 *     cudaMemset2D
 *     """
 *     err = ccuda.cuMemsetD2D8(dstDevice._ptr[0], dstPitch, uc, Width, Height)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD2D8((__pyx_v_dstDevice->_ptr[0]), __pyx_v_dstPitch, __pyx_v_uc, __pyx_v_Width, __pyx_v_Height); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14718, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14719
 *     """
 *     err = ccuda.cuMemsetD2D8(dstDevice._ptr[0], dstPitch, uc, Width, Height)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14638
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D8", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14722
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_221cuMemsetD2D16(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_220cuMemsetD2D16[] = "cuMemsetD2D16(CUdeviceptr dstDevice: CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height)\n Initializes device memory.\n\n    Sets the 2D memory range of `Width` 16-bit values to the specified\n    value `us`. `Height` specifies the number of rows to set, and\n    `dstPitch` specifies the number of bytes between each row. The\n    `dstDevice` pointer and `dstPitch` offset must be two byte aligned.\n    This function performs fastest when the pitch is one that has been\n    passed back by cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstPitch : size_t\n        Pitch of destination device pointer(Unused if `Height` is 1)\n    us : unsigned short\n        Value to set\n    Width : size_t\n        Width of row\n    Height : size_t\n        Number of rows\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Asyn""c\n    cudaMemset2D\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_221cuMemsetD2D16 = {"cuMemsetD2D16", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_221cuMemsetD2D16, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_220cuMemsetD2D16};
static PyObject *__pyx_pw_4cuda_4cuda_221cuMemsetD2D16(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  size_t __pyx_v_dstPitch;
  unsigned short __pyx_v_us;
  size_t __pyx_v_Width;
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD2D16 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstPitch_2,&__pyx_n_s_us,&__pyx_n_s_Width_2,&__pyx_n_s_Height_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstPitch_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16", 1, 5, 5, 1); __PYX_ERR(0, 14722, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16", 1, 5, 5, 2); __PYX_ERR(0, 14722, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Width_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16", 1, 5, 5, 3); __PYX_ERR(0, 14722, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16", 1, 5, 5, 4); __PYX_ERR(0, 14722, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD2D16") < 0)) __PYX_ERR(0, 14722, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14722, __pyx_L3_error)
    __pyx_v_us = __Pyx_PyInt_As_unsigned_short(values[2]); if (unlikely((__pyx_v_us == (unsigned short)-1) && PyErr_Occurred())) __PYX_ERR(0, 14722, __pyx_L3_error)
    __pyx_v_Width = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14722, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14722, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14722, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D16", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14722, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_220cuMemsetD2D16(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstPitch, __pyx_v_us, __pyx_v_Width, __pyx_v_Height);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_220cuMemsetD2D16(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned short __pyx_v_us, size_t __pyx_v_Width, size_t __pyx_v_Height) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__624)
  __Pyx_RefNannySetupContext("cuMemsetD2D16", 0);
  __Pyx_TraceCall("cuMemsetD2D16", __pyx_f[0], 14722, 0, __PYX_ERR(0, 14722, __pyx_L1_error));

  /* "cuda/cuda.pyx":14803
 *     cudaMemset2D
 *     """
 *     err = ccuda.cuMemsetD2D16(dstDevice._ptr[0], dstPitch, us, Width, Height)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD2D16((__pyx_v_dstDevice->_ptr[0]), __pyx_v_dstPitch, __pyx_v_us, __pyx_v_Width, __pyx_v_Height); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14803, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14804
 *     """
 *     err = ccuda.cuMemsetD2D16(dstDevice._ptr[0], dstPitch, us, Width, Height)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14722
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D16", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14807
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_223cuMemsetD2D32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_222cuMemsetD2D32[] = "cuMemsetD2D32(CUdeviceptr dstDevice: CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height)\n Initializes device memory.\n\n    Sets the 2D memory range of `Width` 32-bit values to the specified\n    value `ui`. `Height` specifies the number of rows to set, and\n    `dstPitch` specifies the number of bytes between each row. The\n    `dstDevice` pointer and `dstPitch` offset must be four byte aligned.\n    This function performs fastest when the pitch is one that has been\n    passed back by cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstPitch : size_t\n        Pitch of destination device pointer(Unused if `Height` is 1)\n    ui : unsigned int\n        Value to set\n    Width : size_t\n        Width of row\n    Height : size_t\n        Number of rows\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async""\n    cudaMemset2D\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_223cuMemsetD2D32 = {"cuMemsetD2D32", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_223cuMemsetD2D32, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_222cuMemsetD2D32};
static PyObject *__pyx_pw_4cuda_4cuda_223cuMemsetD2D32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  size_t __pyx_v_dstPitch;
  unsigned int __pyx_v_ui;
  size_t __pyx_v_Width;
  size_t __pyx_v_Height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD2D32 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstPitch_2,&__pyx_n_s_ui,&__pyx_n_s_Width_2,&__pyx_n_s_Height_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstPitch_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32", 1, 5, 5, 1); __PYX_ERR(0, 14807, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ui)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32", 1, 5, 5, 2); __PYX_ERR(0, 14807, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Width_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32", 1, 5, 5, 3); __PYX_ERR(0, 14807, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32", 1, 5, 5, 4); __PYX_ERR(0, 14807, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD2D32") < 0)) __PYX_ERR(0, 14807, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14807, __pyx_L3_error)
    __pyx_v_ui = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_ui == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 14807, __pyx_L3_error)
    __pyx_v_Width = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14807, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14807, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14807, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14807, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_222cuMemsetD2D32(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstPitch, __pyx_v_ui, __pyx_v_Width, __pyx_v_Height);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_222cuMemsetD2D32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned int __pyx_v_ui, size_t __pyx_v_Width, size_t __pyx_v_Height) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__625)
  __Pyx_RefNannySetupContext("cuMemsetD2D32", 0);
  __Pyx_TraceCall("cuMemsetD2D32", __pyx_f[0], 14807, 0, __PYX_ERR(0, 14807, __pyx_L1_error));

  /* "cuda/cuda.pyx":14888
 *     cudaMemset2D
 *     """
 *     err = ccuda.cuMemsetD2D32(dstDevice._ptr[0], dstPitch, ui, Width, Height)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD2D32((__pyx_v_dstDevice->_ptr[0]), __pyx_v_dstPitch, __pyx_v_ui, __pyx_v_Width, __pyx_v_Height); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14888, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14889
 *     """
 *     err = ccuda.cuMemsetD2D32(dstDevice._ptr[0], dstPitch, ui, Width, Height)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14807
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14892
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8Async(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_225cuMemsetD8Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_224cuMemsetD8Async[] = "cuMemsetD8Async(CUdeviceptr dstDevice: CUdeviceptr, unsigned char uc, size_t N, CUstream hStream: CUstream)\n Sets device memory.\n\n    Sets the memory range of `N` 8-bit values to the specified value `uc`.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    uc : unsigned char\n        Value to set\n    N : size_t\n        Number of elements\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemsetAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_225cuMemsetD8Async = {"cuMemsetD8Async", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_225cuMemsetD8Async, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_224cuMemsetD8Async};
static PyObject *__pyx_pw_4cuda_4cuda_225cuMemsetD8Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  unsigned char __pyx_v_uc;
  size_t __pyx_v_N;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD8Async (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_uc,&__pyx_n_s_N,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD8Async", 1, 4, 4, 1); __PYX_ERR(0, 14892, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD8Async", 1, 4, 4, 2); __PYX_ERR(0, 14892, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD8Async", 1, 4, 4, 3); __PYX_ERR(0, 14892, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD8Async") < 0)) __PYX_ERR(0, 14892, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_uc = __Pyx_PyInt_As_unsigned_char(values[1]); if (unlikely((__pyx_v_uc == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 14892, __pyx_L3_error)
    __pyx_v_N = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_N == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14892, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD8Async", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14892, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD8Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14892, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 14892, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_224cuMemsetD8Async(__pyx_self, __pyx_v_dstDevice, __pyx_v_uc, __pyx_v_N, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_224cuMemsetD8Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned char __pyx_v_uc, size_t __pyx_v_N, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__626)
  __Pyx_RefNannySetupContext("cuMemsetD8Async", 0);
  __Pyx_TraceCall("cuMemsetD8Async", __pyx_f[0], 14892, 0, __PYX_ERR(0, 14892, __pyx_L1_error));

  /* "cuda/cuda.pyx":14966
 *     cudaMemsetAsync
 *     """
 *     err = ccuda.cuMemsetD8Async(dstDevice._ptr[0], uc, N, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD8Async((__pyx_v_dstDevice->_ptr[0]), __pyx_v_uc, __pyx_v_N, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 14966, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":14967
 *     """
 *     err = ccuda.cuMemsetD8Async(dstDevice._ptr[0], uc, N, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14892
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8Async(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD8Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":14970
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16Async(dstDevice not None : CUdeviceptr, unsigned short us, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_227cuMemsetD16Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_226cuMemsetD16Async[] = "cuMemsetD16Async(CUdeviceptr dstDevice: CUdeviceptr, unsigned short us, size_t N, CUstream hStream: CUstream)\n Sets device memory.\n\n    Sets the memory range of `N` 16-bit values to the specified value `us`.\n    The `dstDevice` pointer must be two byte aligned.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    us : unsigned short\n        Value to set\n    N : size_t\n        Number of elements\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemsetAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_227cuMemsetD16Async = {"cuMemsetD16Async", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_227cuMemsetD16Async, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_226cuMemsetD16Async};
static PyObject *__pyx_pw_4cuda_4cuda_227cuMemsetD16Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  unsigned short __pyx_v_us;
  size_t __pyx_v_N;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD16Async (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_us,&__pyx_n_s_N,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD16Async", 1, 4, 4, 1); __PYX_ERR(0, 14970, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD16Async", 1, 4, 4, 2); __PYX_ERR(0, 14970, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD16Async", 1, 4, 4, 3); __PYX_ERR(0, 14970, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD16Async") < 0)) __PYX_ERR(0, 14970, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_us = __Pyx_PyInt_As_unsigned_short(values[1]); if (unlikely((__pyx_v_us == (unsigned short)-1) && PyErr_Occurred())) __PYX_ERR(0, 14970, __pyx_L3_error)
    __pyx_v_N = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_N == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 14970, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD16Async", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14970, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD16Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 14970, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 14970, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_226cuMemsetD16Async(__pyx_self, __pyx_v_dstDevice, __pyx_v_us, __pyx_v_N, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_226cuMemsetD16Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned short __pyx_v_us, size_t __pyx_v_N, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__627)
  __Pyx_RefNannySetupContext("cuMemsetD16Async", 0);
  __Pyx_TraceCall("cuMemsetD16Async", __pyx_f[0], 14970, 0, __PYX_ERR(0, 14970, __pyx_L1_error));

  /* "cuda/cuda.pyx":15045
 *     cudaMemsetAsync
 *     """
 *     err = ccuda.cuMemsetD16Async(dstDevice._ptr[0], us, N, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD16Async((__pyx_v_dstDevice->_ptr[0]), __pyx_v_us, __pyx_v_N, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15045, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":15046
 *     """
 *     err = ccuda.cuMemsetD16Async(dstDevice._ptr[0], us, N, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":14970
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16Async(dstDevice not None : CUdeviceptr, unsigned short us, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD16Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15049
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32Async(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_229cuMemsetD32Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_228cuMemsetD32Async[] = "cuMemsetD32Async(CUdeviceptr dstDevice: CUdeviceptr, unsigned int ui, size_t N, CUstream hStream: CUstream)\n Sets device memory.\n\n    Sets the memory range of `N` 32-bit values to the specified value `ui`.\n    The `dstDevice` pointer must be four byte aligned.\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    ui : unsigned int\n        Value to set\n    N : size_t\n        Number of elements\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cudaMemsetAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_229cuMemsetD32Async = {"cuMemsetD32Async", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_229cuMemsetD32Async, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_228cuMemsetD32Async};
static PyObject *__pyx_pw_4cuda_4cuda_229cuMemsetD32Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  unsigned int __pyx_v_ui;
  size_t __pyx_v_N;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD32Async (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_ui,&__pyx_n_s_N,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ui)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD32Async", 1, 4, 4, 1); __PYX_ERR(0, 15049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD32Async", 1, 4, 4, 2); __PYX_ERR(0, 15049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD32Async", 1, 4, 4, 3); __PYX_ERR(0, 15049, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD32Async") < 0)) __PYX_ERR(0, 15049, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_ui = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_ui == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 15049, __pyx_L3_error)
    __pyx_v_N = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_N == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15049, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD32Async", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 15049, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD32Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 15049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 15049, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_228cuMemsetD32Async(__pyx_self, __pyx_v_dstDevice, __pyx_v_ui, __pyx_v_N, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_228cuMemsetD32Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, unsigned int __pyx_v_ui, size_t __pyx_v_N, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__628)
  __Pyx_RefNannySetupContext("cuMemsetD32Async", 0);
  __Pyx_TraceCall("cuMemsetD32Async", __pyx_f[0], 15049, 0, __PYX_ERR(0, 15049, __pyx_L1_error));

  /* "cuda/cuda.pyx":15124
 *     cudaMemsetAsync
 *     """
 *     err = ccuda.cuMemsetD32Async(dstDevice._ptr[0], ui, N, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD32Async((__pyx_v_dstDevice->_ptr[0]), __pyx_v_ui, __pyx_v_N, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15124, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":15125
 *     """
 *     err = ccuda.cuMemsetD32Async(dstDevice._ptr[0], ui, N, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15049
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32Async(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD32Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15128
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_231cuMemsetD2D8Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_230cuMemsetD2D8Async[] = "cuMemsetD2D8Async(CUdeviceptr dstDevice: CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, CUstream hStream: CUstream)\n Sets device memory.\n\n    Sets the 2D memory range of `Width` 8-bit values to the specified value\n    `uc`. `Height` specifies the number of rows to set, and `dstPitch`\n    specifies the number of bytes between each row. This function performs\n    fastest when the pitch is one that has been passed back by\n    cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstPitch : size_t\n        Pitch of destination device pointer(Unused if `Height` is 1)\n    uc : unsigned char\n        Value to set\n    Width : size_t\n        Width of row\n    Height : size_t\n        Number of rows\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n    cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    c""udaMemset2DAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_231cuMemsetD2D8Async = {"cuMemsetD2D8Async", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_231cuMemsetD2D8Async, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_230cuMemsetD2D8Async};
static PyObject *__pyx_pw_4cuda_4cuda_231cuMemsetD2D8Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  size_t __pyx_v_dstPitch;
  unsigned char __pyx_v_uc;
  size_t __pyx_v_Width;
  size_t __pyx_v_Height;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD2D8Async (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstPitch_2,&__pyx_n_s_uc,&__pyx_n_s_Width_2,&__pyx_n_s_Height_2,&__pyx_n_s_hStream_2,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstPitch_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8Async", 1, 6, 6, 1); __PYX_ERR(0, 15128, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8Async", 1, 6, 6, 2); __PYX_ERR(0, 15128, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Width_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8Async", 1, 6, 6, 3); __PYX_ERR(0, 15128, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8Async", 1, 6, 6, 4); __PYX_ERR(0, 15128, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8Async", 1, 6, 6, 5); __PYX_ERR(0, 15128, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD2D8Async") < 0)) __PYX_ERR(0, 15128, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15128, __pyx_L3_error)
    __pyx_v_uc = __Pyx_PyInt_As_unsigned_char(values[2]); if (unlikely((__pyx_v_uc == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 15128, __pyx_L3_error)
    __pyx_v_Width = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15128, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15128, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[5]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD2D8Async", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 15128, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D8Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 15128, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 15128, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_230cuMemsetD2D8Async(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstPitch, __pyx_v_uc, __pyx_v_Width, __pyx_v_Height, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_230cuMemsetD2D8Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned char __pyx_v_uc, size_t __pyx_v_Width, size_t __pyx_v_Height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__629)
  __Pyx_RefNannySetupContext("cuMemsetD2D8Async", 0);
  __Pyx_TraceCall("cuMemsetD2D8Async", __pyx_f[0], 15128, 0, __PYX_ERR(0, 15128, __pyx_L1_error));

  /* "cuda/cuda.pyx":15210
 *     cudaMemset2DAsync
 *     """
 *     err = ccuda.cuMemsetD2D8Async(dstDevice._ptr[0], dstPitch, uc, Width, Height, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD2D8Async((__pyx_v_dstDevice->_ptr[0]), __pyx_v_dstPitch, __pyx_v_uc, __pyx_v_Width, __pyx_v_Height, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15210, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":15211
 *     """
 *     err = ccuda.cuMemsetD2D8Async(dstDevice._ptr[0], dstPitch, uc, Width, Height, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15128
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D8Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15214
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_233cuMemsetD2D16Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_232cuMemsetD2D16Async[] = "cuMemsetD2D16Async(CUdeviceptr dstDevice: CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height, CUstream hStream: CUstream)\n Sets device memory.\n\n    Sets the 2D memory range of `Width` 16-bit values to the specified\n    value `us`. `Height` specifies the number of rows to set, and\n    `dstPitch` specifies the number of bytes between each row. The\n    `dstDevice` pointer and `dstPitch` offset must be two byte aligned.\n    This function performs fastest when the pitch is one that has been\n    passed back by cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstPitch : size_t\n        Pitch of destination device pointer(Unused if `Height` is 1)\n    us : unsigned short\n        Value to set\n    Width : size_t\n        Width of row\n    Height : size_t\n        Number of rows\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD2D32Async\n    cuMemsetD8\n    cuMemsetD8Async\n   "" cuMemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemset2DAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_233cuMemsetD2D16Async = {"cuMemsetD2D16Async", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_233cuMemsetD2D16Async, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_232cuMemsetD2D16Async};
static PyObject *__pyx_pw_4cuda_4cuda_233cuMemsetD2D16Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  size_t __pyx_v_dstPitch;
  unsigned short __pyx_v_us;
  size_t __pyx_v_Width;
  size_t __pyx_v_Height;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD2D16Async (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstPitch_2,&__pyx_n_s_us,&__pyx_n_s_Width_2,&__pyx_n_s_Height_2,&__pyx_n_s_hStream_2,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstPitch_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16Async", 1, 6, 6, 1); __PYX_ERR(0, 15214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16Async", 1, 6, 6, 2); __PYX_ERR(0, 15214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Width_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16Async", 1, 6, 6, 3); __PYX_ERR(0, 15214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16Async", 1, 6, 6, 4); __PYX_ERR(0, 15214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16Async", 1, 6, 6, 5); __PYX_ERR(0, 15214, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD2D16Async") < 0)) __PYX_ERR(0, 15214, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15214, __pyx_L3_error)
    __pyx_v_us = __Pyx_PyInt_As_unsigned_short(values[2]); if (unlikely((__pyx_v_us == (unsigned short)-1) && PyErr_Occurred())) __PYX_ERR(0, 15214, __pyx_L3_error)
    __pyx_v_Width = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15214, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15214, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[5]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD2D16Async", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 15214, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D16Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 15214, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 15214, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_232cuMemsetD2D16Async(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstPitch, __pyx_v_us, __pyx_v_Width, __pyx_v_Height, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_232cuMemsetD2D16Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned short __pyx_v_us, size_t __pyx_v_Width, size_t __pyx_v_Height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__630)
  __Pyx_RefNannySetupContext("cuMemsetD2D16Async", 0);
  __Pyx_TraceCall("cuMemsetD2D16Async", __pyx_f[0], 15214, 0, __PYX_ERR(0, 15214, __pyx_L1_error));

  /* "cuda/cuda.pyx":15297
 *     cudaMemset2DAsync
 *     """
 *     err = ccuda.cuMemsetD2D16Async(dstDevice._ptr[0], dstPitch, us, Width, Height, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD2D16Async((__pyx_v_dstDevice->_ptr[0]), __pyx_v_dstPitch, __pyx_v_us, __pyx_v_Width, __pyx_v_Height, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15297, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":15298
 *     """
 *     err = ccuda.cuMemsetD2D16Async(dstDevice._ptr[0], dstPitch, us, Width, Height, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15214
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D16Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15301
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_235cuMemsetD2D32Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_234cuMemsetD2D32Async[] = "cuMemsetD2D32Async(CUdeviceptr dstDevice: CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, CUstream hStream: CUstream)\n Sets device memory.\n\n    Sets the 2D memory range of `Width` 32-bit values to the specified\n    value `ui`. `Height` specifies the number of rows to set, and\n    `dstPitch` specifies the number of bytes between each row. The\n    `dstDevice` pointer and `dstPitch` offset must be four byte aligned.\n    This function performs fastest when the pitch is one that has been\n    passed back by cuMemAllocPitch().\n\n    Parameters\n    ----------\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstPitch : size_t\n        Pitch of destination device pointer(Unused if `Height` is 1)\n    ui : unsigned int\n        Value to set\n    Width : size_t\n        Width of row\n    Height : size_t\n        Number of rows\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D8Async\n    cuMemsetD2D16\n    cuMemsetD2D16Async\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD8Async\n    cu""MemsetD16\n    cuMemsetD16Async\n    cuMemsetD32\n    cuMemsetD32Async\n    cudaMemset2DAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_235cuMemsetD2D32Async = {"cuMemsetD2D32Async", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_235cuMemsetD2D32Async, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_234cuMemsetD2D32Async};
static PyObject *__pyx_pw_4cuda_4cuda_235cuMemsetD2D32Async(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice = 0;
  size_t __pyx_v_dstPitch;
  unsigned int __pyx_v_ui;
  size_t __pyx_v_Width;
  size_t __pyx_v_Height;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemsetD2D32Async (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dstDevice_2,&__pyx_n_s_dstPitch_2,&__pyx_n_s_ui,&__pyx_n_s_Width_2,&__pyx_n_s_Height_2,&__pyx_n_s_hStream_2,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstPitch_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32Async", 1, 6, 6, 1); __PYX_ERR(0, 15301, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ui)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32Async", 1, 6, 6, 2); __PYX_ERR(0, 15301, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Width_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32Async", 1, 6, 6, 3); __PYX_ERR(0, 15301, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Height_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32Async", 1, 6, 6, 4); __PYX_ERR(0, 15301, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32Async", 1, 6, 6, 5); __PYX_ERR(0, 15301, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemsetD2D32Async") < 0)) __PYX_ERR(0, 15301, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_dstPitch = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_dstPitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15301, __pyx_L3_error)
    __pyx_v_ui = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_ui == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 15301, __pyx_L3_error)
    __pyx_v_Width = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Width == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15301, __pyx_L3_error)
    __pyx_v_Height = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_Height == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15301, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[5]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemsetD2D32Async", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 15301, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D32Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dstDevice", 0))) __PYX_ERR(0, 15301, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 15301, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_234cuMemsetD2D32Async(__pyx_self, __pyx_v_dstDevice, __pyx_v_dstPitch, __pyx_v_ui, __pyx_v_Width, __pyx_v_Height, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_234cuMemsetD2D32Async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dstDevice, size_t __pyx_v_dstPitch, unsigned int __pyx_v_ui, size_t __pyx_v_Width, size_t __pyx_v_Height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__631)
  __Pyx_RefNannySetupContext("cuMemsetD2D32Async", 0);
  __Pyx_TraceCall("cuMemsetD2D32Async", __pyx_f[0], 15301, 0, __PYX_ERR(0, 15301, __pyx_L1_error));

  /* "cuda/cuda.pyx":15384
 *     cudaMemset2DAsync
 *     """
 *     err = ccuda.cuMemsetD2D32Async(dstDevice._ptr[0], dstPitch, ui, Width, Height, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemsetD2D32Async((__pyx_v_dstDevice->_ptr[0]), __pyx_v_dstPitch, __pyx_v_ui, __pyx_v_Width, __pyx_v_Height, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15384, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":15385
 *     """
 *     err = ccuda.cuMemsetD2D32Async(dstDevice._ptr[0], dstPitch, ui, Width, Height, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15301
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemsetD2D32Async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15388
 * 
 * @cython.embedsignature(True)
 * def cuArrayCreate(pAllocateArray : CUDA_ARRAY_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 1D or 2D CUDA array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_237cuArrayCreate(PyObject *__pyx_self, PyObject *__pyx_v_pAllocateArray); /*proto*/
static char __pyx_doc_4cuda_4cuda_236cuArrayCreate[] = "cuArrayCreate(CUDA_ARRAY_DESCRIPTOR pAllocateArray: CUDA_ARRAY_DESCRIPTOR)\n Creates a 1D or 2D CUDA array.\n\n    Creates a CUDA array according to the CUDA_ARRAY_DESCRIPTOR structure\n    `pAllocateArray` and returns a handle to the new CUDA array in\n    `*pHandle`. The CUDA_ARRAY_DESCRIPTOR is defined as:\n\n    typedefstruct{ unsignedintWidth; unsignedintHeight;\n    CUarray_formatFormat; unsignedintNumChannels; }CUDA_ARRAY_DESCRIPTOR;\n    where:\n\n    `Width`, and `Height` are the width, and height of the CUDA array (in\n    elements); the CUDA array is one-dimensional if height is 0, two-\n    dimensional otherwise; ::Format specifies the format of the elements;\n    CUarray_format is defined as: typedefenumCUarray_format_enum{\n    CU_AD_FORMAT_UNSIGNED_INT8=0x01, CU_AD_FORMAT_UNSIGNED_INT16=0x02,\n    CU_AD_FORMAT_UNSIGNED_INT32=0x03, CU_AD_FORMAT_SIGNED_INT8=0x08,\n    CU_AD_FORMAT_SIGNED_INT16=0x09, CU_AD_FORMAT_SIGNED_INT32=0x0a,\n    CU_AD_FORMAT_HALF=0x10, CU_AD_FORMAT_FLOAT=0x20 }CUarray_format;\n    `NumChannels` specifies the number of packed components per CUDA array\n    element; it may be 1, 2, or 4;\n\n    Here are examples of CUDA array descriptions:\n\n    Description for a CUDA array of 2048 floats: CUDA_ARRAY_DESCRIPTORdesc;\n    desc.Format=CU_AD_FORMAT_FLOAT; desc.NumChannels=1; desc.Width=2048;\n    desc.Height=1;\n\n    Description for a 64 x 64 CUDA array of floats:\n    CUDA_ARRAY_DESCRIPTORdesc; desc.Format=CU_AD_FORMAT_FLOAT;\n    desc.NumChannels=1; desc.Width=64; desc.Height=64;\n\n    Description for a `width` x `height` CUDA array of 64-bit, 4x16-bit\n    float16's: CUDA_ARRAY_DESCRIPTORdesc; desc.Format=CU_AD_FORMAT_HALF;\n    desc.NumChannels=4; desc.Width=width; desc.Height=height;\n\n    Description for a `width` x `height` CUDA array of 16-bit elements,\n    each of which is two 8-bit unsigned chars:\n    CUDA_ARRAY_DESCRIPTORarrayDesc; desc.Format=CU_AD_FORMAT_UNSIGNED_INT8;\n    desc.NumChannels=2; desc.Width=width; desc"".Height=height;\n\n    Parameters\n    ----------\n    pAllocateArray : CUDA_ARRAY_DESCRIPTOR\n        Array descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_UNKNOWN\n    pHandle : CUarray\n        Returned array\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMallocArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_237cuArrayCreate = {"cuArrayCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_237cuArrayCreate, METH_O, __pyx_doc_4cuda_4cuda_236cuArrayCreate};
static PyObject *__pyx_pw_4cuda_4cuda_237cuArrayCreate(PyObject *__pyx_self, PyObject *__pyx_v_pAllocateArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArrayCreate (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pAllocateArray), __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR, 1, "pAllocateArray", 0))) __PYX_ERR(0, 15388, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_236cuArrayCreate(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *)__pyx_v_pAllocateArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_236cuArrayCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_pAllocateArray) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_pHandle = 0;
  __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_cpAllocateArray_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__632)
  __Pyx_RefNannySetupContext("cuArrayCreate", 0);
  __Pyx_TraceCall("cuArrayCreate", __pyx_f[0], 15388, 0, __PYX_ERR(0, 15388, __pyx_L1_error));

  /* "cuda/cuda.pyx":15488
 *     cudaMallocArray
 *     """
 *     cdef CUarray pHandle = CUarray()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL
 *     err = ccuda.cuArrayCreate(pHandle._ptr, cpAllocateArray_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pHandle = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":15489
 *     """
 *     cdef CUarray pHandle = CUarray()
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuArrayCreate(pHandle._ptr, cpAllocateArray_ptr)
 *     return (CUresult(err), pHandle)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pAllocateArray), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15489, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 15489, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_pAllocateArray->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cpAllocateArray_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":15490
 *     cdef CUarray pHandle = CUarray()
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL
 *     err = ccuda.cuArrayCreate(pHandle._ptr, cpAllocateArray_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pHandle)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuArrayCreate(__pyx_v_pHandle->_ptr, __pyx_v_cpAllocateArray_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15490, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":15491
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL
 *     err = ccuda.cuArrayCreate(pHandle._ptr, cpAllocateArray_ptr)
 *     return (CUresult(err), pHandle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 15491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 15491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 15491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pHandle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pHandle));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_pHandle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15388
 * 
 * @cython.embedsignature(True)
 * def cuArrayCreate(pAllocateArray : CUDA_ARRAY_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 1D or 2D CUDA array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuArrayCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pHandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15494
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 1D or 2D CUDA array descriptor.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_239cuArrayGetDescriptor(PyObject *__pyx_self, PyObject *__pyx_v_hArray); /*proto*/
static char __pyx_doc_4cuda_4cuda_238cuArrayGetDescriptor[] = "cuArrayGetDescriptor(CUarray hArray: CUarray)\n Get a 1D or 2D CUDA array descriptor.\n\n    Returns in `*pArrayDescriptor` a descriptor containing information on\n    the format and dimensions of the CUDA array `hArray`. It is useful for\n    subroutines that have been passed a CUDA array, but need to know the\n    CUDA array parameters for validation or other purposes.\n\n    Parameters\n    ----------\n    hArray : CUarray\n        Array to get descriptor of\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    pArrayDescriptor : CUDA_ARRAY_DESCRIPTOR\n        Returned array descriptor\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaArrayGetInfo\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_239cuArrayGetDescriptor = {"cuArrayGetDescriptor", (PyCFunction)__pyx_pw_4cuda_4cuda_239cuArrayGetDescriptor, METH_O, __pyx_doc_4cuda_4cuda_238cuArrayGetDescriptor};
static PyObject *__pyx_pw_4cuda_4cuda_239cuArrayGetDescriptor(PyObject *__pyx_self, PyObject *__pyx_v_hArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArrayGetDescriptor (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "hArray", 0))) __PYX_ERR(0, 15494, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_238cuArrayGetDescriptor(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_hArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_238cuArrayGetDescriptor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_pArrayDescriptor = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__633)
  __Pyx_RefNannySetupContext("cuArrayGetDescriptor", 0);
  __Pyx_TraceCall("cuArrayGetDescriptor", __pyx_f[0], 15494, 0, __PYX_ERR(0, 15494, __pyx_L1_error));

  /* "cuda/cuda.pyx":15560
 *     cudaArrayGetInfo
 *     """
 *     cdef CUDA_ARRAY_DESCRIPTOR pArrayDescriptor = CUDA_ARRAY_DESCRIPTOR()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuArrayGetDescriptor(pArrayDescriptor._ptr, hArray._ptr[0])
 *     return (CUresult(err), pArrayDescriptor)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pArrayDescriptor = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":15561
 *     """
 *     cdef CUDA_ARRAY_DESCRIPTOR pArrayDescriptor = CUDA_ARRAY_DESCRIPTOR()
 *     err = ccuda.cuArrayGetDescriptor(pArrayDescriptor._ptr, hArray._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pArrayDescriptor)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuArrayGetDescriptor(__pyx_v_pArrayDescriptor->__pyx_base._ptr, (__pyx_v_hArray->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15561, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":15562
 *     cdef CUDA_ARRAY_DESCRIPTOR pArrayDescriptor = CUDA_ARRAY_DESCRIPTOR()
 *     err = ccuda.cuArrayGetDescriptor(pArrayDescriptor._ptr, hArray._ptr[0])
 *     return (CUresult(err), pArrayDescriptor)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pArrayDescriptor));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pArrayDescriptor));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pArrayDescriptor));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15494
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 1D or 2D CUDA array descriptor.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuArrayGetDescriptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pArrayDescriptor);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15565
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetSparseProperties(array not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_241cuArrayGetSparseProperties(PyObject *__pyx_self, PyObject *__pyx_v_array); /*proto*/
static char __pyx_doc_4cuda_4cuda_240cuArrayGetSparseProperties[] = "cuArrayGetSparseProperties(CUarray array: CUarray)\n Returns the layout properties of a sparse CUDA array.\n\n    Returns the layout properties of a sparse CUDA array in\n    `sparseProperties` If the CUDA array is not allocated with flag\n    CUDA_ARRAY3D_SPARSE CUDA_ERROR_INVALID_VALUE will be returned.\n\n    If the returned value in CUDA_ARRAY_SPARSE_PROPERTIES::flags contains\n    CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL, then\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailSize represents the total size of\n    the array. Otherwise, it will be zero. Also, the returned value in\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailFirstLevel is always zero. Note\n    that the `array` must have been allocated using cuArrayCreate or\n    cuArray3DCreate. For CUDA arrays obtained using\n    cuMipmappedArrayGetLevel, CUDA_ERROR_INVALID_VALUE will be returned.\n    Instead, cuMipmappedArrayGetSparseProperties must be used to obtain the\n    sparse properties of the entire CUDA mipmapped array to which `array`\n    belongs to.\n\n    Parameters\n    ----------\n    array : CUarray\n        CUDA array to get the sparse properties of\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    sparseProperties : CUDA_ARRAY_SPARSE_PROPERTIES\n        Pointer to CUDA_ARRAY_SPARSE_PROPERTIES\n\n    See Also\n    --------\n    cuMipmappedArrayGetSparseProperties\n    cuMemMapArrayAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_241cuArrayGetSparseProperties = {"cuArrayGetSparseProperties", (PyCFunction)__pyx_pw_4cuda_4cuda_241cuArrayGetSparseProperties, METH_O, __pyx_doc_4cuda_4cuda_240cuArrayGetSparseProperties};
static PyObject *__pyx_pw_4cuda_4cuda_241cuArrayGetSparseProperties(PyObject *__pyx_self, PyObject *__pyx_v_array) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArrayGetSparseProperties (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_array), __pyx_ptype_4cuda_4cuda_CUarray, 0, "array", 0))) __PYX_ERR(0, 15565, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_240cuArrayGetSparseProperties(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_array));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_240cuArrayGetSparseProperties(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_array) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES *__pyx_v_sparseProperties = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__634)
  __Pyx_RefNannySetupContext("cuArrayGetSparseProperties", 0);
  __Pyx_TraceCall("cuArrayGetSparseProperties", __pyx_f[0], 15565, 0, __PYX_ERR(0, 15565, __pyx_L1_error));

  /* "cuda/cuda.pyx":15602
 *     cuMemMapArrayAsync
 *     """
 *     cdef CUDA_ARRAY_SPARSE_PROPERTIES sparseProperties = CUDA_ARRAY_SPARSE_PROPERTIES()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuArrayGetSparseProperties(sparseProperties._ptr, array._ptr[0])
 *     return (CUresult(err), sparseProperties)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_sparseProperties = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":15603
 *     """
 *     cdef CUDA_ARRAY_SPARSE_PROPERTIES sparseProperties = CUDA_ARRAY_SPARSE_PROPERTIES()
 *     err = ccuda.cuArrayGetSparseProperties(sparseProperties._ptr, array._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), sparseProperties)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuArrayGetSparseProperties(__pyx_v_sparseProperties->__pyx_base._ptr, (__pyx_v_array->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15603, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":15604
 *     cdef CUDA_ARRAY_SPARSE_PROPERTIES sparseProperties = CUDA_ARRAY_SPARSE_PROPERTIES()
 *     err = ccuda.cuArrayGetSparseProperties(sparseProperties._ptr, array._ptr[0])
 *     return (CUresult(err), sparseProperties)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_sparseProperties));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_sparseProperties));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_sparseProperties));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15565
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetSparseProperties(array not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuArrayGetSparseProperties", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_sparseProperties);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15607
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetSparseProperties(mipmap not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA mipmapped array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_243cuMipmappedArrayGetSparseProperties(PyObject *__pyx_self, PyObject *__pyx_v_mipmap); /*proto*/
static char __pyx_doc_4cuda_4cuda_242cuMipmappedArrayGetSparseProperties[] = "cuMipmappedArrayGetSparseProperties(CUmipmappedArray mipmap: CUmipmappedArray)\n Returns the layout properties of a sparse CUDA mipmapped array.\n\n    Returns the sparse array layout properties in `sparseProperties` If the\n    CUDA mipmapped array is not allocated with flag CUDA_ARRAY3D_SPARSE\n    CUDA_ERROR_INVALID_VALUE will be returned.\n\n    For non-layered CUDA mipmapped arrays,\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailSize returns the size of the mip\n    tail region. The mip tail region includes all mip levels whose width,\n    height or depth is less than that of the tile. For layered CUDA\n    mipmapped arrays, if CUDA_ARRAY_SPARSE_PROPERTIES::flags contains\n    CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL, then\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailSize specifies the size of the mip\n    tail of all layers combined. Otherwise,\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailSize specifies mip tail size per\n    layer. The returned value of\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailFirstLevel is valid only if\n    CUDA_ARRAY_SPARSE_PROPERTIES::miptailSize is non-zero.\n\n    Parameters\n    ----------\n    mipmap : CUmipmappedArray\n        CUDA mipmapped array to get the sparse properties of\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    sparseProperties : CUDA_ARRAY_SPARSE_PROPERTIES\n        Pointer to CUDA_ARRAY_SPARSE_PROPERTIES\n\n    See Also\n    --------\n    cuArrayGetSparseProperties\n    cuMemMapArrayAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_243cuMipmappedArrayGetSparseProperties = {"cuMipmappedArrayGetSparseProperties", (PyCFunction)__pyx_pw_4cuda_4cuda_243cuMipmappedArrayGetSparseProperties, METH_O, __pyx_doc_4cuda_4cuda_242cuMipmappedArrayGetSparseProperties};
static PyObject *__pyx_pw_4cuda_4cuda_243cuMipmappedArrayGetSparseProperties(PyObject *__pyx_self, PyObject *__pyx_v_mipmap) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMipmappedArrayGetSparseProperties (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mipmap), __pyx_ptype_4cuda_4cuda_CUmipmappedArray, 0, "mipmap", 0))) __PYX_ERR(0, 15607, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_242cuMipmappedArrayGetSparseProperties(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_mipmap));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_242cuMipmappedArrayGetSparseProperties(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_mipmap) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES *__pyx_v_sparseProperties = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__635)
  __Pyx_RefNannySetupContext("cuMipmappedArrayGetSparseProperties", 0);
  __Pyx_TraceCall("cuMipmappedArrayGetSparseProperties", __pyx_f[0], 15607, 0, __PYX_ERR(0, 15607, __pyx_L1_error));

  /* "cuda/cuda.pyx":15645
 *     cuMemMapArrayAsync
 *     """
 *     cdef CUDA_ARRAY_SPARSE_PROPERTIES sparseProperties = CUDA_ARRAY_SPARSE_PROPERTIES()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMipmappedArrayGetSparseProperties(sparseProperties._ptr, mipmap._ptr[0])
 *     return (CUresult(err), sparseProperties)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_sparseProperties = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":15646
 *     """
 *     cdef CUDA_ARRAY_SPARSE_PROPERTIES sparseProperties = CUDA_ARRAY_SPARSE_PROPERTIES()
 *     err = ccuda.cuMipmappedArrayGetSparseProperties(sparseProperties._ptr, mipmap._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), sparseProperties)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMipmappedArrayGetSparseProperties(__pyx_v_sparseProperties->__pyx_base._ptr, (__pyx_v_mipmap->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15646, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":15647
 *     cdef CUDA_ARRAY_SPARSE_PROPERTIES sparseProperties = CUDA_ARRAY_SPARSE_PROPERTIES()
 *     err = ccuda.cuMipmappedArrayGetSparseProperties(sparseProperties._ptr, mipmap._ptr[0])
 *     return (CUresult(err), sparseProperties)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_sparseProperties));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_sparseProperties));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_sparseProperties));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15607
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetSparseProperties(mipmap not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA mipmapped array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMipmappedArrayGetSparseProperties", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_sparseProperties);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15650
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetPlane(hArray not None : CUarray, unsigned int planeIdx):             # <<<<<<<<<<<<<<
 *     """ Gets a CUDA array plane from a CUDA array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_245cuArrayGetPlane(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_244cuArrayGetPlane[] = "cuArrayGetPlane(CUarray hArray: CUarray, unsigned int planeIdx)\n Gets a CUDA array plane from a CUDA array.\n\n    Returns in `pPlaneArray` a CUDA array that represents a single format\n    plane of the CUDA array `hArray`.\n\n    If `planeIdx` is greater than the maximum number of planes in this\n    array or if the array does not have a multi-planar format e.g:\n    CU_AD_FORMAT_NV12, then CUDA_ERROR_INVALID_VALUE is returned.\n\n    Note that if the `hArray` has format CU_AD_FORMAT_NV12, then passing in\n    0 for `planeIdx` returns a CUDA array of the same size as `hArray` but\n    with one channel and CU_AD_FORMAT_UNSIGNED_INT8 as its format. If 1 is\n    passed for `planeIdx`, then the returned CUDA array has half the height\n    and width of `hArray` with two channels and CU_AD_FORMAT_UNSIGNED_INT8\n    as its format.\n\n    Parameters\n    ----------\n    hArray : CUarray\n        Multiplanar CUDA array\n    planeIdx : unsigned int\n        Plane index\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    pPlaneArray : CUarray\n        Returned CUDA array referenced by the `planeIdx`\n\n    See Also\n    --------\n    cuArrayCreate\n    cudaGetArrayPlane\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_245cuArrayGetPlane = {"cuArrayGetPlane", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_245cuArrayGetPlane, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_244cuArrayGetPlane};
static PyObject *__pyx_pw_4cuda_4cuda_245cuArrayGetPlane(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray = 0;
  unsigned int __pyx_v_planeIdx;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArrayGetPlane (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hArray_2,&__pyx_n_s_planeIdx,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_planeIdx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuArrayGetPlane", 1, 2, 2, 1); __PYX_ERR(0, 15650, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuArrayGetPlane") < 0)) __PYX_ERR(0, 15650, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[0]);
    __pyx_v_planeIdx = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_planeIdx == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 15650, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuArrayGetPlane", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 15650, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuArrayGetPlane", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "hArray", 0))) __PYX_ERR(0, 15650, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_244cuArrayGetPlane(__pyx_self, __pyx_v_hArray, __pyx_v_planeIdx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_244cuArrayGetPlane(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray, unsigned int __pyx_v_planeIdx) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_pPlaneArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__636)
  __Pyx_RefNannySetupContext("cuArrayGetPlane", 0);
  __Pyx_TraceCall("cuArrayGetPlane", __pyx_f[0], 15650, 0, __PYX_ERR(0, 15650, __pyx_L1_error));

  /* "cuda/cuda.pyx":15691
 *     cudaGetArrayPlane
 *     """
 *     cdef CUarray pPlaneArray = CUarray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuArrayGetPlane(pPlaneArray._ptr, hArray._ptr[0], planeIdx)
 *     return (CUresult(err), pPlaneArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pPlaneArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":15692
 *     """
 *     cdef CUarray pPlaneArray = CUarray()
 *     err = ccuda.cuArrayGetPlane(pPlaneArray._ptr, hArray._ptr[0], planeIdx)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pPlaneArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuArrayGetPlane(__pyx_v_pPlaneArray->_ptr, (__pyx_v_hArray->_ptr[0]), __pyx_v_planeIdx); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15692, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":15693
 *     cdef CUarray pPlaneArray = CUarray()
 *     err = ccuda.cuArrayGetPlane(pPlaneArray._ptr, hArray._ptr[0], planeIdx)
 *     return (CUresult(err), pPlaneArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pPlaneArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pPlaneArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pPlaneArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15650
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetPlane(hArray not None : CUarray, unsigned int planeIdx):             # <<<<<<<<<<<<<<
 *     """ Gets a CUDA array plane from a CUDA array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuArrayGetPlane", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pPlaneArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15696
 * 
 * @cython.embedsignature(True)
 * def cuArrayDestroy(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_247cuArrayDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hArray); /*proto*/
static char __pyx_doc_4cuda_4cuda_246cuArrayDestroy[] = "cuArrayDestroy(CUarray hArray: CUarray)\n Destroys a CUDA array.\n\n    Destroys the CUDA array `hArray`.\n\n    Parameters\n    ----------\n    hArray : CUarray\n        Array to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_ARRAY_IS_MAPPED\n        CUDA_ERROR_CONTEXT_IS_DESTROYED\n    None\n        None\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaFreeArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_247cuArrayDestroy = {"cuArrayDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_247cuArrayDestroy, METH_O, __pyx_doc_4cuda_4cuda_246cuArrayDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_247cuArrayDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArrayDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "hArray", 0))) __PYX_ERR(0, 15696, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_246cuArrayDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_hArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_246cuArrayDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__637)
  __Pyx_RefNannySetupContext("cuArrayDestroy", 0);
  __Pyx_TraceCall("cuArrayDestroy", __pyx_f[0], 15696, 0, __PYX_ERR(0, 15696, __pyx_L1_error));

  /* "cuda/cuda.pyx":15760
 *     cudaFreeArray
 *     """
 *     err = ccuda.cuArrayDestroy(hArray._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuArrayDestroy((__pyx_v_hArray->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15760, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":15761
 *     """
 *     err = ccuda.cuArrayDestroy(hArray._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15696
 * 
 * @cython.embedsignature(True)
 * def cuArrayDestroy(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuArrayDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15764
 * 
 * @cython.embedsignature(True)
 * def cuArray3DCreate(pAllocateArray : CUDA_ARRAY3D_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 3D CUDA array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_249cuArray3DCreate(PyObject *__pyx_self, PyObject *__pyx_v_pAllocateArray); /*proto*/
static char __pyx_doc_4cuda_4cuda_248cuArray3DCreate[] = "cuArray3DCreate(CUDA_ARRAY3D_DESCRIPTOR pAllocateArray: CUDA_ARRAY3D_DESCRIPTOR)\n Creates a 3D CUDA array.\n\n    Creates a CUDA array according to the CUDA_ARRAY3D_DESCRIPTOR structure\n    `pAllocateArray` and returns a handle to the new CUDA array in\n    `*pHandle`. The CUDA_ARRAY3D_DESCRIPTOR is defined as:\n\n    typedefstruct{ unsignedintWidth; unsignedintHeight; unsignedintDepth;\n    CUarray_formatFormat; unsignedintNumChannels; unsignedintFlags;\n    }CUDA_ARRAY3D_DESCRIPTOR; where:\n\n    `Width`, `Height`, and `Depth` are the width, height, and depth of the\n    CUDA array (in elements); the following types of CUDA arrays can be\n    allocated: A 1D array is allocated if `Height` and `Depth` extents are\n    both zero. A 2D array is allocated if only `Depth` extent is zero. A 3D\n    array is allocated if all three extents are non-zero. A 1D layered CUDA\n    array is allocated if only `Height` is zero and the\n    CUDA_ARRAY3D_LAYERED flag is set. Each layer is a 1D array. The number\n    of layers is determined by the depth extent. A 2D layered CUDA array is\n    allocated if all three extents are non-zero and the\n    CUDA_ARRAY3D_LAYERED flag is set. Each layer is a 2D array. The number\n    of layers is determined by the depth extent. A cubemap CUDA array is\n    allocated if all three extents are non-zero and the\n    CUDA_ARRAY3D_CUBEMAP flag is set. `Width` must be equal to `Height`,\n    and `Depth` must be six. A cubemap is a special type of 2D layered CUDA\n    array, where the six layers represent the six faces of a cube. The\n    order of the six layers in memory is the same as that listed in\n    CUarray_cubemap_face. A cubemap layered CUDA array is allocated if all\n    three extents are non-zero, and both, CUDA_ARRAY3D_CUBEMAP and\n    CUDA_ARRAY3D_LAYERED flags are set. `Width` must be equal to `Height`,\n    and `Depth` must be a multiple of six. A cubemap layered CUDA array is\n    a special type of 2D layered CUDA array that consists"" of a collection\n    of cubemaps. The first six layers represent the first cubemap, the next\n    six layers form the second cubemap, and so on.   ::Format specifies the\n    format of the elements; CUarray_format is defined as:\n    typedefenumCUarray_format_enum{ CU_AD_FORMAT_UNSIGNED_INT8=0x01,\n    CU_AD_FORMAT_UNSIGNED_INT16=0x02, CU_AD_FORMAT_UNSIGNED_INT32=0x03,\n    CU_AD_FORMAT_SIGNED_INT8=0x08, CU_AD_FORMAT_SIGNED_INT16=0x09,\n    CU_AD_FORMAT_SIGNED_INT32=0x0a, CU_AD_FORMAT_HALF=0x10,\n    CU_AD_FORMAT_FLOAT=0x20 }CUarray_format;  `NumChannels` specifies the\n    number of packed components per CUDA array element; it may be 1, 2, or\n    4; ::Flags may be set to CUDA_ARRAY3D_LAYERED to enable creation of\n    layered CUDA arrays. If this flag is set, `Depth` specifies the number\n    of layers, not the depth of a 3D array. CUDA_ARRAY3D_SURFACE_LDST to\n    enable surface references to be bound to the CUDA array. If this flag\n    is not set, cuSurfRefSetArray will fail when attempting to bind the\n    CUDA array to a surface reference. CUDA_ARRAY3D_CUBEMAP to enable\n    creation of cubemaps. If this flag is set, `Width` must be equal to\n    `Height`, and `Depth` must be six. If the CUDA_ARRAY3D_LAYERED flag is\n    also set, then `Depth` must be a multiple of six.\n    CUDA_ARRAY3D_TEXTURE_GATHER to indicate that the CUDA array will be\n    used for texture gather. Texture gather can only be performed on 2D\n    CUDA arrays.\n\n    `Width`, `Height` and `Depth` must meet certain size requirements as\n    listed in the following table. All values are specified in elements.\n    Note that for brevity's sake, the full name of the device attribute is\n    not specified. For ex., TEXTURE1D_WIDTH refers to the device attribute\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH.\n\n    Note that 2D CUDA arrays have different size requirements if the\n    CUDA_ARRAY3D_TEXTURE_GATHER flag is set. `Width` and `Height` must not\n    be greater than CU_DEVICE_ATTRIB""UTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH and\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT respectively, in\n    that case.\n\n    CUDA array type  Valid extents that must always be met {(width range in\n    elements), (height range), (depth range)}  Valid extents with\n    CUDA_ARRAY3D_SURFACE_LDST set {(width range in elements), (height\n    range), (depth range)}    1D  { (1,TEXTURE1D_WIDTH), 0, 0 }  {\n    (1,SURFACE1D_WIDTH), 0, 0 }    2D  { (1,TEXTURE2D_WIDTH),\n    (1,TEXTURE2D_HEIGHT), 0 }  { (1,SURFACE2D_WIDTH), (1,SURFACE2D_HEIGHT),\n    0 }    3D  { (1,TEXTURE3D_WIDTH), (1,TEXTURE3D_HEIGHT),\n    (1,TEXTURE3D_DEPTH) }  OR { (1,TEXTURE3D_WIDTH_ALTERNATE),\n    (1,TEXTURE3D_HEIGHT_ALTERNATE), (1,TEXTURE3D_DEPTH_ALTERNATE) }  {\n    (1,SURFACE3D_WIDTH), (1,SURFACE3D_HEIGHT), (1,SURFACE3D_DEPTH) }    1D\n    Layered  { (1,TEXTURE1D_LAYERED_WIDTH), 0, (1,TEXTURE1D_LAYERED_LAYERS)\n    }  { (1,SURFACE1D_LAYERED_WIDTH), 0, (1,SURFACE1D_LAYERED_LAYERS) }\n    2D Layered  { (1,TEXTURE2D_LAYERED_WIDTH),\n    (1,TEXTURE2D_LAYERED_HEIGHT), (1,TEXTURE2D_LAYERED_LAYERS) }  {\n    (1,SURFACE2D_LAYERED_WIDTH), (1,SURFACE2D_LAYERED_HEIGHT),\n    (1,SURFACE2D_LAYERED_LAYERS) }    Cubemap  { (1,TEXTURECUBEMAP_WIDTH),\n    (1,TEXTURECUBEMAP_WIDTH), 6 }  { (1,SURFACECUBEMAP_WIDTH),\n    (1,SURFACECUBEMAP_WIDTH), 6 }    Cubemap Layered  {\n    (1,TEXTURECUBEMAP_LAYERED_WIDTH), (1,TEXTURECUBEMAP_LAYERED_WIDTH),\n    (1,TEXTURECUBEMAP_LAYERED_LAYERS) }  {\n    (1,SURFACECUBEMAP_LAYERED_WIDTH), (1,SURFACECUBEMAP_LAYERED_WIDTH),\n    (1,SURFACECUBEMAP_LAYERED_LAYERS) }\n\n    Here are examples of CUDA array descriptions:\n\n    Description for a CUDA array of 2048 floats:\n    CUDA_ARRAY3D_DESCRIPTORdesc; desc.Format=CU_AD_FORMAT_FLOAT;\n    desc.NumChannels=1; desc.Width=2048; desc.Height=0; desc.Depth=0;\n\n    Description for a 64 x 64 CUDA array of floats:\n    CUDA_ARRAY3D_DESCRIPTORdesc; desc.Format=CU_AD_FORMAT_FLOAT;\n    desc.NumChannels=1; desc.Width=64; desc.Height""=64; desc.Depth=0;\n\n    Description for a `width` x `height` x `depth` CUDA array of 64-bit,\n    4x16-bit float16's: CUDA_ARRAY3D_DESCRIPTORdesc;\n    desc.Format=CU_AD_FORMAT_HALF; desc.NumChannels=4; desc.Width=width;\n    desc.Height=height; desc.Depth=depth;\n\n    Parameters\n    ----------\n    pAllocateArray : CUDA_ARRAY3D_DESCRIPTOR\n        3D array descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_UNKNOWN\n    pHandle : CUarray\n        Returned array\n\n    See Also\n    --------\n    cuArray3DGetDescriptor\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaMalloc3DArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_249cuArray3DCreate = {"cuArray3DCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_249cuArray3DCreate, METH_O, __pyx_doc_4cuda_4cuda_248cuArray3DCreate};
static PyObject *__pyx_pw_4cuda_4cuda_249cuArray3DCreate(PyObject *__pyx_self, PyObject *__pyx_v_pAllocateArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArray3DCreate (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pAllocateArray), __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR, 1, "pAllocateArray", 0))) __PYX_ERR(0, 15764, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_248cuArray3DCreate(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)__pyx_v_pAllocateArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_248cuArray3DCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_pAllocateArray) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_pHandle = 0;
  __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_cpAllocateArray_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__638)
  __Pyx_RefNannySetupContext("cuArray3DCreate", 0);
  __Pyx_TraceCall("cuArray3DCreate", __pyx_f[0], 15764, 0, __PYX_ERR(0, 15764, __pyx_L1_error));

  /* "cuda/cuda.pyx":15927
 *     cudaMalloc3DArray
 *     """
 *     cdef CUarray pHandle = CUarray()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL
 *     err = ccuda.cuArray3DCreate(pHandle._ptr, cpAllocateArray_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pHandle = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":15928
 *     """
 *     cdef CUarray pHandle = CUarray()
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuArray3DCreate(pHandle._ptr, cpAllocateArray_ptr)
 *     return (CUresult(err), pHandle)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pAllocateArray), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15928, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 15928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_pAllocateArray->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cpAllocateArray_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":15929
 *     cdef CUarray pHandle = CUarray()
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL
 *     err = ccuda.cuArray3DCreate(pHandle._ptr, cpAllocateArray_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pHandle)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuArray3DCreate(__pyx_v_pHandle->_ptr, __pyx_v_cpAllocateArray_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 15929, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":15930
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpAllocateArray_ptr = pAllocateArray._ptr if pAllocateArray != None else NULL
 *     err = ccuda.cuArray3DCreate(pHandle._ptr, cpAllocateArray_ptr)
 *     return (CUresult(err), pHandle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 15930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 15930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 15930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pHandle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pHandle));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_pHandle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15764
 * 
 * @cython.embedsignature(True)
 * def cuArray3DCreate(pAllocateArray : CUDA_ARRAY3D_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 3D CUDA array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuArray3DCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pHandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":15933
 * 
 * @cython.embedsignature(True)
 * def cuArray3DGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 3D CUDA array descriptor.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_251cuArray3DGetDescriptor(PyObject *__pyx_self, PyObject *__pyx_v_hArray); /*proto*/
static char __pyx_doc_4cuda_4cuda_250cuArray3DGetDescriptor[] = "cuArray3DGetDescriptor(CUarray hArray: CUarray)\n Get a 3D CUDA array descriptor.\n\n    Returns in `*pArrayDescriptor` a descriptor containing information on\n    the format and dimensions of the CUDA array `hArray`. It is useful for\n    subroutines that have been passed a CUDA array, but need to know the\n    CUDA array parameters for validation or other purposes.\n\n    This function may be called on 1D and 2D arrays, in which case the\n    `Height` and/or `Depth` members of the descriptor struct will be set to\n    0.\n\n    Parameters\n    ----------\n    hArray : CUarray\n        3D array to get descriptor of\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_CONTEXT_IS_DESTROYED\n    pArrayDescriptor : CUDA_ARRAY3D_DESCRIPTOR\n        Returned 3D array descriptor\n\n    See Also\n    --------\n    cuArray3DCreate\n    cuArrayCreate\n    cuArrayDestroy\n    cuArrayGetDescriptor\n    cuMemAlloc\n    cuMemAllocHost\n    cuMemAllocPitch\n    cuMemcpy2D\n    cuMemcpy2DAsync\n    cuMemcpy2DUnaligned\n    cuMemcpy3D\n    cuMemcpy3DAsync\n    cuMemcpyAtoA\n    cuMemcpyAtoD\n    cuMemcpyAtoH\n    cuMemcpyAtoHAsync\n    cuMemcpyDtoA\n    cuMemcpyDtoD\n    cuMemcpyDtoDAsync\n    cuMemcpyDtoH\n    cuMemcpyDtoHAsync\n    cuMemcpyHtoA\n    cuMemcpyHtoAAsync\n    cuMemcpyHtoD\n    cuMemcpyHtoDAsync\n    cuMemFree\n    cuMemFreeHost\n    cuMemGetAddressRange\n    cuMemGetInfo\n    cuMemHostAlloc\n    cuMemHostGetDevicePointer\n    cuMemsetD2D8\n    cuMemsetD2D16\n    cuMemsetD2D32\n    cuMemsetD8\n    cuMemsetD16\n    cuMemsetD32\n    cudaArrayGetInfo\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_251cuArray3DGetDescriptor = {"cuArray3DGetDescriptor", (PyCFunction)__pyx_pw_4cuda_4cuda_251cuArray3DGetDescriptor, METH_O, __pyx_doc_4cuda_4cuda_250cuArray3DGetDescriptor};
static PyObject *__pyx_pw_4cuda_4cuda_251cuArray3DGetDescriptor(PyObject *__pyx_self, PyObject *__pyx_v_hArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuArray3DGetDescriptor (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "hArray", 0))) __PYX_ERR(0, 15933, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_250cuArray3DGetDescriptor(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_v_hArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_250cuArray3DGetDescriptor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_pArrayDescriptor = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__639)
  __Pyx_RefNannySetupContext("cuArray3DGetDescriptor", 0);
  __Pyx_TraceCall("cuArray3DGetDescriptor", __pyx_f[0], 15933, 0, __PYX_ERR(0, 15933, __pyx_L1_error));

  /* "cuda/cuda.pyx":16004
 *     cudaArrayGetInfo
 *     """
 *     cdef CUDA_ARRAY3D_DESCRIPTOR pArrayDescriptor = CUDA_ARRAY3D_DESCRIPTOR()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuArray3DGetDescriptor(pArrayDescriptor._ptr, hArray._ptr[0])
 *     return (CUresult(err), pArrayDescriptor)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pArrayDescriptor = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16005
 *     """
 *     cdef CUDA_ARRAY3D_DESCRIPTOR pArrayDescriptor = CUDA_ARRAY3D_DESCRIPTOR()
 *     err = ccuda.cuArray3DGetDescriptor(pArrayDescriptor._ptr, hArray._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pArrayDescriptor)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuArray3DGetDescriptor(__pyx_v_pArrayDescriptor->__pyx_base._ptr, (__pyx_v_hArray->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16005, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":16006
 *     cdef CUDA_ARRAY3D_DESCRIPTOR pArrayDescriptor = CUDA_ARRAY3D_DESCRIPTOR()
 *     err = ccuda.cuArray3DGetDescriptor(pArrayDescriptor._ptr, hArray._ptr[0])
 *     return (CUresult(err), pArrayDescriptor)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pArrayDescriptor));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pArrayDescriptor));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pArrayDescriptor));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":15933
 * 
 * @cython.embedsignature(True)
 * def cuArray3DGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 3D CUDA array descriptor.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuArray3DGetDescriptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pArrayDescriptor);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16009
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayCreate(pMipmappedArrayDesc : CUDA_ARRAY3D_DESCRIPTOR, unsigned int numMipmapLevels):             # <<<<<<<<<<<<<<
 *     """ Creates a CUDA mipmapped array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_253cuMipmappedArrayCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_252cuMipmappedArrayCreate[] = "cuMipmappedArrayCreate(CUDA_ARRAY3D_DESCRIPTOR pMipmappedArrayDesc: CUDA_ARRAY3D_DESCRIPTOR, unsigned int numMipmapLevels)\n Creates a CUDA mipmapped array.\n\n    Creates a CUDA mipmapped array according to the CUDA_ARRAY3D_DESCRIPTOR\n    structure `pMipmappedArrayDesc` and returns a handle to the new CUDA\n    mipmapped array in `*pHandle`. `numMipmapLevels` specifies the number\n    of mipmap levels to be allocated. This value is clamped to the range\n    [1, 1 + floor(log2(max(width, height, depth)))].\n\n    The CUDA_ARRAY3D_DESCRIPTOR is defined as:\n\n    typedefstruct{ unsignedintWidth; unsignedintHeight; unsignedintDepth;\n    CUarray_formatFormat; unsignedintNumChannels; unsignedintFlags;\n    }CUDA_ARRAY3D_DESCRIPTOR; where:\n\n    `Width`, `Height`, and `Depth` are the width, height, and depth of the\n    CUDA array (in elements); the following types of CUDA arrays can be\n    allocated: A 1D mipmapped array is allocated if `Height` and `Depth`\n    extents are both zero. A 2D mipmapped array is allocated if only\n    `Depth` extent is zero. A 3D mipmapped array is allocated if all three\n    extents are non-zero. A 1D layered CUDA mipmapped array is allocated if\n    only `Height` is zero and the CUDA_ARRAY3D_LAYERED flag is set. Each\n    layer is a 1D array. The number of layers is determined by the depth\n    extent. A 2D layered CUDA mipmapped array is allocated if all three\n    extents are non-zero and the CUDA_ARRAY3D_LAYERED flag is set. Each\n    layer is a 2D array. The number of layers is determined by the depth\n    extent. A cubemap CUDA mipmapped array is allocated if all three\n    extents are non-zero and the CUDA_ARRAY3D_CUBEMAP flag is set. `Width`\n    must be equal to `Height`, and `Depth` must be six. A cubemap is a\n    special type of 2D layered CUDA array, where the six layers represent\n    the six faces of a cube. The order of the six layers in memory is the\n    same as that listed in CUarray_cubemap_face. A cubemap layered C""UDA\n    mipmapped array is allocated if all three extents are non-zero, and\n    both, CUDA_ARRAY3D_CUBEMAP and CUDA_ARRAY3D_LAYERED flags are set.\n    `Width` must be equal to `Height`, and `Depth` must be a multiple of\n    six. A cubemap layered CUDA array is a special type of 2D layered CUDA\n    array that consists of a collection of cubemaps. The first six layers\n    represent the first cubemap, the next six layers form the second\n    cubemap, and so on.   ::Format specifies the format of the elements;\n    CUarray_format is defined as: typedefenumCUarray_format_enum{\n    CU_AD_FORMAT_UNSIGNED_INT8=0x01, CU_AD_FORMAT_UNSIGNED_INT16=0x02,\n    CU_AD_FORMAT_UNSIGNED_INT32=0x03, CU_AD_FORMAT_SIGNED_INT8=0x08,\n    CU_AD_FORMAT_SIGNED_INT16=0x09, CU_AD_FORMAT_SIGNED_INT32=0x0a,\n    CU_AD_FORMAT_HALF=0x10, CU_AD_FORMAT_FLOAT=0x20 }CUarray_format;\n    `NumChannels` specifies the number of packed components per CUDA array\n    element; it may be 1, 2, or 4; ::Flags may be set to\n    CUDA_ARRAY3D_LAYERED to enable creation of layered CUDA mipmapped\n    arrays. If this flag is set, `Depth` specifies the number of layers,\n    not the depth of a 3D array. CUDA_ARRAY3D_SURFACE_LDST to enable\n    surface references to be bound to individual mipmap levels of the CUDA\n    mipmapped array. If this flag is not set, cuSurfRefSetArray will fail\n    when attempting to bind a mipmap level of the CUDA mipmapped array to a\n    surface reference. CUDA_ARRAY3D_CUBEMAP to enable creation of mipmapped\n    cubemaps. If this flag is set, `Width` must be equal to `Height`, and\n    `Depth` must be six. If the CUDA_ARRAY3D_LAYERED flag is also set, then\n    `Depth` must be a multiple of six.   CUDA_ARRAY3D_TEXTURE_GATHER to\n    indicate that the CUDA mipmapped array will be used for texture gather.\n    Texture gather can only be performed on 2D CUDA mipmapped arrays.\n\n    `Width`, `Height` and `Depth` must meet certain size requirements as\n    listed in the following ta""ble. All values are specified in elements.\n    Note that for brevity's sake, the full name of the device attribute is\n    not specified. For ex., TEXTURE1D_MIPMAPPED_WIDTH refers to the device\n    attribute CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH.\n\n    CUDA array type  Valid extents that must always be met {(width range in\n    elements), (height range), (depth range)}  Valid extents with\n    CUDA_ARRAY3D_SURFACE_LDST set {(width range in elements), (height\n    range), (depth range)}    1D  { (1,TEXTURE1D_MIPMAPPED_WIDTH), 0, 0 }\n    { (1,SURFACE1D_WIDTH), 0, 0 }    2D  { (1,TEXTURE2D_MIPMAPPED_WIDTH),\n    (1,TEXTURE2D_MIPMAPPED_HEIGHT), 0 }  { (1,SURFACE2D_WIDTH),\n    (1,SURFACE2D_HEIGHT), 0 }    3D  { (1,TEXTURE3D_WIDTH),\n    (1,TEXTURE3D_HEIGHT), (1,TEXTURE3D_DEPTH) }  OR {\n    (1,TEXTURE3D_WIDTH_ALTERNATE), (1,TEXTURE3D_HEIGHT_ALTERNATE),\n    (1,TEXTURE3D_DEPTH_ALTERNATE) }  { (1,SURFACE3D_WIDTH),\n    (1,SURFACE3D_HEIGHT), (1,SURFACE3D_DEPTH) }    1D Layered  {\n    (1,TEXTURE1D_LAYERED_WIDTH), 0, (1,TEXTURE1D_LAYERED_LAYERS) }  {\n    (1,SURFACE1D_LAYERED_WIDTH), 0, (1,SURFACE1D_LAYERED_LAYERS) }    2D\n    Layered  { (1,TEXTURE2D_LAYERED_WIDTH), (1,TEXTURE2D_LAYERED_HEIGHT),\n    (1,TEXTURE2D_LAYERED_LAYERS) }  { (1,SURFACE2D_LAYERED_WIDTH),\n    (1,SURFACE2D_LAYERED_HEIGHT), (1,SURFACE2D_LAYERED_LAYERS) }    Cubemap\n    { (1,TEXTURECUBEMAP_WIDTH), (1,TEXTURECUBEMAP_WIDTH), 6 }  {\n    (1,SURFACECUBEMAP_WIDTH), (1,SURFACECUBEMAP_WIDTH), 6 }    Cubemap\n    Layered  { (1,TEXTURECUBEMAP_LAYERED_WIDTH),\n    (1,TEXTURECUBEMAP_LAYERED_WIDTH), (1,TEXTURECUBEMAP_LAYERED_LAYERS) }\n    { (1,SURFACECUBEMAP_LAYERED_WIDTH), (1,SURFACECUBEMAP_LAYERED_WIDTH),\n    (1,SURFACECUBEMAP_LAYERED_LAYERS) }\n\n    Parameters\n    ----------\n    pMipmappedArrayDesc : CUDA_ARRAY3D_DESCRIPTOR\n        mipmapped array descriptor\n    numMipmapLevels : unsigned int\n        Number of mipmap levels\n\n    Returns\n    -------\n    CUresult\n        CUDA_SU""CCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_UNKNOWN\n    pHandle : CUmipmappedArray\n        Returned mipmapped array\n\n    See Also\n    --------\n    cuMipmappedArrayDestroy\n    cuMipmappedArrayGetLevel\n    cuArrayCreate\n    cudaMallocMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_253cuMipmappedArrayCreate = {"cuMipmappedArrayCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_253cuMipmappedArrayCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_252cuMipmappedArrayCreate};
static PyObject *__pyx_pw_4cuda_4cuda_253cuMipmappedArrayCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_pMipmappedArrayDesc = 0;
  unsigned int __pyx_v_numMipmapLevels;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMipmappedArrayCreate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pMipmappedArrayDesc,&__pyx_n_s_numMipmapLevels,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pMipmappedArrayDesc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numMipmapLevels)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMipmappedArrayCreate", 1, 2, 2, 1); __PYX_ERR(0, 16009, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMipmappedArrayCreate") < 0)) __PYX_ERR(0, 16009, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pMipmappedArrayDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)values[0]);
    __pyx_v_numMipmapLevels = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_numMipmapLevels == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16009, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMipmappedArrayCreate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16009, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMipmappedArrayCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pMipmappedArrayDesc), __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR, 1, "pMipmappedArrayDesc", 0))) __PYX_ERR(0, 16009, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_252cuMipmappedArrayCreate(__pyx_self, __pyx_v_pMipmappedArrayDesc, __pyx_v_numMipmapLevels);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_252cuMipmappedArrayCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_pMipmappedArrayDesc, unsigned int __pyx_v_numMipmapLevels) {
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_pHandle = 0;
  __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR *__pyx_v_cpMipmappedArrayDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__640)
  __Pyx_RefNannySetupContext("cuMipmappedArrayCreate", 0);
  __Pyx_TraceCall("cuMipmappedArrayCreate", __pyx_f[0], 16009, 0, __PYX_ERR(0, 16009, __pyx_L1_error));

  /* "cuda/cuda.pyx":16124
 *     cudaMallocMipmappedArray
 *     """
 *     cdef CUmipmappedArray pHandle = CUmipmappedArray()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpMipmappedArrayDesc_ptr = pMipmappedArrayDesc._ptr if pMipmappedArrayDesc != None else NULL
 *     err = ccuda.cuMipmappedArrayCreate(pHandle._ptr, cpMipmappedArrayDesc_ptr, numMipmapLevels)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pHandle = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16125
 *     """
 *     cdef CUmipmappedArray pHandle = CUmipmappedArray()
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpMipmappedArrayDesc_ptr = pMipmappedArrayDesc._ptr if pMipmappedArrayDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMipmappedArrayCreate(pHandle._ptr, cpMipmappedArrayDesc_ptr, numMipmapLevels)
 *     return (CUresult(err), pHandle)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pMipmappedArrayDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16125, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 16125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_pMipmappedArrayDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cpMipmappedArrayDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":16126
 *     cdef CUmipmappedArray pHandle = CUmipmappedArray()
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpMipmappedArrayDesc_ptr = pMipmappedArrayDesc._ptr if pMipmappedArrayDesc != None else NULL
 *     err = ccuda.cuMipmappedArrayCreate(pHandle._ptr, cpMipmappedArrayDesc_ptr, numMipmapLevels)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pHandle)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMipmappedArrayCreate(__pyx_v_pHandle->_ptr, __pyx_v_cpMipmappedArrayDesc_ptr, __pyx_v_numMipmapLevels); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16126, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":16127
 *     cdef ccuda.CUDA_ARRAY3D_DESCRIPTOR* cpMipmappedArrayDesc_ptr = pMipmappedArrayDesc._ptr if pMipmappedArrayDesc != None else NULL
 *     err = ccuda.cuMipmappedArrayCreate(pHandle._ptr, cpMipmappedArrayDesc_ptr, numMipmapLevels)
 *     return (CUresult(err), pHandle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pHandle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pHandle));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_pHandle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16009
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayCreate(pMipmappedArrayDesc : CUDA_ARRAY3D_DESCRIPTOR, unsigned int numMipmapLevels):             # <<<<<<<<<<<<<<
 *     """ Creates a CUDA mipmapped array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMipmappedArrayCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pHandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16130
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetLevel(hMipmappedArray not None : CUmipmappedArray, unsigned int level):             # <<<<<<<<<<<<<<
 *     """ Gets a mipmap level of a CUDA mipmapped array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_255cuMipmappedArrayGetLevel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_254cuMipmappedArrayGetLevel[] = "cuMipmappedArrayGetLevel(CUmipmappedArray hMipmappedArray: CUmipmappedArray, unsigned int level)\n Gets a mipmap level of a CUDA mipmapped array.\n\n    Returns in `*pLevelArray` a CUDA array that represents a single mipmap\n    level of the CUDA mipmapped array `hMipmappedArray`.\n\n    If `level` is greater than the maximum number of levels in this\n    mipmapped array, CUDA_ERROR_INVALID_VALUE is returned.\n\n    Parameters\n    ----------\n    hMipmappedArray : CUmipmappedArray\n        CUDA mipmapped array\n    level : unsigned int\n        Mipmap level\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    pLevelArray : CUarray\n        Returned mipmap level CUDA array\n\n    See Also\n    --------\n    cuMipmappedArrayCreate\n    cuMipmappedArrayDestroy\n    cuArrayCreate\n    cudaGetMipmappedArrayLevel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_255cuMipmappedArrayGetLevel = {"cuMipmappedArrayGetLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_255cuMipmappedArrayGetLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_254cuMipmappedArrayGetLevel};
static PyObject *__pyx_pw_4cuda_4cuda_255cuMipmappedArrayGetLevel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray = 0;
  unsigned int __pyx_v_level;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMipmappedArrayGetLevel (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hMipmappedArray_2,&__pyx_n_s_level_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hMipmappedArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMipmappedArrayGetLevel", 1, 2, 2, 1); __PYX_ERR(0, 16130, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMipmappedArrayGetLevel") < 0)) __PYX_ERR(0, 16130, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)values[0]);
    __pyx_v_level = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_level == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16130, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMipmappedArrayGetLevel", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16130, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMipmappedArrayGetLevel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hMipmappedArray), __pyx_ptype_4cuda_4cuda_CUmipmappedArray, 0, "hMipmappedArray", 0))) __PYX_ERR(0, 16130, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_254cuMipmappedArrayGetLevel(__pyx_self, __pyx_v_hMipmappedArray, __pyx_v_level);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_254cuMipmappedArrayGetLevel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray, unsigned int __pyx_v_level) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_pLevelArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__641)
  __Pyx_RefNannySetupContext("cuMipmappedArrayGetLevel", 0);
  __Pyx_TraceCall("cuMipmappedArrayGetLevel", __pyx_f[0], 16130, 0, __PYX_ERR(0, 16130, __pyx_L1_error));

  /* "cuda/cuda.pyx":16165
 *     cudaGetMipmappedArrayLevel
 *     """
 *     cdef CUarray pLevelArray = CUarray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMipmappedArrayGetLevel(pLevelArray._ptr, hMipmappedArray._ptr[0], level)
 *     return (CUresult(err), pLevelArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pLevelArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16166
 *     """
 *     cdef CUarray pLevelArray = CUarray()
 *     err = ccuda.cuMipmappedArrayGetLevel(pLevelArray._ptr, hMipmappedArray._ptr[0], level)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pLevelArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMipmappedArrayGetLevel(__pyx_v_pLevelArray->_ptr, (__pyx_v_hMipmappedArray->_ptr[0]), __pyx_v_level); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16166, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":16167
 *     cdef CUarray pLevelArray = CUarray()
 *     err = ccuda.cuMipmappedArrayGetLevel(pLevelArray._ptr, hMipmappedArray._ptr[0], level)
 *     return (CUresult(err), pLevelArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pLevelArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pLevelArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pLevelArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16130
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetLevel(hMipmappedArray not None : CUmipmappedArray, unsigned int level):             # <<<<<<<<<<<<<<
 *     """ Gets a mipmap level of a CUDA mipmapped array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMipmappedArrayGetLevel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pLevelArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16170
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayDestroy(hMipmappedArray not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA mipmapped array.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_257cuMipmappedArrayDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hMipmappedArray); /*proto*/
static char __pyx_doc_4cuda_4cuda_256cuMipmappedArrayDestroy[] = "cuMipmappedArrayDestroy(CUmipmappedArray hMipmappedArray: CUmipmappedArray)\n Destroys a CUDA mipmapped array.\n\n    Destroys the CUDA mipmapped array `hMipmappedArray`.\n\n    Parameters\n    ----------\n    hMipmappedArray : CUmipmappedArray\n        Mipmapped array to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_ARRAY_IS_MAPPED\n        CUDA_ERROR_CONTEXT_IS_DESTROYED\n    None\n        None\n\n    See Also\n    --------\n    cuMipmappedArrayCreate\n    cuMipmappedArrayGetLevel\n    cuArrayCreate\n    cudaFreeMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_257cuMipmappedArrayDestroy = {"cuMipmappedArrayDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_257cuMipmappedArrayDestroy, METH_O, __pyx_doc_4cuda_4cuda_256cuMipmappedArrayDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_257cuMipmappedArrayDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hMipmappedArray) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMipmappedArrayDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hMipmappedArray), __pyx_ptype_4cuda_4cuda_CUmipmappedArray, 0, "hMipmappedArray", 0))) __PYX_ERR(0, 16170, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_256cuMipmappedArrayDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_v_hMipmappedArray));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_256cuMipmappedArrayDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__642)
  __Pyx_RefNannySetupContext("cuMipmappedArrayDestroy", 0);
  __Pyx_TraceCall("cuMipmappedArrayDestroy", __pyx_f[0], 16170, 0, __PYX_ERR(0, 16170, __pyx_L1_error));

  /* "cuda/cuda.pyx":16200
 *     cudaFreeMipmappedArray
 *     """
 *     err = ccuda.cuMipmappedArrayDestroy(hMipmappedArray._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMipmappedArrayDestroy((__pyx_v_hMipmappedArray->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16200, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":16201
 *     """
 *     err = ccuda.cuMipmappedArrayDestroy(hMipmappedArray._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16170
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayDestroy(hMipmappedArray not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA mipmapped array.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMipmappedArrayDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16204
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressReserve(size_t size, size_t alignment, addr not None : CUdeviceptr, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Allocate an address range reservation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_259cuMemAddressReserve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_258cuMemAddressReserve[] = "cuMemAddressReserve(size_t size, size_t alignment, CUdeviceptr addr: CUdeviceptr, unsigned long long flags)\n Allocate an address range reservation.\n\n    Reserves a virtual address range based on the given parameters, giving\n    the starting address of the range in `ptr`. This API requires a system\n    that supports UVA. The size and address parameters must be a multiple\n    of the host page size and the alignment must be a power of two or zero\n    for default alignment.\n\n    Parameters\n    ----------\n    size : size_t\n        Size of the reserved virtual address range requested\n    alignment : size_t\n        Alignment of the reserved virtual address range requested\n    addr : CUdeviceptr\n        Fixed starting address range requested\n    flags : unsigned long long\n        Currently unused, must be zero\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    ptr : CUdeviceptr\n        Resulting pointer to start of virtual address range allocated\n\n    See Also\n    --------\n    cuMemAddressFree\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_259cuMemAddressReserve = {"cuMemAddressReserve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_259cuMemAddressReserve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_258cuMemAddressReserve};
static PyObject *__pyx_pw_4cuda_4cuda_259cuMemAddressReserve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_size;
  size_t __pyx_v_alignment;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAddressReserve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size_2,&__pyx_n_s_alignment,&__pyx_n_s_addr,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alignment)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAddressReserve", 1, 4, 4, 1); __PYX_ERR(0, 16204, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAddressReserve", 1, 4, 4, 2); __PYX_ERR(0, 16204, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAddressReserve", 1, 4, 4, 3); __PYX_ERR(0, 16204, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAddressReserve") < 0)) __PYX_ERR(0, 16204, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16204, __pyx_L3_error)
    __pyx_v_alignment = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_alignment == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16204, __pyx_L3_error)
    __pyx_v_addr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[3]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 16204, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAddressReserve", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16204, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAddressReserve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_addr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "addr", 0))) __PYX_ERR(0, 16204, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_258cuMemAddressReserve(__pyx_self, __pyx_v_size, __pyx_v_alignment, __pyx_v_addr, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_258cuMemAddressReserve(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_size, size_t __pyx_v_alignment, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, unsigned PY_LONG_LONG __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__643)
  __Pyx_RefNannySetupContext("cuMemAddressReserve", 0);
  __Pyx_TraceCall("cuMemAddressReserve", __pyx_f[0], 16204, 0, __PYX_ERR(0, 16204, __pyx_L1_error));

  /* "cuda/cuda.pyx":16241
 *     cuMemAddressFree
 *     """
 *     cdef CUdeviceptr ptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAddressReserve(ptr._ptr, size, alignment, addr._ptr[0], flags)
 *     return (CUresult(err), ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16242
 *     """
 *     cdef CUdeviceptr ptr = CUdeviceptr()
 *     err = ccuda.cuMemAddressReserve(ptr._ptr, size, alignment, addr._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), ptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemAddressReserve(__pyx_v_ptr->_ptr, __pyx_v_size, __pyx_v_alignment, (__pyx_v_addr->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16242, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":16243
 *     cdef CUdeviceptr ptr = CUdeviceptr()
 *     err = ccuda.cuMemAddressReserve(ptr._ptr, size, alignment, addr._ptr[0], flags)
 *     return (CUresult(err), ptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_ptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_ptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_ptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16204
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressReserve(size_t size, size_t alignment, addr not None : CUdeviceptr, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Allocate an address range reservation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAddressReserve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16246
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressFree(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Free an address range reservation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_261cuMemAddressFree(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_260cuMemAddressFree[] = "cuMemAddressFree(CUdeviceptr ptr: CUdeviceptr, size_t size)\n Free an address range reservation.\n\n    Frees a virtual address range reserved by cuMemAddressReserve. The size\n    must match what was given to memAddressReserve and the ptr given must\n    match what was returned from memAddressReserve.\n\n    Parameters\n    ----------\n    ptr : CUdeviceptr\n        Starting address of the virtual address range to free\n    size : size_t\n        Size of the virtual address region to free\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemAddressReserve\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_261cuMemAddressFree = {"cuMemAddressFree", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_261cuMemAddressFree, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_260cuMemAddressFree};
static PyObject *__pyx_pw_4cuda_4cuda_261cuMemAddressFree(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  size_t __pyx_v_size;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAddressFree (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr_2,&__pyx_n_s_size_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAddressFree", 1, 2, 2, 1); __PYX_ERR(0, 16246, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAddressFree") < 0)) __PYX_ERR(0, 16246, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16246, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAddressFree", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16246, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAddressFree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 16246, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_260cuMemAddressFree(__pyx_self, __pyx_v_ptr, __pyx_v_size);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_260cuMemAddressFree(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__644)
  __Pyx_RefNannySetupContext("cuMemAddressFree", 0);
  __Pyx_TraceCall("cuMemAddressFree", __pyx_f[0], 16246, 0, __PYX_ERR(0, 16246, __pyx_L1_error));

  /* "cuda/cuda.pyx":16276
 *     cuMemAddressReserve
 *     """
 *     err = ccuda.cuMemAddressFree(ptr._ptr[0], size)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemAddressFree((__pyx_v_ptr->_ptr[0]), __pyx_v_size); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16276, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":16277
 *     """
 *     err = ccuda.cuMemAddressFree(ptr._ptr[0], size)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16246
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressFree(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Free an address range reservation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAddressFree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16280
 * 
 * @cython.embedsignature(True)
 * def cuMemCreate(size_t size, prop : CUmemAllocationProp, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA memory handle representing a memory allocation of a given size described by the given properties.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_263cuMemCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_262cuMemCreate[] = "cuMemCreate(size_t size, CUmemAllocationProp prop: CUmemAllocationProp, unsigned long long flags)\n Create a CUDA memory handle representing a memory allocation of a given size described by the given properties.\n\n    This creates a memory allocation on the target device specified through\n    the `prop` strcuture. The created allocation will not have any device\n    or host mappings. The generic memory `handle` for the allocation can be\n    mapped to the address space of calling process via cuMemMap. This\n    handle cannot be transmitted directly to other processes (see\n    cuMemExportToShareableHandle). On Windows, the caller must also pass an\n    LPSECURITYATTRIBUTE in `prop` to be associated with this handle which\n    limits or allows access to this handle for a recepient process (see\n    CUmemAllocationProp::win32HandleMetaData for more). The `size` of this\n    allocation must be a multiple of the the value given via\n    cuMemGetAllocationGranularity with the CU_MEM_ALLOC_GRANULARITY_MINIMUM\n    flag. If CUmemAllocationProp::allocFlags::usage contains\n    CU_MEM_CREATE_USAGE_TILE_POOL flag then the memory allocation is\n    intended only to be used as backing tile pool for sparse CUDA arrays\n    and sparse CUDA mipmapped arrays. (see cuMemMapArrayAsync).\n\n    Parameters\n    ----------\n    size : size_t\n        Size of the allocation requested\n    prop : CUmemAllocationProp\n        Properties of the allocation to create.\n    flags : unsigned long long\n        flags for future use, must be zero now.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    handle : CUmemGenericAllocationHandle\n        Value of handle returned. All operations on this allocation are to\n        be performed using"" this handle.\n\n    See Also\n    --------\n    cuMemRelease\n    cuMemExportToShareableHandle\n    cuMemImportFromShareableHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_263cuMemCreate = {"cuMemCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_263cuMemCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_262cuMemCreate};
static PyObject *__pyx_pw_4cuda_4cuda_263cuMemCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_size;
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemCreate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size_2,&__pyx_n_s_prop,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prop)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemCreate", 1, 3, 3, 1); __PYX_ERR(0, 16280, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemCreate", 1, 3, 3, 2); __PYX_ERR(0, 16280, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemCreate") < 0)) __PYX_ERR(0, 16280, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16280, __pyx_L3_error)
    __pyx_v_prop = ((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *)values[1]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[2]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 16280, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemCreate", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16280, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_prop), __pyx_ptype_4cuda_4cuda_CUmemAllocationProp, 1, "prop", 0))) __PYX_ERR(0, 16280, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_262cuMemCreate(__pyx_self, __pyx_v_size, __pyx_v_prop, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_262cuMemCreate(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_size, struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop, unsigned PY_LONG_LONG __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle = 0;
  __pyx_t_4cuda_5ccuda_CUmemAllocationProp *__pyx_v_cprop_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__645)
  __Pyx_RefNannySetupContext("cuMemCreate", 0);
  __Pyx_TraceCall("cuMemCreate", __pyx_f[0], 16280, 0, __PYX_ERR(0, 16280, __pyx_L1_error));

  /* "cuda/cuda.pyx":16329
 *     cuMemImportFromShareableHandle
 *     """
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL
 *     err = ccuda.cuMemCreate(handle._ptr, size, cprop_ptr, flags)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16330
 *     """
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemCreate(handle._ptr, size, cprop_ptr, flags)
 *     return (CUresult(err), handle)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_prop), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16330, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 16330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_prop->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cprop_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":16331
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL
 *     err = ccuda.cuMemCreate(handle._ptr, size, cprop_ptr, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), handle)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemCreate(__pyx_v_handle->_ptr, __pyx_v_size, __pyx_v_cprop_ptr, __pyx_v_flags); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16331, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":16332
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL
 *     err = ccuda.cuMemCreate(handle._ptr, size, cprop_ptr, flags)
 *     return (CUresult(err), handle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_handle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_handle));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_handle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16280
 * 
 * @cython.embedsignature(True)
 * def cuMemCreate(size_t size, prop : CUmemAllocationProp, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA memory handle representing a memory allocation of a given size described by the given properties.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_handle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16335
 * 
 * @cython.embedsignature(True)
 * def cuMemRelease(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Release a memory handle representing a memory allocation which was previously allocated through cuMemCreate.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_265cuMemRelease(PyObject *__pyx_self, PyObject *__pyx_v_handle); /*proto*/
static char __pyx_doc_4cuda_4cuda_264cuMemRelease[] = "cuMemRelease(CUmemGenericAllocationHandle handle: CUmemGenericAllocationHandle)\n Release a memory handle representing a memory allocation which was previously allocated through cuMemCreate.\n\n    Frees the memory that was allocated on a device through cuMemCreate.\n\n    The memory allocation will be freed when all outstanding mappings to\n    the memory are unmapped and when all outstanding references to the\n    handle (including it's shareable counterparts) are also released. The\n    generic memory handle can be freed when there are still outstanding\n    mappings made with this handle. Each time a recepient process imports a\n    shareable handle, it needs to pair it with cuMemRelease for the handle\n    to be freed. If `handle` is not a valid handle the behavior is\n    undefined.\n\n    Parameters\n    ----------\n    handle : CUmemGenericAllocationHandle\n        Value of handle which was returned previously by cuMemCreate.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_265cuMemRelease = {"cuMemRelease", (PyCFunction)__pyx_pw_4cuda_4cuda_265cuMemRelease, METH_O, __pyx_doc_4cuda_4cuda_264cuMemRelease};
static PyObject *__pyx_pw_4cuda_4cuda_265cuMemRelease(PyObject *__pyx_self, PyObject *__pyx_v_handle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemRelease (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle, 0, "handle", 0))) __PYX_ERR(0, 16335, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_264cuMemRelease(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_handle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_264cuMemRelease(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__646)
  __Pyx_RefNannySetupContext("cuMemRelease", 0);
  __Pyx_TraceCall("cuMemRelease", __pyx_f[0], 16335, 0, __PYX_ERR(0, 16335, __pyx_L1_error));

  /* "cuda/cuda.pyx":16370
 *     cuMemCreate
 *     """
 *     err = ccuda.cuMemRelease(handle._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemRelease((__pyx_v_handle->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16370, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":16371
 *     """
 *     err = ccuda.cuMemRelease(handle._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16335
 * 
 * @cython.embedsignature(True)
 * def cuMemRelease(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Release a memory handle representing a memory allocation which was previously allocated through cuMemCreate.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemRelease", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16374
 * 
 * @cython.embedsignature(True)
 * def cuMemMap(ptr not None : CUdeviceptr, size_t size, size_t offset, handle not None : CUmemGenericAllocationHandle, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Maps an allocation handle to a reserved virtual address range.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_267cuMemMap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_266cuMemMap[] = "cuMemMap(CUdeviceptr ptr: CUdeviceptr, size_t size, size_t offset, CUmemGenericAllocationHandle handle: CUmemGenericAllocationHandle, unsigned long long flags)\n Maps an allocation handle to a reserved virtual address range.\n\n    Maps bytes of memory represented by `handle` starting from byte\n    `offset` to `size` to address range [`addr`, `addr` + `size`]. This\n    range must be an address reservation previously reserved with\n    cuMemAddressReserve, and `offset` + `size` must be less than the size\n    of the memory allocation. Both `ptr`, `size`, and `offset` must be a\n    multiple of the value given via cuMemGetAllocationGranularity with the\n    CU_MEM_ALLOC_GRANULARITY_MINIMUM flag.\n\n    Please note calling cuMemMap does not make the address accessible, the\n    caller needs to update accessibility of a contiguous mapped VA range by\n    calling cuMemSetAccess.\n\n    Once a recipient process obtains a shareable memory handle from\n    cuMemImportFromShareableHandle, the process must use cuMemMap to map\n    the memory into its address ranges before setting accessibility with\n    cuMemSetAccess.\n\n    cuMemMap can only create mappings on VA range reservations that are not\n    currently mapped.\n\n    Parameters\n    ----------\n    ptr : CUdeviceptr\n        Address where memory will be mapped.\n    size : size_t\n        Size of the memory mapping.\n    offset : size_t\n        Offset into the memory represented by `handle` from which to start\n        mapping Note: currently must be zero.\n    handle : CUmemGenericAllocationHandle\n        Handle to a shareable memory\n    flags : unsigned long long\n        flags for future use, must be zero now.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED""\n    None\n        None\n\n    See Also\n    --------\n    cuMemUnmap\n    cuMemSetAccess\n    cuMemCreate\n    cuMemAddressReserve\n    cuMemImportFromShareableHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_267cuMemMap = {"cuMemMap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_267cuMemMap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_266cuMemMap};
static PyObject *__pyx_pw_4cuda_4cuda_267cuMemMap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  size_t __pyx_v_size;
  size_t __pyx_v_offset;
  struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemMap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr_2,&__pyx_n_s_size_2,&__pyx_n_s_offset_2,&__pyx_n_s_handle_2,&__pyx_n_s_flags_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemMap", 1, 5, 5, 1); __PYX_ERR(0, 16374, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemMap", 1, 5, 5, 2); __PYX_ERR(0, 16374, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handle_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemMap", 1, 5, 5, 3); __PYX_ERR(0, 16374, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemMap", 1, 5, 5, 4); __PYX_ERR(0, 16374, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemMap") < 0)) __PYX_ERR(0, 16374, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16374, __pyx_L3_error)
    __pyx_v_offset = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_offset == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16374, __pyx_L3_error)
    __pyx_v_handle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)values[3]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[4]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 16374, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemMap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16374, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemMap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 16374, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle, 0, "handle", 0))) __PYX_ERR(0, 16374, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_266cuMemMap(__pyx_self, __pyx_v_ptr, __pyx_v_size, __pyx_v_offset, __pyx_v_handle, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_266cuMemMap(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size, size_t __pyx_v_offset, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle, unsigned PY_LONG_LONG __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__647)
  __Pyx_RefNannySetupContext("cuMemMap", 0);
  __Pyx_TraceCall("cuMemMap", __pyx_f[0], 16374, 0, __PYX_ERR(0, 16374, __pyx_L1_error));

  /* "cuda/cuda.pyx":16433
 *     cuMemImportFromShareableHandle
 *     """
 *     err = ccuda.cuMemMap(ptr._ptr[0], size, offset, handle._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemMap((__pyx_v_ptr->_ptr[0]), __pyx_v_size, __pyx_v_offset, (__pyx_v_handle->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16433, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":16434
 *     """
 *     err = ccuda.cuMemMap(ptr._ptr[0], size, offset, handle._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16374
 * 
 * @cython.embedsignature(True)
 * def cuMemMap(ptr not None : CUdeviceptr, size_t size, size_t offset, handle not None : CUmemGenericAllocationHandle, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Maps an allocation handle to a reserved virtual address range.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemMap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16437
 * 
 * @cython.embedsignature(True)
 * def cuMemMapArrayAsync(mapInfoList : List[CUarrayMapInfo], unsigned int count, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_269cuMemMapArrayAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_268cuMemMapArrayAsync[] = "cuMemMapArrayAsync(mapInfoList: List[CUarrayMapInfo], unsigned int count, CUstream hStream: CUstream)\n Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.\n\n    Performs map or unmap operations on subregions of sparse CUDA arrays\n    and sparse CUDA mipmapped arrays. Each operation is specified by a\n    CUarrayMapInfo entry in the `mapInfoList` array of size `count`. The\n    structure CUarrayMapInfo is defined as follow:\n    typedefstructCUarrayMapInfo_st{ CUresourcetyperesourceType; union{\n    CUmipmappedArraymipmap; CUarrayarray; }resource;\n    CUarraySparseSubresourceTypesubresourceType; union{ struct{\n    unsignedintlevel; unsignedintlayer; unsignedintoffsetX;\n    unsignedintoffsetY; unsignedintoffsetZ; unsignedintextentWidth;\n    unsignedintextentHeight; unsignedintextentDepth; }sparseLevel; struct{\n    unsignedintlayer; unsignedlonglongoffset; unsignedlonglongsize;\n    }miptail; }subresource;  CUmemOperationTypememOperationType;\n    CUmemHandleTypememHandleType; union{\n    CUmemGenericAllocationHandlememHandle; }memHandle;\n    unsignedlonglongoffset; unsignedintdeviceBitMask; unsignedintflags;\n    unsignedintreserved[2]; }CUarrayMapInfo;\n\n    where CUarrayMapInfo::resourceType specifies the type of resource to be\n    operated on. If CUarrayMapInfo::resourceType is set to\n    CUresourcetype::CU_RESOURCE_TYPE_ARRAY then\n    CUarrayMapInfo::resource::array must be set to a valid sparse CUDA\n    array handle. The CUDA array must be either a 2D, 2D layered or 3D CUDA\n    array and must have been allocated using cuArrayCreate or\n    cuArray3DCreate with the flag CUDA_ARRAY3D_SPARSE. For CUDA arrays\n    obtained using cuMipmappedArrayGetLevel, CUDA_ERROR_INVALID_VALUE will\n    be returned. If CUarrayMapInfo::resourceType is set to\n    CUresourcetype::CU_RESOURCE_TYPE_MIPMAPPED_ARRAY then\n    CUarrayMapInfo::resource::mipmap must be set to a valid sparse CUDA\n    mipmapped array handle. The CUDA mipmapped arr""ay must be either a 2D,\n    2D layered or 3D CUDA mipmapped array and must have been allocated\n    using cuMipmappedArrayCreate with the flag CUDA_ARRAY3D_SPARSE.\n\n    CUarrayMapInfo::subresourceType specifies the type of subresource\n    within the resource. CUarraySparseSubresourceType_enum is defined as:\n    typedefenumCUarraySparseSubresourceType_enum{\n    CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL=0,\n    CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL=1\n    }CUarraySparseSubresourceType;\n\n    where CUarraySparseSubresourceType::CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SP\n    ARSE_LEVEL indicates a sparse-miplevel which spans at least one tile in\n    every dimension. The remaining miplevels which are too small to span at\n    least one tile in any dimension constitute the mip tail region as\n    indicated by\n    CUarraySparseSubresourceType::CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL\n    subresource type.\n\n    If CUarrayMapInfo::subresourceType is set to CUarraySparseSubresourceTy\n    pe::CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL then\n    CUarrayMapInfo::subresource::sparseLevel struct must contain valid\n    array subregion offsets and extents. The\n    CUarrayMapInfo::subresource::sparseLevel::offsetX,\n    CUarrayMapInfo::subresource::sparseLevel::offsetY and\n    CUarrayMapInfo::subresource::sparseLevel::offsetZ must specify valid X,\n    Y and Z offsets respectively. The\n    CUarrayMapInfo::subresource::sparseLevel::extentWidth,\n    CUarrayMapInfo::subresource::sparseLevel::extentHeight and\n    CUarrayMapInfo::subresource::sparseLevel::extentDepth must specify\n    valid width, height and depth extents respectively. These offsets and\n    extents must be aligned to the corresponding tile dimension. For CUDA\n    mipmapped arrays CUarrayMapInfo::subresource::sparseLevel::level must\n    specify a valid mip level index. Otherwise, must be zero. For layered\n    CUDA arrays and layered CUDA mipmapped arrays\n    CUarrayMapInfo::subresource::sparseLe""vel::layer must specify a valid\n    layer index. Otherwise, must be zero.\n    CUarrayMapInfo::subresource::sparseLevel::offsetZ must be zero and\n    CUarrayMapInfo::subresource::sparseLevel::extentDepth must be set to 1\n    for 2D and 2D layered CUDA arrays and CUDA mipmapped arrays. Tile\n    extents can be obtained by calling cuArrayGetSparseProperties and\n    cuMipmappedArrayGetSparseProperties\n\n    If CUarrayMapInfo::subresourceType is set to\n    CUarraySparseSubresourceType::CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL\n    then CUarrayMapInfo::subresource::miptail struct must contain valid mip\n    tail offset in CUarrayMapInfo::subresource::miptail::offset and size in\n    CUarrayMapInfo::subresource::miptail::size. Both, mip tail offset and\n    mip tail size must be aligned to the tile size. For layered CUDA\n    mipmapped arrays which don't have the flag\n    CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL set in\n    CUDA_ARRAY_SPARSE_PROPERTIES::flags as returned by\n    cuMipmappedArrayGetSparseProperties,\n    CUarrayMapInfo::subresource::miptail::layer must specify a valid layer\n    index. Otherwise, must be zero.\n\n    CUarrayMapInfo::memOperationType specifies the type of operation.\n    CUmemOperationType is defined as: typedefenumCUmemOperationType_enum{\n    CU_MEM_OPERATION_TYPE_MAP=1, CU_MEM_OPERATION_TYPE_UNMAP=2\n    }CUmemOperationType; If CUarrayMapInfo::memOperationType is set to\n    CUmemOperationType::CU_MEM_OPERATION_TYPE_MAP then the subresource will\n    be mapped onto the tile pool memory specified by\n    CUarrayMapInfo::memHandle at offset CUarrayMapInfo::offset. The tile\n    pool allocation has to be created by specifying the\n    CU_MEM_CREATE_USAGE_TILE_POOL flag when calling cuMemCreate. Also,\n    CUarrayMapInfo::memHandleType must be set to\n    CUmemHandleType::CU_MEM_HANDLE_TYPE_GENERIC.\n\n    If CUarrayMapInfo::memOperationType is set to\n    CUmemOperationType::CU_MEM_OPERATION_TYPE_UNMAP then an unmapping\n    operati""on is performed. CUarrayMapInfo::memHandle must be NULL.\n\n    CUarrayMapInfo::deviceBitMask specifies the list of devices that must\n    map or unmap physical memory. Currently, this mask must have exactly\n    one bit set, and the corresponding device must match the device\n    associated with the stream. If CUarrayMapInfo::memOperationType is set\n    to CUmemOperationType::CU_MEM_OPERATION_TYPE_MAP, the device must also\n    match the device associated with the tile pool memory allocation as\n    specified by CUarrayMapInfo::memHandle.\n\n    CUarrayMapInfo::flags and CUarrayMapInfo::reserved[] are unused and\n    must be set to zero.\n\n    Parameters\n    ----------\n    mapInfoList : List[CUarrayMapInfo]\n        List of CUarrayMapInfo\n    count : unsigned int\n        Count of CUarrayMapInfo in `mapInfoList`\n    hStream : CUstream\n        Stream identifier for the stream to use for map or unmap operations\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuMipmappedArrayCreate\n    cuArrayCreate\n    cuArray3DCreate\n    cuMemCreate\n    cuArrayGetSparseProperties\n    cuMipmappedArrayGetSparseProperties\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_269cuMemMapArrayAsync = {"cuMemMapArrayAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_269cuMemMapArrayAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_268cuMemMapArrayAsync};
static PyObject *__pyx_pw_4cuda_4cuda_269cuMemMapArrayAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_mapInfoList = 0;
  unsigned int __pyx_v_count;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemMapArrayAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mapInfoList,&__pyx_n_s_count,&__pyx_n_s_hStream_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mapInfoList)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemMapArrayAsync", 1, 3, 3, 1); __PYX_ERR(0, 16437, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemMapArrayAsync", 1, 3, 3, 2); __PYX_ERR(0, 16437, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemMapArrayAsync") < 0)) __PYX_ERR(0, 16437, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_mapInfoList = values[0];
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16437, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemMapArrayAsync", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16437, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemMapArrayAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 16437, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_268cuMemMapArrayAsync(__pyx_self, __pyx_v_mapInfoList, __pyx_v_count, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_18cuMemMapArrayAsync_2generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":16579
 *     """
 *     mapInfoList = [] if mapInfoList is None else mapInfoList
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_18cuMemMapArrayAsync_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_11_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_11_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 16579, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_18cuMemMapArrayAsync_2generator5, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuMemMapArrayAsync_locals_genexp, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 16579, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemMapArrayAsync.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_18cuMemMapArrayAsync_2generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 16579, 0, __PYX_ERR(0, 16579, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 16579, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_mapInfoList)) { __Pyx_RaiseClosureNameError("mapInfoList"); __PYX_ERR(0, 16579, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_mapInfoList)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_mapInfoList)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_mapInfoList; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_mapInfoList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16579, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 16579, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 16579, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 16579, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUarrayMapInfo); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16437
 * 
 * @cython.embedsignature(True)
 * def cuMemMapArrayAsync(mapInfoList : List[CUarrayMapInfo], unsigned int count, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_268cuMemMapArrayAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mapInfoList, unsigned int __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUarrayMapInfo *__pyx_v_cmapInfoList;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_18cuMemMapArrayAsync_2generator5 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__648)
  __Pyx_RefNannySetupContext("cuMemMapArrayAsync", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 16437, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuMemMapArrayAsync", __pyx_f[0], 16437, 0, __PYX_ERR(0, 16437, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_mapInfoList = __pyx_v_mapInfoList;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_mapInfoList);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_mapInfoList);

  /* "cuda/cuda.pyx":16578
 *     cuMipmappedArrayGetSparseProperties
 *     """
 *     mapInfoList = [] if mapInfoList is None else mapInfoList             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_mapInfoList == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16578, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_mapInfoList);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_mapInfoList;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_mapInfoList);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_mapInfoList, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16579
 *     """
 *     mapInfoList = [] if mapInfoList is None else mapInfoList
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_18cuMemMapArrayAsync_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 16579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":16580
 *     mapInfoList = [] if mapInfoList is None else mapInfoList
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 *     if len(mapInfoList) > 0:
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__649, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16580, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 16580, __pyx_L1_error)

    /* "cuda/cuda.pyx":16579
 *     """
 *     mapInfoList = [] if mapInfoList is None else mapInfoList
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 */
  }

  /* "cuda/cuda.pyx":16581
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL             # <<<<<<<<<<<<<<
 *     if len(mapInfoList) > 0:
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))
 */
  __pyx_v_cmapInfoList = NULL;

  /* "cuda/cuda.pyx":16582
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 *     if len(mapInfoList) > 0:             # <<<<<<<<<<<<<<
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))
 *         if cmapInfoList is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_mapInfoList;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":16583
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 *     if len(mapInfoList) > 0:
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))             # <<<<<<<<<<<<<<
 *         if cmapInfoList is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(mapInfoList)) + 'x' + str(sizeof(ccuda.CUarrayMapInfo)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_mapInfoList;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16583, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cmapInfoList = ((__pyx_t_4cuda_5ccuda_CUarrayMapInfo *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUarrayMapInfo))));

    /* "cuda/cuda.pyx":16584
 *     if len(mapInfoList) > 0:
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))
 *         if cmapInfoList is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(mapInfoList)) + 'x' + str(sizeof(ccuda.CUarrayMapInfo)))
 *         for idx in range(len(mapInfoList)):
 */
    __pyx_t_4 = ((__pyx_v_cmapInfoList == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":16585
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))
 *         if cmapInfoList is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(mapInfoList)) + 'x' + str(sizeof(ccuda.CUarrayMapInfo)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(mapInfoList)):
 *             memcpy(&cmapInfoList[idx], (<CUarrayMapInfo>mapInfoList[idx])._ptr, sizeof(ccuda.CUarrayMapInfo))
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_mapInfoList;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUarrayMapInfo))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 16585, __pyx_L1_error)

      /* "cuda/cuda.pyx":16584
 *     if len(mapInfoList) > 0:
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))
 *         if cmapInfoList is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(mapInfoList)) + 'x' + str(sizeof(ccuda.CUarrayMapInfo)))
 *         for idx in range(len(mapInfoList)):
 */
    }

    /* "cuda/cuda.pyx":16586
 *         if cmapInfoList is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(mapInfoList)) + 'x' + str(sizeof(ccuda.CUarrayMapInfo)))
 *         for idx in range(len(mapInfoList)):             # <<<<<<<<<<<<<<
 *             memcpy(&cmapInfoList[idx], (<CUarrayMapInfo>mapInfoList[idx])._ptr, sizeof(ccuda.CUarrayMapInfo))
 * 
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_mapInfoList;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16586, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":16587
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(mapInfoList)) + 'x' + str(sizeof(ccuda.CUarrayMapInfo)))
 *         for idx in range(len(mapInfoList)):
 *             memcpy(&cmapInfoList[idx], (<CUarrayMapInfo>mapInfoList[idx])._ptr, sizeof(ccuda.CUarrayMapInfo))             # <<<<<<<<<<<<<<
 * 
 *     if count > len(mapInfoList): raise RuntimeError("List is too small: " + str(len(mapInfoList)) + " < " + str(count))
 */
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_mapInfoList, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      (void)(memcpy((&(__pyx_v_cmapInfoList[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo *)__pyx_t_6)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUarrayMapInfo))));
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }

    /* "cuda/cuda.pyx":16582
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 *     if len(mapInfoList) > 0:             # <<<<<<<<<<<<<<
 *         cmapInfoList = <ccuda.CUarrayMapInfo*> calloc(len(mapInfoList), sizeof(ccuda.CUarrayMapInfo))
 *         if cmapInfoList is NULL:
 */
  }

  /* "cuda/cuda.pyx":16589
 *             memcpy(&cmapInfoList[idx], (<CUarrayMapInfo>mapInfoList[idx])._ptr, sizeof(ccuda.CUarrayMapInfo))
 * 
 *     if count > len(mapInfoList): raise RuntimeError("List is too small: " + str(len(mapInfoList)) + " < " + str(count))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemMapArrayAsync((<CUarrayMapInfo>mapInfoList[0])._ptr if len(mapInfoList) == 1 else cmapInfoList, count, hStream._ptr[0])
 *     if cmapInfoList is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_mapInfoList;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16589, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_count > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_mapInfoList;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 16589, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":16590
 * 
 *     if count > len(mapInfoList): raise RuntimeError("List is too small: " + str(len(mapInfoList)) + " < " + str(count))
 *     err = ccuda.cuMemMapArrayAsync((<CUarrayMapInfo>mapInfoList[0])._ptr if len(mapInfoList) == 1 else cmapInfoList, count, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     if cmapInfoList is not NULL:
 *         free(cmapInfoList)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_mapInfoList;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16590, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_mapInfoList, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo *)__pyx_t_1)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cmapInfoList;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuMemMapArrayAsync(__pyx_t_9, __pyx_v_count, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16590, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":16591
 *     if count > len(mapInfoList): raise RuntimeError("List is too small: " + str(len(mapInfoList)) + " < " + str(count))
 *     err = ccuda.cuMemMapArrayAsync((<CUarrayMapInfo>mapInfoList[0])._ptr if len(mapInfoList) == 1 else cmapInfoList, count, hStream._ptr[0])
 *     if cmapInfoList is not NULL:             # <<<<<<<<<<<<<<
 *         free(cmapInfoList)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = ((__pyx_v_cmapInfoList != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":16592
 *     err = ccuda.cuMemMapArrayAsync((<CUarrayMapInfo>mapInfoList[0])._ptr if len(mapInfoList) == 1 else cmapInfoList, count, hStream._ptr[0])
 *     if cmapInfoList is not NULL:
 *         free(cmapInfoList)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cmapInfoList);

    /* "cuda/cuda.pyx":16591
 *     if count > len(mapInfoList): raise RuntimeError("List is too small: " + str(len(mapInfoList)) + " < " + str(count))
 *     err = ccuda.cuMemMapArrayAsync((<CUarrayMapInfo>mapInfoList[0])._ptr if len(mapInfoList) == 1 else cmapInfoList, count, hStream._ptr[0])
 *     if cmapInfoList is not NULL:             # <<<<<<<<<<<<<<
 *         free(cmapInfoList)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":16593
 *     if cmapInfoList is not NULL:
 *         free(cmapInfoList)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16437
 * 
 * @cython.embedsignature(True)
 * def cuMemMapArrayAsync(mapInfoList : List[CUarrayMapInfo], unsigned int count, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuMemMapArrayAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_18cuMemMapArrayAsync_2generator5);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16596
 * 
 * @cython.embedsignature(True)
 * def cuMemUnmap(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Unmap the backing memory of a given address range.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_271cuMemUnmap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_270cuMemUnmap[] = "cuMemUnmap(CUdeviceptr ptr: CUdeviceptr, size_t size)\n Unmap the backing memory of a given address range.\n\n    The range must be the entire contiguous address range that was mapped\n    to. In other words, cuMemUnmap cannot unmap a sub-range of an address\n    range mapped by cuMemCreate / cuMemMap. Any backing memory allocations\n    will be freed if there are no existing mappings and there are no\n    unreleased memory handles.\n\n    When cuMemUnmap returns successfully the address range is converted to\n    an address reservation and can be used for a future calls to cuMemMap.\n    Any new mapping to this virtual address will need to have access\n    granted through cuMemSetAccess, as all mappings start with no\n    accessibility setup.\n\n    Parameters\n    ----------\n    ptr : CUdeviceptr\n        Starting address for the virtual address range to unmap\n    size : size_t\n        Size of the virtual address range to unmap\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemCreate\n    cuMemAddressReserve\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_271cuMemUnmap = {"cuMemUnmap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_271cuMemUnmap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_270cuMemUnmap};
static PyObject *__pyx_pw_4cuda_4cuda_271cuMemUnmap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  size_t __pyx_v_size;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemUnmap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr_2,&__pyx_n_s_size_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemUnmap", 1, 2, 2, 1); __PYX_ERR(0, 16596, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemUnmap") < 0)) __PYX_ERR(0, 16596, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16596, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemUnmap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16596, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemUnmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 16596, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_270cuMemUnmap(__pyx_self, __pyx_v_ptr, __pyx_v_size);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_270cuMemUnmap(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__650)
  __Pyx_RefNannySetupContext("cuMemUnmap", 0);
  __Pyx_TraceCall("cuMemUnmap", __pyx_f[0], 16596, 0, __PYX_ERR(0, 16596, __pyx_L1_error));

  /* "cuda/cuda.pyx":16635
 *     cuMemAddressReserve
 *     """
 *     err = ccuda.cuMemUnmap(ptr._ptr[0], size)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemUnmap((__pyx_v_ptr->_ptr[0]), __pyx_v_size); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16635, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":16636
 *     """
 *     err = ccuda.cuMemUnmap(ptr._ptr[0], size)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16596
 * 
 * @cython.embedsignature(True)
 * def cuMemUnmap(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Unmap the backing memory of a given address range.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemUnmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16639
 * 
 * @cython.embedsignature(True)
 * def cuMemSetAccess(ptr not None : CUdeviceptr, size_t size, desc : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Set the access flags for each location specified in `desc` for the given virtual address range.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_273cuMemSetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_272cuMemSetAccess[] = "cuMemSetAccess(CUdeviceptr ptr: CUdeviceptr, size_t size, desc: List[CUmemAccessDesc], size_t count)\n Set the access flags for each location specified in `desc` for the given virtual address range.\n\n    Given the virtual address range via `ptr` and `size`, and the locations\n    in the array given by `desc` and `count`, set the access flags for the\n    target locations. The range must be a fully mapped address range\n    containing all allocations created by cuMemMap / cuMemCreate.\n\n    Parameters\n    ----------\n    ptr : CUdeviceptr\n        Starting address for the virtual address range\n    size : size_t\n        Length of the virtual address range\n    desc : List[CUmemAccessDesc]\n        Array of CUmemAccessDesc that describe how to change the mapping\n        for each location specified\n    count : size_t\n        Number of CUmemAccessDesc in `desc`\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemSetAccess\n    cuMemCreate\n    cuMemMap\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_273cuMemSetAccess = {"cuMemSetAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_273cuMemSetAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_272cuMemSetAccess};
static PyObject *__pyx_pw_4cuda_4cuda_273cuMemSetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  size_t __pyx_v_size;
  PyObject *__pyx_v_desc = 0;
  size_t __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemSetAccess (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr_2,&__pyx_n_s_size_2,&__pyx_n_s_desc,&__pyx_n_s_count,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemSetAccess", 1, 4, 4, 1); __PYX_ERR(0, 16639, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_desc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemSetAccess", 1, 4, 4, 2); __PYX_ERR(0, 16639, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemSetAccess", 1, 4, 4, 3); __PYX_ERR(0, 16639, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemSetAccess") < 0)) __PYX_ERR(0, 16639, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_size = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16639, __pyx_L3_error)
    __pyx_v_desc = values[2];
    __pyx_v_count = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_count == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16639, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemSetAccess", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16639, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemSetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 16639, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_272cuMemSetAccess(__pyx_self, __pyx_v_ptr, __pyx_v_size, __pyx_v_desc, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_14cuMemSetAccess_2generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":16676
 *     """
 *     desc = [] if desc is None else desc
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_14cuMemSetAccess_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_13_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_13_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 16676, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_14cuMemSetAccess_2generator6, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuMemSetAccess_locals_genexpr, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 16676, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemSetAccess.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_14cuMemSetAccess_2generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 16676, 0, __PYX_ERR(0, 16676, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 16676, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_desc)) { __Pyx_RaiseClosureNameError("desc"); __PYX_ERR(0, 16676, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_desc)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_desc)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_desc; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_desc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16676, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 16676, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16676, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 16676, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16676, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 16676, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUmemAccessDesc); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16639
 * 
 * @cython.embedsignature(True)
 * def cuMemSetAccess(ptr not None : CUdeviceptr, size_t size, desc : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Set the access flags for each location specified in `desc` for the given virtual address range.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_272cuMemSetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr, size_t __pyx_v_size, PyObject *__pyx_v_desc, size_t __pyx_v_count) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUmemAccessDesc *__pyx_v_cdesc;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_14cuMemSetAccess_2generator6 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__651)
  __Pyx_RefNannySetupContext("cuMemSetAccess", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 16639, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuMemSetAccess", __pyx_f[0], 16639, 0, __PYX_ERR(0, 16639, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_desc = __pyx_v_desc;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_desc);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_desc);

  /* "cuda/cuda.pyx":16675
 *     cuMemMap
 *     """
 *     desc = [] if desc is None else desc             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_desc == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_desc);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_desc;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_desc);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_desc, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16676
 *     """
 *     desc = [] if desc is None else desc
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_14cuMemSetAccess_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 16676, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":16677
 *     desc = [] if desc is None else desc
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 *     if len(desc) > 0:
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__652, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 16677, __pyx_L1_error)

    /* "cuda/cuda.pyx":16676
 *     """
 *     desc = [] if desc is None else desc
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 */
  }

  /* "cuda/cuda.pyx":16678
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL             # <<<<<<<<<<<<<<
 *     if len(desc) > 0:
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))
 */
  __pyx_v_cdesc = NULL;

  /* "cuda/cuda.pyx":16679
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 *     if len(desc) > 0:             # <<<<<<<<<<<<<<
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))
 *         if cdesc is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_desc;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16679, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":16680
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 *     if len(desc) > 0:
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))             # <<<<<<<<<<<<<<
 *         if cdesc is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(desc)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_desc;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16680, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdesc = ((__pyx_t_4cuda_5ccuda_CUmemAccessDesc *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))));

    /* "cuda/cuda.pyx":16681
 *     if len(desc) > 0:
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))
 *         if cdesc is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(desc)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(desc)):
 */
    __pyx_t_4 = ((__pyx_v_cdesc == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":16682
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))
 *         if cdesc is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(desc)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(desc)):
 *             memcpy(&cdesc[idx], (<CUmemAccessDesc>desc[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_desc;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 16682, __pyx_L1_error)

      /* "cuda/cuda.pyx":16681
 *     if len(desc) > 0:
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))
 *         if cdesc is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(desc)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(desc)):
 */
    }

    /* "cuda/cuda.pyx":16683
 *         if cdesc is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(desc)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(desc)):             # <<<<<<<<<<<<<<
 *             memcpy(&cdesc[idx], (<CUmemAccessDesc>desc[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 * 
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_desc;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16683, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":16684
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(desc)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(desc)):
 *             memcpy(&cdesc[idx], (<CUmemAccessDesc>desc[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))             # <<<<<<<<<<<<<<
 * 
 *     if count > <size_t>len(desc): raise RuntimeError("List is too small: " + str(len(desc)) + " < " + str(count))
 */
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_desc, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16684, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      (void)(memcpy((&(__pyx_v_cdesc[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc *)__pyx_t_6)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))));
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }

    /* "cuda/cuda.pyx":16679
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 *     if len(desc) > 0:             # <<<<<<<<<<<<<<
 *         cdesc = <ccuda.CUmemAccessDesc*> calloc(len(desc), sizeof(ccuda.CUmemAccessDesc))
 *         if cdesc is NULL:
 */
  }

  /* "cuda/cuda.pyx":16686
 *             memcpy(&cdesc[idx], (<CUmemAccessDesc>desc[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 * 
 *     if count > <size_t>len(desc): raise RuntimeError("List is too small: " + str(len(desc)) + " < " + str(count))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemSetAccess(ptr._ptr[0], size, (<CUmemAccessDesc>desc[0])._ptr if len(desc) == 1 else cdesc, count)
 *     if cdesc is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_desc;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_count > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_desc;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 16686, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":16687
 * 
 *     if count > <size_t>len(desc): raise RuntimeError("List is too small: " + str(len(desc)) + " < " + str(count))
 *     err = ccuda.cuMemSetAccess(ptr._ptr[0], size, (<CUmemAccessDesc>desc[0])._ptr if len(desc) == 1 else cdesc, count)             # <<<<<<<<<<<<<<
 *     if cdesc is not NULL:
 *         free(cdesc)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_desc;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_desc, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16687, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc *)__pyx_t_1)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdesc;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuMemSetAccess((__pyx_v_ptr->_ptr[0]), __pyx_v_size, __pyx_t_9, __pyx_v_count); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16687, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":16688
 *     if count > <size_t>len(desc): raise RuntimeError("List is too small: " + str(len(desc)) + " < " + str(count))
 *     err = ccuda.cuMemSetAccess(ptr._ptr[0], size, (<CUmemAccessDesc>desc[0])._ptr if len(desc) == 1 else cdesc, count)
 *     if cdesc is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdesc)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = ((__pyx_v_cdesc != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":16689
 *     err = ccuda.cuMemSetAccess(ptr._ptr[0], size, (<CUmemAccessDesc>desc[0])._ptr if len(desc) == 1 else cdesc, count)
 *     if cdesc is not NULL:
 *         free(cdesc)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cdesc);

    /* "cuda/cuda.pyx":16688
 *     if count > <size_t>len(desc): raise RuntimeError("List is too small: " + str(len(desc)) + " < " + str(count))
 *     err = ccuda.cuMemSetAccess(ptr._ptr[0], size, (<CUmemAccessDesc>desc[0])._ptr if len(desc) == 1 else cdesc, count)
 *     if cdesc is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdesc)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":16690
 *     if cdesc is not NULL:
 *         free(cdesc)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16639
 * 
 * @cython.embedsignature(True)
 * def cuMemSetAccess(ptr not None : CUdeviceptr, size_t size, desc : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Set the access flags for each location specified in `desc` for the given virtual address range.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuMemSetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_14cuMemSetAccess_2generator6);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16693
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAccess(location : CUmemLocation, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get the access `flags` set for the given `location` and `ptr`.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_275cuMemGetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_274cuMemGetAccess[] = "cuMemGetAccess(CUmemLocation location: CUmemLocation, CUdeviceptr ptr: CUdeviceptr)\n Get the access `flags` set for the given `location` and `ptr`.\n\n    Parameters\n    ----------\n    location : CUmemLocation\n        Location in which to check the flags for\n    ptr : CUdeviceptr\n        Address in which to check the access flags for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    flags : unsigned long long\n        Flags set for this location\n\n    See Also\n    --------\n    cuMemSetAccess\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_275cuMemGetAccess = {"cuMemGetAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_275cuMemGetAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_274cuMemGetAccess};
static PyObject *__pyx_pw_4cuda_4cuda_275cuMemGetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemGetAccess (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_location_2,&__pyx_n_s_ptr_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_location_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemGetAccess", 1, 2, 2, 1); __PYX_ERR(0, 16693, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemGetAccess") < 0)) __PYX_ERR(0, 16693, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)values[0]);
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemGetAccess", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16693, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemGetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_location), __pyx_ptype_4cuda_4cuda_CUmemLocation, 1, "location", 0))) __PYX_ERR(0, 16693, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 16693, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_274cuMemGetAccess(__pyx_self, __pyx_v_location, __pyx_v_ptr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_274cuMemGetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr) {
  unsigned PY_LONG_LONG __pyx_v_flags;
  __pyx_t_4cuda_5ccuda_CUmemLocation *__pyx_v_clocation_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUmemLocation_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__653)
  __Pyx_RefNannySetupContext("cuMemGetAccess", 0);
  __Pyx_TraceCall("cuMemGetAccess", __pyx_f[0], 16693, 0, __PYX_ERR(0, 16693, __pyx_L1_error));

  /* "cuda/cuda.pyx":16720
 *     cuMemSetAccess
 *     """
 *     cdef unsigned long long flags = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL
 *     err = ccuda.cuMemGetAccess(&flags, clocation_ptr, ptr._ptr[0])
 */
  __pyx_v_flags = 0;

  /* "cuda/cuda.pyx":16721
 *     """
 *     cdef unsigned long long flags = 0
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemGetAccess(&flags, clocation_ptr, ptr._ptr[0])
 *     return (CUresult(err), flags)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_location), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16721, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 16721, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_location->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_clocation_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":16722
 *     cdef unsigned long long flags = 0
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL
 *     err = ccuda.cuMemGetAccess(&flags, clocation_ptr, ptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), flags)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemGetAccess((&__pyx_v_flags), __pyx_v_clocation_ptr, (__pyx_v_ptr->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16722, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":16723
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL
 *     err = ccuda.cuMemGetAccess(&flags, clocation_ptr, ptr._ptr[0])
 *     return (CUresult(err), flags)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16693
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAccess(location : CUmemLocation, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get the access `flags` set for the given `location` and `ptr`.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemGetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16726
 * 
 * @cython.embedsignature(True)
 * def cuMemExportToShareableHandle(handle not None : CUmemGenericAllocationHandle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports an allocation to a requested shareable handle type.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_277cuMemExportToShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_276cuMemExportToShareableHandle[] = "cuMemExportToShareableHandle(CUmemGenericAllocationHandle handle: CUmemGenericAllocationHandle, handleType: CUmemAllocationHandleType, unsigned long long flags)\n Exports an allocation to a requested shareable handle type.\n\n    Given a CUDA memory handle, create a shareable memory allocation handle\n    that can be used to share the memory with other processes. The\n    recipient process can convert the shareable handle back into a CUDA\n    memory handle using cuMemImportFromShareableHandle and map it with\n    cuMemMap. The implementation of what this handle is and how it can be\n    transferred is defined by the requested handle type in `handleType`\n\n    Once all shareable handles are closed and the allocation is released,\n    the allocated memory referenced will be released back to the OS and\n    uses of the CUDA handle afterward will lead to undefined behavior.\n\n    This API can also be used in conjunction with other APIs (e.g. Vulkan,\n    OpenGL) that support importing memory from the shareable type\n\n    Parameters\n    ----------\n    shareableHandle : CUmemGenericAllocationHandle\n        Pointer to the location in which to store the requested handle type\n    handle : CUmemGenericAllocationHandle\n        CUDA handle for the memory allocation\n    handleType : CUmemAllocationHandleType\n        Type of shareable handle requested (defines type and size of the\n        `shareableHandle` output parameter)\n    flags : unsigned long long\n        Reserved, must be zero\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuMemImportFromShareableHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_277cuMemExportToShareableHandle = {"cuMemExportToShareableHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_277cuMemExportToShareableHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_276cuMemExportToShareableHandle};
static PyObject *__pyx_pw_4cuda_4cuda_277cuMemExportToShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle = 0;
  PyObject *__pyx_v_handleType = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemExportToShareableHandle (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handle_2,&__pyx_n_s_handleType,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handle_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handleType)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemExportToShareableHandle", 1, 3, 3, 1); __PYX_ERR(0, 16726, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemExportToShareableHandle", 1, 3, 3, 2); __PYX_ERR(0, 16726, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemExportToShareableHandle") < 0)) __PYX_ERR(0, 16726, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_handle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)values[0]);
    __pyx_v_handleType = values[1];
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[2]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 16726, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemExportToShareableHandle", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16726, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemExportToShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle, 0, "handle", 0))) __PYX_ERR(0, 16726, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_handleType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "handleType"); __PYX_ERR(0, 16726, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_276cuMemExportToShareableHandle(__pyx_self, __pyx_v_handle, __pyx_v_handleType, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_276cuMemExportToShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle, PyObject *__pyx_v_handleType, unsigned PY_LONG_LONG __pyx_v_flags) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_shareableHandle;
  void *__pyx_v_cshareableHandle_ptr;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_v_chandleType;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__654)
  __Pyx_RefNannySetupContext("cuMemExportToShareableHandle", 0);
  __Pyx_TraceCall("cuMemExportToShareableHandle", __pyx_f[0], 16726, 0, __PYX_ERR(0, 16726, __pyx_L1_error));

  /* "cuda/cuda.pyx":16771
 *     cuMemImportFromShareableHandle
 *     """
 *     cdef void_ptr shareableHandle = 0             # <<<<<<<<<<<<<<
 *     cdef void* cshareableHandle_ptr = <void*>shareableHandle
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 */
  __pyx_v_shareableHandle = 0;

  /* "cuda/cuda.pyx":16772
 *     """
 *     cdef void_ptr shareableHandle = 0
 *     cdef void* cshareableHandle_ptr = <void*>shareableHandle             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemExportToShareableHandle(cshareableHandle_ptr, handle._ptr[0], chandleType, flags)
 */
  __pyx_v_cshareableHandle_ptr = ((void *)__pyx_v_shareableHandle);

  /* "cuda/cuda.pyx":16773
 *     cdef void_ptr shareableHandle = 0
 *     cdef void* cshareableHandle_ptr = <void*>shareableHandle
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemExportToShareableHandle(cshareableHandle_ptr, handle._ptr[0], chandleType, flags)
 *     return (CUresult(err), shareableHandle)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_handleType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 16773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_chandleType = __pyx_t_2;

  /* "cuda/cuda.pyx":16774
 *     cdef void* cshareableHandle_ptr = <void*>shareableHandle
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemExportToShareableHandle(cshareableHandle_ptr, handle._ptr[0], chandleType, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), shareableHandle)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemExportToShareableHandle(__pyx_v_cshareableHandle_ptr, (__pyx_v_handle->_ptr[0]), __pyx_v_chandleType, __pyx_v_flags); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16774, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":16775
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemExportToShareableHandle(cshareableHandle_ptr, handle._ptr[0], chandleType, flags)
 *     return (CUresult(err), shareableHandle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_shareableHandle); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16726
 * 
 * @cython.embedsignature(True)
 * def cuMemExportToShareableHandle(handle not None : CUmemGenericAllocationHandle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports an allocation to a requested shareable handle type.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemExportToShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16778
 * 
 * @cython.embedsignature(True)
 * def cuMemImportFromShareableHandle(osHandle, shHandleType not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *     """ Imports an allocation from a requested shareable handle type.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_279cuMemImportFromShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_278cuMemImportFromShareableHandle[] = "cuMemImportFromShareableHandle(osHandle, shHandleType: CUmemAllocationHandleType)\n Imports an allocation from a requested shareable handle type.\n\n    If the current process cannot support the memory described by this\n    shareable handle, this API will error as CUDA_ERROR_NOT_SUPPORTED.\n\n    Parameters\n    ----------\n    osHandle : Any\n        Shareable Handle representing the memory allocation that is to be\n        imported.\n    shHandleType : CUmemAllocationHandleType\n        handle type of the exported handle CUmemAllocationHandleType.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    handle : CUmemGenericAllocationHandle\n        CUDA Memory handle for the memory allocation.\n\n    See Also\n    --------\n    cuMemExportToShareableHandle\n    cuMemMap\n    cuMemRelease\n\n    Notes\n    -----\n    Importing shareable handles exported from some graphics APIs(VUlkan, OpenGL, etc) created on devices under an SLI group may not be supported, and thus this API will return CUDA_ERROR_NOT_SUPPORTED. There is no guarantee that the contents of `handle` will be the same CUDA memory handle for the same given OS shareable handle, or the same underlying allocation.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_279cuMemImportFromShareableHandle = {"cuMemImportFromShareableHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_279cuMemImportFromShareableHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_278cuMemImportFromShareableHandle};
static PyObject *__pyx_pw_4cuda_4cuda_279cuMemImportFromShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_osHandle = 0;
  PyObject *__pyx_v_shHandleType = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemImportFromShareableHandle (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_osHandle,&__pyx_n_s_shHandleType,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_osHandle)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shHandleType)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemImportFromShareableHandle", 1, 2, 2, 1); __PYX_ERR(0, 16778, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemImportFromShareableHandle") < 0)) __PYX_ERR(0, 16778, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_osHandle = values[0];
    __pyx_v_shHandleType = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemImportFromShareableHandle", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16778, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemImportFromShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_shHandleType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "shHandleType"); __PYX_ERR(0, 16778, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_278cuMemImportFromShareableHandle(__pyx_self, __pyx_v_osHandle, __pyx_v_shHandleType);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_278cuMemImportFromShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_osHandle, PyObject *__pyx_v_shHandleType) {
  struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle = 0;
  PyObject *__pyx_v_cosHandle = NULL;
  void *__pyx_v_cosHandle_ptr;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_v_cshHandleType;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__655)
  __Pyx_RefNannySetupContext("cuMemImportFromShareableHandle", 0);
  __Pyx_TraceCall("cuMemImportFromShareableHandle", __pyx_f[0], 16778, 0, __PYX_ERR(0, 16778, __pyx_L1_error));

  /* "cuda/cuda.pyx":16815
 * 
 *     """
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()             # <<<<<<<<<<<<<<
 *     cosHandle = utils.HelperInputVoidPtr(osHandle)
 *     cdef void* cosHandle_ptr = <void*><void_ptr>cosHandle.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16816
 *     """
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()
 *     cosHandle = utils.HelperInputVoidPtr(osHandle)             # <<<<<<<<<<<<<<
 *     cdef void* cosHandle_ptr = <void*><void_ptr>cosHandle.cptr
 *     cdef ccuda.CUmemAllocationHandleType cshHandleType = shHandleType.value
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_osHandle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cosHandle = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16817
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()
 *     cosHandle = utils.HelperInputVoidPtr(osHandle)
 *     cdef void* cosHandle_ptr = <void*><void_ptr>cosHandle.cptr             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationHandleType cshHandleType = shHandleType.value
 *     err = ccuda.cuMemImportFromShareableHandle(handle._ptr, cosHandle_ptr, cshHandleType)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cosHandle, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 16817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cosHandle_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":16818
 *     cosHandle = utils.HelperInputVoidPtr(osHandle)
 *     cdef void* cosHandle_ptr = <void*><void_ptr>cosHandle.cptr
 *     cdef ccuda.CUmemAllocationHandleType cshHandleType = shHandleType.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemImportFromShareableHandle(handle._ptr, cosHandle_ptr, cshHandleType)
 *     return (CUresult(err), handle)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_shHandleType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 16818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cshHandleType = __pyx_t_3;

  /* "cuda/cuda.pyx":16819
 *     cdef void* cosHandle_ptr = <void*><void_ptr>cosHandle.cptr
 *     cdef ccuda.CUmemAllocationHandleType cshHandleType = shHandleType.value
 *     err = ccuda.cuMemImportFromShareableHandle(handle._ptr, cosHandle_ptr, cshHandleType)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), handle)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemImportFromShareableHandle(__pyx_v_handle->_ptr, __pyx_v_cosHandle_ptr, __pyx_v_cshHandleType); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16819, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":16820
 *     cdef ccuda.CUmemAllocationHandleType cshHandleType = shHandleType.value
 *     err = ccuda.cuMemImportFromShareableHandle(handle._ptr, cosHandle_ptr, cshHandleType)
 *     return (CUresult(err), handle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_handle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_handle));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_handle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16778
 * 
 * @cython.embedsignature(True)
 * def cuMemImportFromShareableHandle(osHandle, shHandleType not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *     """ Imports an allocation from a requested shareable handle type.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemImportFromShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_handle);
  __Pyx_XDECREF(__pyx_v_cosHandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16823
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationGranularity(prop : CUmemAllocationProp, option not None : CUmemAllocationGranularity_flags):             # <<<<<<<<<<<<<<
 *     """ Calculates either the minimal or recommended granularity.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_281cuMemGetAllocationGranularity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_280cuMemGetAllocationGranularity[] = "cuMemGetAllocationGranularity(CUmemAllocationProp prop: CUmemAllocationProp, option: CUmemAllocationGranularity_flags)\n Calculates either the minimal or recommended granularity.\n\n    Calculates either the minimal or recommended granularity for a given\n    allocation specification and returns it in granularity. This\n    granularity can be used as a multiple for alignment, size, or address\n    mapping.\n\n    Parameters\n    ----------\n    prop : CUmemAllocationProp\n        Property for which to determine the granularity for\n    option : CUmemAllocationGranularity_flags\n        Determines which granularity to return\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    granularity : int\n        Returned granularity.\n\n    See Also\n    --------\n    cuMemCreate\n    cuMemMap\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_281cuMemGetAllocationGranularity = {"cuMemGetAllocationGranularity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_281cuMemGetAllocationGranularity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_280cuMemGetAllocationGranularity};
static PyObject *__pyx_pw_4cuda_4cuda_281cuMemGetAllocationGranularity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop = 0;
  PyObject *__pyx_v_option = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemGetAllocationGranularity (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prop,&__pyx_n_s_option,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prop)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_option)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemGetAllocationGranularity", 1, 2, 2, 1); __PYX_ERR(0, 16823, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemGetAllocationGranularity") < 0)) __PYX_ERR(0, 16823, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_prop = ((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *)values[0]);
    __pyx_v_option = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemGetAllocationGranularity", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16823, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemGetAllocationGranularity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_prop), __pyx_ptype_4cuda_4cuda_CUmemAllocationProp, 1, "prop", 0))) __PYX_ERR(0, 16823, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_option) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "option"); __PYX_ERR(0, 16823, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_280cuMemGetAllocationGranularity(__pyx_self, __pyx_v_prop, __pyx_v_option);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_280cuMemGetAllocationGranularity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop, PyObject *__pyx_v_option) {
  size_t __pyx_v_granularity;
  __pyx_t_4cuda_5ccuda_CUmemAllocationProp *__pyx_v_cprop_ptr;
  __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags __pyx_v_coption;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__656)
  __Pyx_RefNannySetupContext("cuMemGetAllocationGranularity", 0);
  __Pyx_TraceCall("cuMemGetAllocationGranularity", __pyx_f[0], 16823, 0, __PYX_ERR(0, 16823, __pyx_L1_error));

  /* "cuda/cuda.pyx":16855
 *     cuMemMap
 *     """
 *     cdef size_t granularity = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL
 *     cdef ccuda.CUmemAllocationGranularity_flags coption = option.value
 */
  __pyx_v_granularity = 0;

  /* "cuda/cuda.pyx":16856
 *     """
 *     cdef size_t granularity = 0
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationGranularity_flags coption = option.value
 *     err = ccuda.cuMemGetAllocationGranularity(&granularity, cprop_ptr, coption)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_prop), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16856, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 16856, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_prop->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cprop_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":16857
 *     cdef size_t granularity = 0
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL
 *     cdef ccuda.CUmemAllocationGranularity_flags coption = option.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemGetAllocationGranularity(&granularity, cprop_ptr, coption)
 *     return (CUresult(err), granularity)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_option, __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 16857, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_coption = __pyx_t_4;

  /* "cuda/cuda.pyx":16858
 *     cdef ccuda.CUmemAllocationProp* cprop_ptr = prop._ptr if prop != None else NULL
 *     cdef ccuda.CUmemAllocationGranularity_flags coption = option.value
 *     err = ccuda.cuMemGetAllocationGranularity(&granularity, cprop_ptr, coption)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), granularity)
 * 
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuMemGetAllocationGranularity((&__pyx_v_granularity), __pyx_v_cprop_ptr, __pyx_v_coption); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16858, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":16859
 *     cdef ccuda.CUmemAllocationGranularity_flags coption = option.value
 *     err = ccuda.cuMemGetAllocationGranularity(&granularity, cprop_ptr, coption)
 *     return (CUresult(err), granularity)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_granularity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
  __pyx_t_2 = 0;
  __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16823
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationGranularity(prop : CUmemAllocationProp, option not None : CUmemAllocationGranularity_flags):             # <<<<<<<<<<<<<<
 *     """ Calculates either the minimal or recommended granularity.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.cuMemGetAllocationGranularity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16862
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationPropertiesFromHandle(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Retrieve the contents of the property structure defining properties for this handle.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_283cuMemGetAllocationPropertiesFromHandle(PyObject *__pyx_self, PyObject *__pyx_v_handle); /*proto*/
static char __pyx_doc_4cuda_4cuda_282cuMemGetAllocationPropertiesFromHandle[] = "cuMemGetAllocationPropertiesFromHandle(CUmemGenericAllocationHandle handle: CUmemGenericAllocationHandle)\n Retrieve the contents of the property structure defining properties for this handle.\n\n    Parameters\n    ----------\n    handle : CUmemGenericAllocationHandle\n        Handle which to perform the query on\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    prop : CUmemAllocationProp\n        Pointer to a properties structure which will hold the information\n        about this handle\n\n    See Also\n    --------\n    cuMemCreate\n    cuMemImportFromShareableHandle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_283cuMemGetAllocationPropertiesFromHandle = {"cuMemGetAllocationPropertiesFromHandle", (PyCFunction)__pyx_pw_4cuda_4cuda_283cuMemGetAllocationPropertiesFromHandle, METH_O, __pyx_doc_4cuda_4cuda_282cuMemGetAllocationPropertiesFromHandle};
static PyObject *__pyx_pw_4cuda_4cuda_283cuMemGetAllocationPropertiesFromHandle(PyObject *__pyx_self, PyObject *__pyx_v_handle) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemGetAllocationPropertiesFromHandle (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_handle), __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle, 0, "handle", 0))) __PYX_ERR(0, 16862, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_282cuMemGetAllocationPropertiesFromHandle(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_v_handle));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_282cuMemGetAllocationPropertiesFromHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle) {
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *__pyx_v_prop = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__657)
  __Pyx_RefNannySetupContext("cuMemGetAllocationPropertiesFromHandle", 0);
  __Pyx_TraceCall("cuMemGetAllocationPropertiesFromHandle", __pyx_f[0], 16862, 0, __PYX_ERR(0, 16862, __pyx_L1_error));

  /* "cuda/cuda.pyx":16888
 *     cuMemImportFromShareableHandle
 *     """
 *     cdef CUmemAllocationProp prop = CUmemAllocationProp()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemGetAllocationPropertiesFromHandle(prop._ptr, handle._ptr[0])
 *     return (CUresult(err), prop)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAllocationProp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_prop = ((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16889
 *     """
 *     cdef CUmemAllocationProp prop = CUmemAllocationProp()
 *     err = ccuda.cuMemGetAllocationPropertiesFromHandle(prop._ptr, handle._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), prop)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemGetAllocationPropertiesFromHandle(__pyx_v_prop->__pyx_base._ptr, (__pyx_v_handle->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16889, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":16890
 *     cdef CUmemAllocationProp prop = CUmemAllocationProp()
 *     err = ccuda.cuMemGetAllocationPropertiesFromHandle(prop._ptr, handle._ptr[0])
 *     return (CUresult(err), prop)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_prop));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_prop));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_prop));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16862
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationPropertiesFromHandle(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Retrieve the contents of the property structure defining properties for this handle.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemGetAllocationPropertiesFromHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_prop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16893
 * 
 * @cython.embedsignature(True)
 * def cuMemRetainAllocationHandle(addr):             # <<<<<<<<<<<<<<
 *     """ Given an address `addr`, returns the allocation handle of the backing memory allocation.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_285cuMemRetainAllocationHandle(PyObject *__pyx_self, PyObject *__pyx_v_addr); /*proto*/
static char __pyx_doc_4cuda_4cuda_284cuMemRetainAllocationHandle[] = "cuMemRetainAllocationHandle(addr)\n Given an address `addr`, returns the allocation handle of the backing memory allocation.\n\n    The handle is guaranteed to be the same handle value used to map the\n    memory. If the address requested is not mapped, the function will fail.\n    The returned handle must be released with corresponding number of calls\n    to cuMemRelease.\n\n    Parameters\n    ----------\n    addr : Any\n        Memory address to query, that has been mapped previously.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_PERMITTED\n        CUDA_ERROR_NOT_SUPPORTED\n    handle : CUmemGenericAllocationHandle\n        CUDA Memory handle for the backing memory allocation.\n\n    See Also\n    --------\n    cuMemCreate\n    cuMemRelease\n    cuMemMap\n\n    Notes\n    -----\n    The address `addr`, can be any address in a range previously mapped by cuMemMap, and not necessarily the start address.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_285cuMemRetainAllocationHandle = {"cuMemRetainAllocationHandle", (PyCFunction)__pyx_pw_4cuda_4cuda_285cuMemRetainAllocationHandle, METH_O, __pyx_doc_4cuda_4cuda_284cuMemRetainAllocationHandle};
static PyObject *__pyx_pw_4cuda_4cuda_285cuMemRetainAllocationHandle(PyObject *__pyx_self, PyObject *__pyx_v_addr) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemRetainAllocationHandle (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_284cuMemRetainAllocationHandle(__pyx_self, ((PyObject *)__pyx_v_addr));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_284cuMemRetainAllocationHandle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_addr) {
  struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *__pyx_v_handle = 0;
  PyObject *__pyx_v_caddr = NULL;
  void *__pyx_v_caddr_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__658)
  __Pyx_RefNannySetupContext("cuMemRetainAllocationHandle", 0);
  __Pyx_TraceCall("cuMemRetainAllocationHandle", __pyx_f[0], 16893, 0, __PYX_ERR(0, 16893, __pyx_L1_error));

  /* "cuda/cuda.pyx":16929
 * 
 *     """
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()             # <<<<<<<<<<<<<<
 *     caddr = utils.HelperInputVoidPtr(addr)
 *     cdef void* caddr_ptr = <void*><void_ptr>caddr.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16930
 *     """
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()
 *     caddr = utils.HelperInputVoidPtr(addr)             # <<<<<<<<<<<<<<
 *     cdef void* caddr_ptr = <void*><void_ptr>caddr.cptr
 *     err = ccuda.cuMemRetainAllocationHandle(handle._ptr, caddr_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_caddr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16931
 *     cdef CUmemGenericAllocationHandle handle = CUmemGenericAllocationHandle()
 *     caddr = utils.HelperInputVoidPtr(addr)
 *     cdef void* caddr_ptr = <void*><void_ptr>caddr.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemRetainAllocationHandle(handle._ptr, caddr_ptr)
 *     return (CUresult(err), handle)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_caddr, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16931, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 16931, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_caddr_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":16932
 *     caddr = utils.HelperInputVoidPtr(addr)
 *     cdef void* caddr_ptr = <void*><void_ptr>caddr.cptr
 *     err = ccuda.cuMemRetainAllocationHandle(handle._ptr, caddr_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), handle)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemRetainAllocationHandle(__pyx_v_handle->_ptr, __pyx_v_caddr_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16932, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":16933
 *     cdef void* caddr_ptr = <void*><void_ptr>caddr.cptr
 *     err = ccuda.cuMemRetainAllocationHandle(handle._ptr, caddr_ptr)
 *     return (CUresult(err), handle)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_handle));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_handle));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_handle));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16893
 * 
 * @cython.embedsignature(True)
 * def cuMemRetainAllocationHandle(addr):             # <<<<<<<<<<<<<<
 *     """ Given an address `addr`, returns the allocation handle of the backing memory allocation.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemRetainAllocationHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_handle);
  __Pyx_XDECREF(__pyx_v_caddr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16936
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeAsync(dptr not None : CUdeviceptr, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Frees memory with stream ordered semantics.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_287cuMemFreeAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_286cuMemFreeAsync[] = "cuMemFreeAsync(CUdeviceptr dptr: CUdeviceptr, CUstream hStream: CUstream)\n Frees memory with stream ordered semantics.\n\n    Inserts a free operation into `hStream`. The allocation must not be\n    accessed after stream execution reaches the free. After this API\n    returns, accessing the memory from any subsequent work launched on the\n    GPU or querying its pointer attributes results in undefined behavior.\n\n    Parameters\n    ----------\n    dptr : CUdeviceptr\n        memory to free\n    hStream : CUstream\n        The stream establishing the stream ordering contract.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        (default\n        stream\n        specified\n        with\n        no\n        current\n        context)\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    Notes\n    -----\n    During stream capture, this function results in the creation of a free node and must therefore be passed the address of a graph allocation.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_287cuMemFreeAsync = {"cuMemFreeAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_287cuMemFreeAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_286cuMemFreeAsync};
static PyObject *__pyx_pw_4cuda_4cuda_287cuMemFreeAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemFreeAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dptr_2,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dptr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemFreeAsync", 1, 2, 2, 1); __PYX_ERR(0, 16936, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemFreeAsync") < 0)) __PYX_ERR(0, 16936, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemFreeAsync", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16936, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemFreeAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 16936, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 16936, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_286cuMemFreeAsync(__pyx_self, __pyx_v_dptr, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_286cuMemFreeAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__659)
  __Pyx_RefNannySetupContext("cuMemFreeAsync", 0);
  __Pyx_TraceCall("cuMemFreeAsync", __pyx_f[0], 16936, 0, __PYX_ERR(0, 16936, __pyx_L1_error));

  /* "cuda/cuda.pyx":16974
 * 
 *     """
 *     err = ccuda.cuMemFreeAsync(dptr._ptr[0], hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemFreeAsync((__pyx_v_dptr->_ptr[0]), (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 16974, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":16975
 *     """
 *     err = ccuda.cuMemFreeAsync(dptr._ptr[0], hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16936
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeAsync(dptr not None : CUdeviceptr, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Frees memory with stream ordered semantics.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemFreeAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":16978
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocAsync(size_t bytesize, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory with stream ordered semantics.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_289cuMemAllocAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_288cuMemAllocAsync[] = "cuMemAllocAsync(size_t bytesize, CUstream hStream: CUstream)\n Allocates memory with stream ordered semantics.\n\n    Inserts an allocation operation into `hStream`. A pointer to the\n    allocated memory is returned immediately in *dptr. The allocation must\n    not be accessed until the the allocation operation completes. The\n    allocation comes from the memory pool current to the stream's device.\n\n    Parameters\n    ----------\n    bytesize : size_t\n        Number of bytes to allocate\n    hStream : CUstream\n        The stream establishing the stream ordering contract and the memory\n        pool to allocate from\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        (default\n        stream\n        specified\n        with\n        no\n        current\n        context)\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_OUT_OF_MEMORY\n    dptr : CUdeviceptr\n        Returned device pointer\n\n    See Also\n    --------\n    cuMemAllocFromPoolAsync\n    cuMemFreeAsync\n    cuDeviceSetMemPool\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    cuMemPoolSetAccess\n    cuMemPoolSetAttribute\n\n    Notes\n    -----\n    During stream capture, this function results in the creation of an allocation node. In this case, the allocation is owned by the graph instead of the memory pool. The memory pool's properties are used to set the node's creation parameters.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_289cuMemAllocAsync = {"cuMemAllocAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_289cuMemAllocAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_288cuMemAllocAsync};
static PyObject *__pyx_pw_4cuda_4cuda_289cuMemAllocAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_bytesize;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAllocAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bytesize_2,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bytesize_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAllocAsync", 1, 2, 2, 1); __PYX_ERR(0, 16978, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAllocAsync") < 0)) __PYX_ERR(0, 16978, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16978, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAllocAsync", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16978, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 16978, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_288cuMemAllocAsync(__pyx_self, __pyx_v_bytesize, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_288cuMemAllocAsync(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__660)
  __Pyx_RefNannySetupContext("cuMemAllocAsync", 0);
  __Pyx_TraceCall("cuMemAllocAsync", __pyx_f[0], 16978, 0, __PYX_ERR(0, 16978, __pyx_L1_error));

  /* "cuda/cuda.pyx":17029
 * 
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAllocAsync(dptr._ptr, bytesize, hStream._ptr[0])
 *     return (CUresult(err), dptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17030
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAllocAsync(dptr._ptr, bytesize, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemAllocAsync(__pyx_v_dptr->_ptr, __pyx_v_bytesize, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17030, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":17031
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAllocAsync(dptr._ptr, bytesize, hStream._ptr[0])
 *     return (CUresult(err), dptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":16978
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocAsync(size_t bytesize, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory with stream ordered semantics.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17034
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolTrimTo(pool not None : CUmemoryPool, size_t minBytesToKeep):             # <<<<<<<<<<<<<<
 *     """ Tries to release memory back to the OS.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_291cuMemPoolTrimTo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_290cuMemPoolTrimTo[] = "cuMemPoolTrimTo(CUmemoryPool pool: CUmemoryPool, size_t minBytesToKeep)\n Tries to release memory back to the OS.\n\n    Releases memory back to the OS until the pool contains fewer than\n    minBytesToKeep reserved bytes, or there is no more memory that the\n    allocator can safely release. The allocator cannot release OS\n    allocations that back outstanding asynchronous allocations. The OS\n    allocations may happen at different granularity from the user\n    allocations.\n\n    Parameters\n    ----------\n    pool : CUmemoryPool\n        The memory pool to trim\n    minBytesToKeep : size_t\n        If the pool has less than minBytesToKeep reserved, the TrimTo\n        operation is a no-op. Otherwise the pool will be guaranteed to have\n        at least minBytesToKeep bytes reserved after the operation.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n\n    Notes\n    -----\n    : Allocations that have been asynchronously freed but whose completion has not been observed on the host (eg. by a synchronize) can count as outstanding.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_291cuMemPoolTrimTo = {"cuMemPoolTrimTo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_291cuMemPoolTrimTo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_290cuMemPoolTrimTo};
static PyObject *__pyx_pw_4cuda_4cuda_291cuMemPoolTrimTo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  size_t __pyx_v_minBytesToKeep;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolTrimTo (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_minBytesToKeep,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_minBytesToKeep)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolTrimTo", 1, 2, 2, 1); __PYX_ERR(0, 17034, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolTrimTo") < 0)) __PYX_ERR(0, 17034, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_minBytesToKeep = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_minBytesToKeep == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17034, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolTrimTo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17034, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolTrimTo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17034, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_290cuMemPoolTrimTo(__pyx_self, __pyx_v_pool, __pyx_v_minBytesToKeep);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_290cuMemPoolTrimTo(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, size_t __pyx_v_minBytesToKeep) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__661)
  __Pyx_RefNannySetupContext("cuMemPoolTrimTo", 0);
  __Pyx_TraceCall("cuMemPoolTrimTo", __pyx_f[0], 17034, 0, __PYX_ERR(0, 17034, __pyx_L1_error));

  /* "cuda/cuda.pyx":17075
 * 
 *     """
 *     err = ccuda.cuMemPoolTrimTo(pool._ptr[0], minBytesToKeep)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemPoolTrimTo((__pyx_v_pool->_ptr[0]), __pyx_v_minBytesToKeep); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17075, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":17076
 *     """
 *     err = ccuda.cuMemPoolTrimTo(pool._ptr[0], minBytesToKeep)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17034
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolTrimTo(pool not None : CUmemoryPool, size_t minBytesToKeep):             # <<<<<<<<<<<<<<
 *     """ Tries to release memory back to the OS.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolTrimTo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17079
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Sets attributes of a memory pool.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_293cuMemPoolSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_292cuMemPoolSetAttribute[] = "cuMemPoolSetAttribute(CUmemoryPool pool: CUmemoryPool, attr: CUmemPool_attribute, value)\n Sets attributes of a memory pool.\n\n    Supported attributes are: CU_MEMPOOL_ATTR_RELEASE_THRESHOLD: (value\n    type = cuuint64_t) Amount of reserved memory in bytes to hold onto\n    before trying to release memory back to the OS. When more than the\n    release threshold bytes of memory are held by the memory pool, the\n    allocator will try to release memory back to the OS on the next call to\n    stream, event or context synchronize. (default 0)\n    CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES: (value type = int)\n    Allow cuMemAllocAsync to use memory asynchronously freed in another\n    stream as long as a stream ordering dependency of the allocating stream\n    on the free action exists. Cuda events and null stream interactions can\n    create the required stream ordered dependencies. (default enabled)\n    CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC: (value type = int) Allow\n    reuse of already completed frees when there is no dependency between\n    the free and allocation. (default enabled)\n    CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES: (value type = int)\n    Allow cuMemAllocAsync to insert new stream dependencies in order to\n    establish the stream ordering required to reuse a piece of memory\n    released by cuMemFreeAsync (default enabled).\n    CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH: (value type = cuuint64_t) Reset the\n    high watermark that tracks the amount of backing memory that was\n    allocated for the memory pool. It is illegal to set this attribute to a\n    non-zero value. CU_MEMPOOL_ATTR_USED_MEM_HIGH: (value type =\n    cuuint64_t) Reset the high watermark that tracks the amount of used\n    memory that was allocated for the memory pool.\n\n    Parameters\n    ----------\n    pool : CUmemoryPool\n        The memory pool to modify\n    attr : CUmemPool_attribute\n        The attribute to modify\n    value : Any\n        Pointer to the v""alue to assign\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_293cuMemPoolSetAttribute = {"cuMemPoolSetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_293cuMemPoolSetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_292cuMemPoolSetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_293cuMemPoolSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_value = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolSetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_attr,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolSetAttribute", 1, 3, 3, 1); __PYX_ERR(0, 17079, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolSetAttribute", 1, 3, 3, 2); __PYX_ERR(0, 17079, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolSetAttribute") < 0)) __PYX_ERR(0, 17079, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_attr = values[1];
    __pyx_v_value = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolSetAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17079, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17079, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 17079, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_292cuMemPoolSetAttribute(__pyx_self, __pyx_v_pool, __pyx_v_attr, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_292cuMemPoolSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_attr, PyObject *__pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUmemPool_attribute __pyx_v_cattr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute *__pyx_v_cvalue = 0;
  void *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemPool_attribute __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__662)
  __Pyx_RefNannySetupContext("cuMemPoolSetAttribute", 0);
  __Pyx_TraceCall("cuMemPoolSetAttribute", __pyx_f[0], 17079, 0, __PYX_ERR(0, 17079, __pyx_L1_error));

  /* "cuda/cuda.pyx":17132
 *     cuMemPoolCreate
 *     """
 *     cdef ccuda.CUmemPool_attribute cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":17133
 *     """
 *     cdef ccuda.CUmemPool_attribute cattr = attr.value
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, value, is_getter=False)             # <<<<<<<<<<<<<<
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuMemPoolSetAttribute(pool._ptr[0], cattr, cvalue_ptr)
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_attr);
  __Pyx_GIVEREF(__pyx_v_attr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_attr);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_value);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_is_getter, Py_False) < 0) __PYX_ERR(0, 17133, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUmemPool_attribute), __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cvalue = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":17134
 *     cdef ccuda.CUmemPool_attribute cattr = attr.value
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolSetAttribute(pool._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_cptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 17134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_cvalue_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_5));

  /* "cuda/cuda.pyx":17135
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuMemPoolSetAttribute(pool._ptr[0], cattr, cvalue_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuMemPoolSetAttribute((__pyx_v_pool->_ptr[0]), __pyx_v_cattr, __pyx_v_cvalue_ptr); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17135, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":17136
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuMemPoolSetAttribute(pool._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17079
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Sets attributes of a memory pool.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17139
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute):             # <<<<<<<<<<<<<<
 *     """ Gets attributes of a memory pool.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_295cuMemPoolGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_294cuMemPoolGetAttribute[] = "cuMemPoolGetAttribute(CUmemoryPool pool: CUmemoryPool, attr: CUmemPool_attribute)\n Gets attributes of a memory pool.\n\n    Supported attributes are: CU_MEMPOOL_ATTR_RELEASE_THRESHOLD: (value\n    type = cuuint64_t) Amount of reserved memory in bytes to hold onto\n    before trying to release memory back to the OS. When more than the\n    release threshold bytes of memory are held by the memory pool, the\n    allocator will try to release memory back to the OS on the next call to\n    stream, event or context synchronize. (default 0)\n    CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES: (value type = int)\n    Allow cuMemAllocAsync to use memory asynchronously freed in another\n    stream as long as a stream ordering dependency of the allocating stream\n    on the free action exists. Cuda events and null stream interactions can\n    create the required stream ordered dependencies. (default enabled)\n    CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC: (value type = int) Allow\n    reuse of already completed frees when there is no dependency between\n    the free and allocation. (default enabled)\n    CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES: (value type = int)\n    Allow cuMemAllocAsync to insert new stream dependencies in order to\n    establish the stream ordering required to reuse a piece of memory\n    released by cuMemFreeAsync (default enabled).\n    CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT: (value type = cuuint64_t) Amount\n    of backing memory currently allocated for the mempool\n    CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH: (value type = cuuint64_t) High\n    watermark of backing memory allocated for the mempool since the last\n    time it was reset. CU_MEMPOOL_ATTR_USED_MEM_CURRENT: (value type =\n    cuuint64_t) Amount of memory from the pool that is currently in use by\n    the application. CU_MEMPOOL_ATTR_USED_MEM_HIGH: (value type =\n    cuuint64_t) High watermark of the amount of memory from the pool that\n    was in use by the application.\n\n    Parameter""s\n    ----------\n    pool : CUmemoryPool\n        The memory pool to get attributes of\n    attr : CUmemPool_attribute\n        The attribute to get\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    value : Any\n        Retrieved value\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_295cuMemPoolGetAttribute = {"cuMemPoolGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_295cuMemPoolGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_294cuMemPoolGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_295cuMemPoolGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  PyObject *__pyx_v_attr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_attr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolGetAttribute", 1, 2, 2, 1); __PYX_ERR(0, 17139, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolGetAttribute") < 0)) __PYX_ERR(0, 17139, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_attr = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolGetAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17139, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17139, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 17139, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_294cuMemPoolGetAttribute(__pyx_self, __pyx_v_pool, __pyx_v_attr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_294cuMemPoolGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_attr) {
  __pyx_t_4cuda_5ccuda_CUmemPool_attribute __pyx_v_cattr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute *__pyx_v_cvalue = 0;
  void *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemPool_attribute __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__663)
  __Pyx_RefNannySetupContext("cuMemPoolGetAttribute", 0);
  __Pyx_TraceCall("cuMemPoolGetAttribute", __pyx_f[0], 17139, 0, __PYX_ERR(0, 17139, __pyx_L1_error));

  /* "cuda/cuda.pyx":17194
 *     cuMemPoolCreate
 *     """
 *     cdef ccuda.CUmemPool_attribute cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, 0, is_getter=True)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":17195
 *     """
 *     cdef ccuda.CUmemPool_attribute cattr = attr.value
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, 0, is_getter=True)             # <<<<<<<<<<<<<<
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuMemPoolGetAttribute(pool._ptr[0], cattr, cvalue_ptr)
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_attr);
  __Pyx_GIVEREF(__pyx_v_attr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_attr);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_is_getter, Py_True) < 0) __PYX_ERR(0, 17195, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUmemPool_attribute), __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cvalue = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":17196
 *     cdef ccuda.CUmemPool_attribute cattr = attr.value
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, 0, is_getter=True)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolGetAttribute(pool._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err), cvalue.pyObj())
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_cptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 17196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_cvalue_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_5));

  /* "cuda/cuda.pyx":17197
 *     cdef utils.HelperCUmemPool_attribute cvalue = utils.HelperCUmemPool_attribute(attr, 0, is_getter=True)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuMemPoolGetAttribute(pool._ptr[0], cattr, cvalue_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), cvalue.pyObj())
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuMemPoolGetAttribute((__pyx_v_pool->_ptr[0]), __pyx_v_cattr, __pyx_v_cvalue_ptr); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17197, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":17198
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuMemPoolGetAttribute(pool._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err), cvalue.pyObj())             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_pyObj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17139
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute):             # <<<<<<<<<<<<<<
 *     """ Gets attributes of a memory pool.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17201
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAccess(pool not None : CUmemoryPool, map : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Controls visibility of pools between devices.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_297cuMemPoolSetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_296cuMemPoolSetAccess[] = "cuMemPoolSetAccess(CUmemoryPool pool: CUmemoryPool, map: List[CUmemAccessDesc], size_t count)\n Controls visibility of pools between devices.\n\n    Parameters\n    ----------\n    pool : CUmemoryPool\n        The pool being modified\n    map : List[CUmemAccessDesc]\n        Array of access descriptors. Each descriptor instructs the access\n        to enable for a single gpu.\n    count : size_t\n        Number of descriptors in the map array.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_297cuMemPoolSetAccess = {"cuMemPoolSetAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_297cuMemPoolSetAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_296cuMemPoolSetAccess};
static PyObject *__pyx_pw_4cuda_4cuda_297cuMemPoolSetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  PyObject *__pyx_v_map = 0;
  size_t __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolSetAccess (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_map,&__pyx_n_s_count,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_map)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolSetAccess", 1, 3, 3, 1); __PYX_ERR(0, 17201, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolSetAccess", 1, 3, 3, 2); __PYX_ERR(0, 17201, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolSetAccess") < 0)) __PYX_ERR(0, 17201, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_map = values[1];
    __pyx_v_count = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_count == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17201, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolSetAccess", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17201, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolSetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17201, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_296cuMemPoolSetAccess(__pyx_self, __pyx_v_pool, __pyx_v_map, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_18cuMemPoolSetAccess_2generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":17232
 *     """
 *     map = [] if map is None else map
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_18cuMemPoolSetAccess_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_15_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_15_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 17232, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_18cuMemPoolSetAccess_2generator7, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuMemPoolSetAccess_locals_genexp, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 17232, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolSetAccess.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_18cuMemPoolSetAccess_2generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 17232, 0, __PYX_ERR(0, 17232, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 17232, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_map)) { __Pyx_RaiseClosureNameError("map"); __PYX_ERR(0, 17232, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_map)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_map)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_map; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17232, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 17232, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17232, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 17232, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17232, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 17232, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUmemAccessDesc); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17201
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAccess(pool not None : CUmemoryPool, map : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Controls visibility of pools between devices.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_296cuMemPoolSetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_map, size_t __pyx_v_count) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUmemAccessDesc *__pyx_v_cmap;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_18cuMemPoolSetAccess_2generator7 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__664)
  __Pyx_RefNannySetupContext("cuMemPoolSetAccess", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 17201, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuMemPoolSetAccess", __pyx_f[0], 17201, 0, __PYX_ERR(0, 17201, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_map = __pyx_v_map;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_map);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_map);

  /* "cuda/cuda.pyx":17231
 *     cuMemPoolCreate
 *     """
 *     map = [] if map is None else map             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_map == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17231, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_map);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_map;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_map);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_map, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17232
 *     """
 *     map = [] if map is None else map
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_18cuMemPoolSetAccess_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 17232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":17233
 *     map = [] if map is None else map
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 *     if len(map) > 0:
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__665, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 17233, __pyx_L1_error)

    /* "cuda/cuda.pyx":17232
 *     """
 *     map = [] if map is None else map
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 */
  }

  /* "cuda/cuda.pyx":17234
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL             # <<<<<<<<<<<<<<
 *     if len(map) > 0:
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))
 */
  __pyx_v_cmap = NULL;

  /* "cuda/cuda.pyx":17235
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 *     if len(map) > 0:             # <<<<<<<<<<<<<<
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))
 *         if cmap is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_map;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":17236
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 *     if len(map) > 0:
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))             # <<<<<<<<<<<<<<
 *         if cmap is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(map)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_map;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17236, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cmap = ((__pyx_t_4cuda_5ccuda_CUmemAccessDesc *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))));

    /* "cuda/cuda.pyx":17237
 *     if len(map) > 0:
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))
 *         if cmap is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(map)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(map)):
 */
    __pyx_t_4 = ((__pyx_v_cmap == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":17238
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))
 *         if cmap is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(map)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(map)):
 *             memcpy(&cmap[idx], (<CUmemAccessDesc>map[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_map;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 17238, __pyx_L1_error)

      /* "cuda/cuda.pyx":17237
 *     if len(map) > 0:
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))
 *         if cmap is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(map)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(map)):
 */
    }

    /* "cuda/cuda.pyx":17239
 *         if cmap is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(map)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(map)):             # <<<<<<<<<<<<<<
 *             memcpy(&cmap[idx], (<CUmemAccessDesc>map[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 * 
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_map;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17239, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":17240
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(map)) + 'x' + str(sizeof(ccuda.CUmemAccessDesc)))
 *         for idx in range(len(map)):
 *             memcpy(&cmap[idx], (<CUmemAccessDesc>map[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))             # <<<<<<<<<<<<<<
 * 
 *     if count > <size_t>len(map): raise RuntimeError("List is too small: " + str(len(map)) + " < " + str(count))
 */
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_map, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17240, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      (void)(memcpy((&(__pyx_v_cmap[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc *)__pyx_t_6)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))));
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }

    /* "cuda/cuda.pyx":17235
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 *     if len(map) > 0:             # <<<<<<<<<<<<<<
 *         cmap = <ccuda.CUmemAccessDesc*> calloc(len(map), sizeof(ccuda.CUmemAccessDesc))
 *         if cmap is NULL:
 */
  }

  /* "cuda/cuda.pyx":17242
 *             memcpy(&cmap[idx], (<CUmemAccessDesc>map[idx])._ptr, sizeof(ccuda.CUmemAccessDesc))
 * 
 *     if count > <size_t>len(map): raise RuntimeError("List is too small: " + str(len(map)) + " < " + str(count))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolSetAccess(pool._ptr[0], (<CUmemAccessDesc>map[0])._ptr if len(map) == 1 else cmap, count)
 *     if cmap is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_map;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_count > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_map;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 17242, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":17243
 * 
 *     if count > <size_t>len(map): raise RuntimeError("List is too small: " + str(len(map)) + " < " + str(count))
 *     err = ccuda.cuMemPoolSetAccess(pool._ptr[0], (<CUmemAccessDesc>map[0])._ptr if len(map) == 1 else cmap, count)             # <<<<<<<<<<<<<<
 *     if cmap is not NULL:
 *         free(cmap)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_map;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 17243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_map, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc *)__pyx_t_1)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cmap;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuMemPoolSetAccess((__pyx_v_pool->_ptr[0]), __pyx_t_9, __pyx_v_count); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17243, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":17244
 *     if count > <size_t>len(map): raise RuntimeError("List is too small: " + str(len(map)) + " < " + str(count))
 *     err = ccuda.cuMemPoolSetAccess(pool._ptr[0], (<CUmemAccessDesc>map[0])._ptr if len(map) == 1 else cmap, count)
 *     if cmap is not NULL:             # <<<<<<<<<<<<<<
 *         free(cmap)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = ((__pyx_v_cmap != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":17245
 *     err = ccuda.cuMemPoolSetAccess(pool._ptr[0], (<CUmemAccessDesc>map[0])._ptr if len(map) == 1 else cmap, count)
 *     if cmap is not NULL:
 *         free(cmap)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cmap);

    /* "cuda/cuda.pyx":17244
 *     if count > <size_t>len(map): raise RuntimeError("List is too small: " + str(len(map)) + " < " + str(count))
 *     err = ccuda.cuMemPoolSetAccess(pool._ptr[0], (<CUmemAccessDesc>map[0])._ptr if len(map) == 1 else cmap, count)
 *     if cmap is not NULL:             # <<<<<<<<<<<<<<
 *         free(cmap)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":17246
 *     if cmap is not NULL:
 *         free(cmap)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17201
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAccess(pool not None : CUmemoryPool, map : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Controls visibility of pools between devices.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolSetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_18cuMemPoolSetAccess_2generator7);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17249
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAccess(memPool not None : CUmemoryPool, location : CUmemLocation):             # <<<<<<<<<<<<<<
 *     """ Returns the accessibility of a pool from a device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_299cuMemPoolGetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_298cuMemPoolGetAccess[] = "cuMemPoolGetAccess(CUmemoryPool memPool: CUmemoryPool, CUmemLocation location: CUmemLocation)\n Returns the accessibility of a pool from a device.\n\n    Returns the accessibility of the pool's memory from the specified\n    location.\n\n    Parameters\n    ----------\n    memPool : CUmemoryPool\n        the pool being queried\n    location : CUmemLocation\n        the location accessing the pool\n\n    Returns\n    -------\n    CUresult\n\n    flags : CUmemAccess_flags\n        the accessibility of the pool from the specified location\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_299cuMemPoolGetAccess = {"cuMemPoolGetAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_299cuMemPoolGetAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_298cuMemPoolGetAccess};
static PyObject *__pyx_pw_4cuda_4cuda_299cuMemPoolGetAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_memPool = 0;
  struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolGetAccess (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_memPool,&__pyx_n_s_location_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memPool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_location_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolGetAccess", 1, 2, 2, 1); __PYX_ERR(0, 17249, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolGetAccess") < 0)) __PYX_ERR(0, 17249, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_memPool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolGetAccess", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17249, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolGetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memPool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "memPool", 0))) __PYX_ERR(0, 17249, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_location), __pyx_ptype_4cuda_4cuda_CUmemLocation, 1, "location", 0))) __PYX_ERR(0, 17249, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_298cuMemPoolGetAccess(__pyx_self, __pyx_v_memPool, __pyx_v_location);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_298cuMemPoolGetAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_memPool, struct __pyx_obj_4cuda_4cuda_CUmemLocation *__pyx_v_location) {
  __pyx_t_4cuda_5ccuda_CUmemAccess_flags __pyx_v_flags;
  __pyx_t_4cuda_5ccuda_CUmemLocation *__pyx_v_clocation_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUmemLocation_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__666)
  __Pyx_RefNannySetupContext("cuMemPoolGetAccess", 0);
  __Pyx_TraceCall("cuMemPoolGetAccess", __pyx_f[0], 17249, 0, __PYX_ERR(0, 17249, __pyx_L1_error));

  /* "cuda/cuda.pyx":17278
 *     """
 *     cdef ccuda.CUmemAccess_flags flags
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolGetAccess(&flags, memPool._ptr[0], clocation_ptr)
 *     return (CUresult(err), CUmemAccess_flags(flags))
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_location), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17278, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 17278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_location->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_clocation_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":17279
 *     cdef ccuda.CUmemAccess_flags flags
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL
 *     err = ccuda.cuMemPoolGetAccess(&flags, memPool._ptr[0], clocation_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUmemAccess_flags(flags))
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemPoolGetAccess((&__pyx_v_flags), (__pyx_v_memPool->_ptr[0]), __pyx_v_clocation_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17279, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":17280
 *     cdef ccuda.CUmemLocation* clocation_ptr = location._ptr if location != None else NULL
 *     err = ccuda.cuMemPoolGetAccess(&flags, memPool._ptr[0], clocation_ptr)
 *     return (CUresult(err), CUmemAccess_flags(flags))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUmemAccess_flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(__pyx_v_flags); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17249
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAccess(memPool not None : CUmemoryPool, location : CUmemLocation):             # <<<<<<<<<<<<<<
 *     """ Returns the accessibility of a pool from a device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolGetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17283
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolCreate(poolProps : CUmemPoolProps):             # <<<<<<<<<<<<<<
 *     """ Creates a memory pool.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_301cuMemPoolCreate(PyObject *__pyx_self, PyObject *__pyx_v_poolProps); /*proto*/
static char __pyx_doc_4cuda_4cuda_300cuMemPoolCreate[] = "cuMemPoolCreate(CUmemPoolProps poolProps: CUmemPoolProps)\n Creates a memory pool.\n\n    Creates a CUDA memory pool and returns the handle in `pool`. The\n    `poolProps` determines the properties of the pool such as the backing\n    device and IPC capabilities.\n\n    By default, the pool's memory will be accessible from the device it is\n    allocated on.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuDeviceSetMemPool\n    cuDeviceGetMemPool\n    cuDeviceGetDefaultMemPool\n    cuMemAllocFromPoolAsync\n    cuMemPoolExportToShareableHandle\n\n    Notes\n    -----\n    Specifying CU_MEM_HANDLE_TYPE_NONE creates a memory pool that will not support IPC.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_301cuMemPoolCreate = {"cuMemPoolCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_301cuMemPoolCreate, METH_O, __pyx_doc_4cuda_4cuda_300cuMemPoolCreate};
static PyObject *__pyx_pw_4cuda_4cuda_301cuMemPoolCreate(PyObject *__pyx_self, PyObject *__pyx_v_poolProps) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolCreate (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_poolProps), __pyx_ptype_4cuda_4cuda_CUmemPoolProps, 1, "poolProps", 0))) __PYX_ERR(0, 17283, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_300cuMemPoolCreate(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *)__pyx_v_poolProps));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_300cuMemPoolCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *__pyx_v_poolProps) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  __pyx_t_4cuda_5ccuda_CUmemPoolProps *__pyx_v_cpoolProps_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__667)
  __Pyx_RefNannySetupContext("cuMemPoolCreate", 0);
  __Pyx_TraceCall("cuMemPoolCreate", __pyx_f[0], 17283, 0, __PYX_ERR(0, 17283, __pyx_L1_error));

  /* "cuda/cuda.pyx":17317
 * 
 *     """
 *     cdef CUmemoryPool pool = CUmemoryPool()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemPoolProps* cpoolProps_ptr = poolProps._ptr if poolProps != None else NULL
 *     err = ccuda.cuMemPoolCreate(pool._ptr, cpoolProps_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemoryPool)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17318
 *     """
 *     cdef CUmemoryPool pool = CUmemoryPool()
 *     cdef ccuda.CUmemPoolProps* cpoolProps_ptr = poolProps._ptr if poolProps != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolCreate(pool._ptr, cpoolProps_ptr)
 *     return (CUresult(err), pool)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_poolProps), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17318, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 17318, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_poolProps->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cpoolProps_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":17319
 *     cdef CUmemoryPool pool = CUmemoryPool()
 *     cdef ccuda.CUmemPoolProps* cpoolProps_ptr = poolProps._ptr if poolProps != None else NULL
 *     err = ccuda.cuMemPoolCreate(pool._ptr, cpoolProps_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pool)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemPoolCreate(__pyx_v_pool->_ptr, __pyx_v_cpoolProps_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17319, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":17320
 *     cdef ccuda.CUmemPoolProps* cpoolProps_ptr = poolProps._ptr if poolProps != None else NULL
 *     err = ccuda.cuMemPoolCreate(pool._ptr, cpoolProps_ptr)
 *     return (CUresult(err), pool)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pool));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pool));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_pool));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17283
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolCreate(poolProps : CUmemPoolProps):             # <<<<<<<<<<<<<<
 *     """ Creates a memory pool.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pool);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17323
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolDestroy(pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Destroys the specified memory pool.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_303cuMemPoolDestroy(PyObject *__pyx_self, PyObject *__pyx_v_pool); /*proto*/
static char __pyx_doc_4cuda_4cuda_302cuMemPoolDestroy[] = "cuMemPoolDestroy(CUmemoryPool pool: CUmemoryPool)\n Destroys the specified memory pool.\n\n    If any pointers obtained from this pool haven't been freed or the pool\n    has free operations that haven't completed when cuMemPoolDestroy is\n    invoked, the function will return immediately and the resources\n    associated with the pool will be released automatically once there are\n    no more outstanding allocations.\n\n    Destroying the current mempool of a device sets the default mempool of\n    that device as the current mempool for that device.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemFreeAsync\n    cuDeviceSetMemPool\n    cuDeviceGetMemPool\n    cuDeviceGetDefaultMemPool\n    cuMemPoolCreate\n\n    Notes\n    -----\n    A device's default memory pool cannot be destroyed.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_303cuMemPoolDestroy = {"cuMemPoolDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_303cuMemPoolDestroy, METH_O, __pyx_doc_4cuda_4cuda_302cuMemPoolDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_303cuMemPoolDestroy(PyObject *__pyx_self, PyObject *__pyx_v_pool) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17323, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_302cuMemPoolDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_v_pool));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_302cuMemPoolDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__668)
  __Pyx_RefNannySetupContext("cuMemPoolDestroy", 0);
  __Pyx_TraceCall("cuMemPoolDestroy", __pyx_f[0], 17323, 0, __PYX_ERR(0, 17323, __pyx_L1_error));

  /* "cuda/cuda.pyx":17356
 * 
 *     """
 *     err = ccuda.cuMemPoolDestroy(pool._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemPoolDestroy((__pyx_v_pool->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17356, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":17357
 *     """
 *     err = ccuda.cuMemPoolDestroy(pool._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17323
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolDestroy(pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Destroys the specified memory pool.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17360
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocFromPoolAsync(size_t bytesize, pool not None : CUmemoryPool, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory from a specified pool with stream ordered semantics.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_305cuMemAllocFromPoolAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_304cuMemAllocFromPoolAsync[] = "cuMemAllocFromPoolAsync(size_t bytesize, CUmemoryPool pool: CUmemoryPool, CUstream hStream: CUstream)\n Allocates memory from a specified pool with stream ordered semantics.\n\n    Inserts an allocation operation into `hStream`. A pointer to the\n    allocated memory is returned immediately in *dptr. The allocation must\n    not be accessed until the the allocation operation completes. The\n    allocation comes from the specified memory pool.\n\n    Parameters\n    ----------\n    bytesize : size_t\n        Number of bytes to allocate\n    pool : CUmemoryPool\n        The pool to allocate from\n    hStream : CUstream\n        The stream establishing the stream ordering semantic\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        (default\n        stream\n        specified\n        with\n        no\n        current\n        context)\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_OUT_OF_MEMORY\n    dptr : CUdeviceptr\n        Returned device pointer\n\n    See Also\n    --------\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    cuMemPoolSetAccess\n    cuMemPoolSetAttribute\n\n    Notes\n    -----\n    During stream capture, this function results in the creation of an allocation node. In this case, the allocation is owned by the graph instead of the memory pool. The memory pool's properties are used to set the node's creation parameters.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_305cuMemAllocFromPoolAsync = {"cuMemAllocFromPoolAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_305cuMemAllocFromPoolAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_304cuMemAllocFromPoolAsync};
static PyObject *__pyx_pw_4cuda_4cuda_305cuMemAllocFromPoolAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_bytesize;
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAllocFromPoolAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bytesize_2,&__pyx_n_s_pool,&__pyx_n_s_hStream_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bytesize_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAllocFromPoolAsync", 1, 3, 3, 1); __PYX_ERR(0, 17360, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAllocFromPoolAsync", 1, 3, 3, 2); __PYX_ERR(0, 17360, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAllocFromPoolAsync") < 0)) __PYX_ERR(0, 17360, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_bytesize = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_bytesize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17360, __pyx_L3_error)
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[1]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAllocFromPoolAsync", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17360, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocFromPoolAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17360, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 17360, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_304cuMemAllocFromPoolAsync(__pyx_self, __pyx_v_bytesize, __pyx_v_pool, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_304cuMemAllocFromPoolAsync(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_bytesize, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__669)
  __Pyx_RefNannySetupContext("cuMemAllocFromPoolAsync", 0);
  __Pyx_TraceCall("cuMemAllocFromPoolAsync", __pyx_f[0], 17360, 0, __PYX_ERR(0, 17360, __pyx_L1_error));

  /* "cuda/cuda.pyx":17411
 * 
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAllocFromPoolAsync(dptr._ptr, bytesize, pool._ptr[0], hStream._ptr[0])
 *     return (CUresult(err), dptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17412
 *     """
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAllocFromPoolAsync(dptr._ptr, bytesize, pool._ptr[0], hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemAllocFromPoolAsync(__pyx_v_dptr->_ptr, __pyx_v_bytesize, (__pyx_v_pool->_ptr[0]), (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17412, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":17413
 *     cdef CUdeviceptr dptr = CUdeviceptr()
 *     err = ccuda.cuMemAllocFromPoolAsync(dptr._ptr, bytesize, pool._ptr[0], hStream._ptr[0])
 *     return (CUresult(err), dptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17360
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocFromPoolAsync(size_t bytesize, pool not None : CUmemoryPool, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory from a specified pool with stream ordered semantics.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemAllocFromPoolAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17416
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportToShareableHandle(pool not None : CUmemoryPool, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports a memory pool to the requested handle type.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_307cuMemPoolExportToShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_306cuMemPoolExportToShareableHandle[] = "cuMemPoolExportToShareableHandle(CUmemoryPool pool: CUmemoryPool, handleType: CUmemAllocationHandleType, unsigned long long flags)\n Exports a memory pool to the requested handle type.\n\n    Given an IPC capable mempool, create an OS handle to share the pool\n    with another process. A recipient process can convert the shareable\n    handle into a mempool with cuMemPoolImportFromShareableHandle.\n    Individual pointers can then be shared with the cuMemPoolExportPointer\n    and cuMemPoolImportPointer APIs. The implementation of what the\n    shareable handle is and how it can be transferred is defined by the\n    requested handle type.\n\n    Parameters\n    ----------\n    pool : CUmemoryPool\n        pool to export\n    handleType : CUmemAllocationHandleType\n        the type of handle to create\n    flags : unsigned long long\n        must be 0\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_OUT_OF_MEMORY\n    handle_out : int\n        Returned OS handle\n\n    See Also\n    --------\n    cuMemPoolImportFromShareableHandle\n    cuMemPoolExportPointer\n    cuMemPoolImportPointer\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuDeviceGetDefaultMemPool\n    cuDeviceGetMemPool\n    cuMemPoolCreate\n    cuMemPoolSetAccess\n    cuMemPoolSetAttribute\n\n    Notes\n    -----\n    : To create an IPC capable mempool, create a mempool with a CUmemAllocationHandleType other than CU_MEM_HANDLE_TYPE_NONE.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_307cuMemPoolExportToShareableHandle = {"cuMemPoolExportToShareableHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_307cuMemPoolExportToShareableHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_306cuMemPoolExportToShareableHandle};
static PyObject *__pyx_pw_4cuda_4cuda_307cuMemPoolExportToShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  PyObject *__pyx_v_handleType = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolExportToShareableHandle (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_handleType,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handleType)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolExportToShareableHandle", 1, 3, 3, 1); __PYX_ERR(0, 17416, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolExportToShareableHandle", 1, 3, 3, 2); __PYX_ERR(0, 17416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolExportToShareableHandle") < 0)) __PYX_ERR(0, 17416, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_handleType = values[1];
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[2]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 17416, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolExportToShareableHandle", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolExportToShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17416, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_handleType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "handleType"); __PYX_ERR(0, 17416, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_306cuMemPoolExportToShareableHandle(__pyx_self, __pyx_v_pool, __pyx_v_handleType, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_306cuMemPoolExportToShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, PyObject *__pyx_v_handleType, unsigned PY_LONG_LONG __pyx_v_flags) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_handle_out;
  void *__pyx_v_chandle_out_ptr;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_v_chandleType;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__670)
  __Pyx_RefNannySetupContext("cuMemPoolExportToShareableHandle", 0);
  __Pyx_TraceCall("cuMemPoolExportToShareableHandle", __pyx_f[0], 17416, 0, __PYX_ERR(0, 17416, __pyx_L1_error));

  /* "cuda/cuda.pyx":17464
 * 
 *     """
 *     cdef void_ptr handle_out = 0             # <<<<<<<<<<<<<<
 *     cdef void* chandle_out_ptr = <void*>handle_out
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 */
  __pyx_v_handle_out = 0;

  /* "cuda/cuda.pyx":17465
 *     """
 *     cdef void_ptr handle_out = 0
 *     cdef void* chandle_out_ptr = <void*>handle_out             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemPoolExportToShareableHandle(chandle_out_ptr, pool._ptr[0], chandleType, flags)
 */
  __pyx_v_chandle_out_ptr = ((void *)__pyx_v_handle_out);

  /* "cuda/cuda.pyx":17466
 *     cdef void_ptr handle_out = 0
 *     cdef void* chandle_out_ptr = <void*>handle_out
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolExportToShareableHandle(chandle_out_ptr, pool._ptr[0], chandleType, flags)
 *     return (CUresult(err), handle_out)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_handleType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_chandleType = __pyx_t_2;

  /* "cuda/cuda.pyx":17467
 *     cdef void* chandle_out_ptr = <void*>handle_out
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemPoolExportToShareableHandle(chandle_out_ptr, pool._ptr[0], chandleType, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), handle_out)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemPoolExportToShareableHandle(__pyx_v_chandle_out_ptr, (__pyx_v_pool->_ptr[0]), __pyx_v_chandleType, __pyx_v_flags); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17467, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":17468
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemPoolExportToShareableHandle(chandle_out_ptr, pool._ptr[0], chandleType, flags)
 *     return (CUresult(err), handle_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_handle_out); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17416
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportToShareableHandle(pool not None : CUmemoryPool, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports a memory pool to the requested handle type.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolExportToShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17471
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportFromShareableHandle(handle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ imports a memory pool from a shared handle.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_309cuMemPoolImportFromShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_308cuMemPoolImportFromShareableHandle[] = "cuMemPoolImportFromShareableHandle(handle, handleType: CUmemAllocationHandleType, unsigned long long flags)\n imports a memory pool from a shared handle.\n\n    Specific allocations can be imported from the imported pool with\n    cuMemPoolImportPointer.\n\n    Parameters\n    ----------\n    handle : Any\n        OS handle of the pool to open\n    handleType : CUmemAllocationHandleType\n        The type of handle being imported\n    flags : unsigned long long\n        must be 0\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_OUT_OF_MEMORY\n    pool_out : CUmemoryPool\n        Returned memory pool\n\n    See Also\n    --------\n    cuMemPoolExportToShareableHandle\n    cuMemPoolExportPointer\n    cuMemPoolImportPointer\n\n    Notes\n    -----\n    Imported memory pools do not support creating new allocations. As such imported memory pools may not be used in cuDeviceSetMemPool or cuMemAllocFromPoolAsync calls.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_309cuMemPoolImportFromShareableHandle = {"cuMemPoolImportFromShareableHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_309cuMemPoolImportFromShareableHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_308cuMemPoolImportFromShareableHandle};
static PyObject *__pyx_pw_4cuda_4cuda_309cuMemPoolImportFromShareableHandle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_handle = 0;
  PyObject *__pyx_v_handleType = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolImportFromShareableHandle (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handle_2,&__pyx_n_s_handleType,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handle_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handleType)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolImportFromShareableHandle", 1, 3, 3, 1); __PYX_ERR(0, 17471, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolImportFromShareableHandle", 1, 3, 3, 2); __PYX_ERR(0, 17471, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolImportFromShareableHandle") < 0)) __PYX_ERR(0, 17471, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_handle = values[0];
    __pyx_v_handleType = values[1];
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[2]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 17471, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolImportFromShareableHandle", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17471, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolImportFromShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_handleType) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "handleType"); __PYX_ERR(0, 17471, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_308cuMemPoolImportFromShareableHandle(__pyx_self, __pyx_v_handle, __pyx_v_handleType, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_308cuMemPoolImportFromShareableHandle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_handle, PyObject *__pyx_v_handleType, unsigned PY_LONG_LONG __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool_out = 0;
  PyObject *__pyx_v_chandle = NULL;
  void *__pyx_v_chandle_ptr;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_v_chandleType;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__671)
  __Pyx_RefNannySetupContext("cuMemPoolImportFromShareableHandle", 0);
  __Pyx_TraceCall("cuMemPoolImportFromShareableHandle", __pyx_f[0], 17471, 0, __PYX_ERR(0, 17471, __pyx_L1_error));

  /* "cuda/cuda.pyx":17507
 * 
 *     """
 *     cdef CUmemoryPool pool_out = CUmemoryPool()             # <<<<<<<<<<<<<<
 *     chandle = utils.HelperInputVoidPtr(handle)
 *     cdef void* chandle_ptr = <void*><void_ptr>chandle.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemoryPool)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pool_out = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17508
 *     """
 *     cdef CUmemoryPool pool_out = CUmemoryPool()
 *     chandle = utils.HelperInputVoidPtr(handle)             # <<<<<<<<<<<<<<
 *     cdef void* chandle_ptr = <void*><void_ptr>chandle.cptr
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_handle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_chandle = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17509
 *     cdef CUmemoryPool pool_out = CUmemoryPool()
 *     chandle = utils.HelperInputVoidPtr(handle)
 *     cdef void* chandle_ptr = <void*><void_ptr>chandle.cptr             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemPoolImportFromShareableHandle(pool_out._ptr, chandle_ptr, chandleType, flags)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_chandle, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 17509, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_chandle_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":17510
 *     chandle = utils.HelperInputVoidPtr(handle)
 *     cdef void* chandle_ptr = <void*><void_ptr>chandle.cptr
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolImportFromShareableHandle(pool_out._ptr, chandle_ptr, chandleType, flags)
 *     return (CUresult(err), pool_out)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_handleType, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = ((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17510, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_chandleType = __pyx_t_3;

  /* "cuda/cuda.pyx":17511
 *     cdef void* chandle_ptr = <void*><void_ptr>chandle.cptr
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemPoolImportFromShareableHandle(pool_out._ptr, chandle_ptr, chandleType, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pool_out)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemPoolImportFromShareableHandle(__pyx_v_pool_out->_ptr, __pyx_v_chandle_ptr, __pyx_v_chandleType, __pyx_v_flags); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17511, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":17512
 *     cdef ccuda.CUmemAllocationHandleType chandleType = handleType.value
 *     err = ccuda.cuMemPoolImportFromShareableHandle(pool_out._ptr, chandle_ptr, chandleType, flags)
 *     return (CUresult(err), pool_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pool_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pool_out));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_pool_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17471
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportFromShareableHandle(handle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ imports a memory pool from a shared handle.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolImportFromShareableHandle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pool_out);
  __Pyx_XDECREF(__pyx_v_chandle);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17515
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportPointer(ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Export data to share a memory pool allocation between processes.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_311cuMemPoolExportPointer(PyObject *__pyx_self, PyObject *__pyx_v_ptr); /*proto*/
static char __pyx_doc_4cuda_4cuda_310cuMemPoolExportPointer[] = "cuMemPoolExportPointer(CUdeviceptr ptr: CUdeviceptr)\n Export data to share a memory pool allocation between processes.\n\n    Constructs `shareData_out` for sharing a specific allocation from an\n    already shared memory pool. The recipient process can import the\n    allocation with the cuMemPoolImportPointer api. The data is not a\n    handle and may be shared through any IPC mechanism.\n\n    Parameters\n    ----------\n    ptr : CUdeviceptr\n        pointer to memory being exported\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_OUT_OF_MEMORY\n    shareData_out : CUmemPoolPtrExportData\n        Returned export data\n\n    See Also\n    --------\n    cuMemPoolExportToShareableHandle\n    cuMemPoolImportFromShareableHandle\n    cuMemPoolImportPointer\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_311cuMemPoolExportPointer = {"cuMemPoolExportPointer", (PyCFunction)__pyx_pw_4cuda_4cuda_311cuMemPoolExportPointer, METH_O, __pyx_doc_4cuda_4cuda_310cuMemPoolExportPointer};
static PyObject *__pyx_pw_4cuda_4cuda_311cuMemPoolExportPointer(PyObject *__pyx_self, PyObject *__pyx_v_ptr) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolExportPointer (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 17515, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_310cuMemPoolExportPointer(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_v_ptr));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_310cuMemPoolExportPointer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr) {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData *__pyx_v_shareData_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__672)
  __Pyx_RefNannySetupContext("cuMemPoolExportPointer", 0);
  __Pyx_TraceCall("cuMemPoolExportPointer", __pyx_f[0], 17515, 0, __PYX_ERR(0, 17515, __pyx_L1_error));

  /* "cuda/cuda.pyx":17544
 *     cuMemPoolImportPointer
 *     """
 *     cdef CUmemPoolPtrExportData shareData_out = CUmemPoolPtrExportData()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolExportPointer(shareData_out._ptr, ptr._ptr[0])
 *     return (CUresult(err), shareData_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_shareData_out = ((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17545
 *     """
 *     cdef CUmemPoolPtrExportData shareData_out = CUmemPoolPtrExportData()
 *     err = ccuda.cuMemPoolExportPointer(shareData_out._ptr, ptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), shareData_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuMemPoolExportPointer(__pyx_v_shareData_out->__pyx_base._ptr, (__pyx_v_ptr->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17545, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":17546
 *     cdef CUmemPoolPtrExportData shareData_out = CUmemPoolPtrExportData()
 *     err = ccuda.cuMemPoolExportPointer(shareData_out._ptr, ptr._ptr[0])
 *     return (CUresult(err), shareData_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_shareData_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_shareData_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_shareData_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17515
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportPointer(ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Export data to share a memory pool allocation between processes.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolExportPointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_shareData_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17549
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportPointer(pool not None : CUmemoryPool, shareData : CUmemPoolPtrExportData):             # <<<<<<<<<<<<<<
 *     """ Import a memory pool allocation from another process.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_313cuMemPoolImportPointer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_312cuMemPoolImportPointer[] = "cuMemPoolImportPointer(CUmemoryPool pool: CUmemoryPool, CUmemPoolPtrExportData shareData: CUmemPoolPtrExportData)\n Import a memory pool allocation from another process.\n\n    Returns in `ptr_out` a pointer to the imported memory. The imported\n    memory must not be accessed before the allocation operation completes\n    in the exporting process. The imported memory must be freed from all\n    importing processes before being freed in the exporting process. The\n    pointer may be freed with cuMemFree or cuMemFreeAsync. If\n    cuMemFreeAsync is used, the free must be completed on the importing\n    process before the free operation on the exporting process.\n\n    Parameters\n    ----------\n    pool : CUmemoryPool\n        pool from which to import\n    shareData : CUmemPoolPtrExportData\n        data specifying the memory to import\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_OUT_OF_MEMORY\n    ptr_out : CUdeviceptr\n        pointer to imported memory\n\n    See Also\n    --------\n    cuMemPoolExportToShareableHandle\n    cuMemPoolImportFromShareableHandle\n    cuMemPoolExportPointer\n\n    Notes\n    -----\n    The cuMemFreeAsync api may be used in the exporting process before the cuMemFreeAsync operation completes in its stream as long as the cuMemFreeAsync in the exporting process specifies a stream with a stream dependency on the importing process's cuMemFreeAsync.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_313cuMemPoolImportPointer = {"cuMemPoolImportPointer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_313cuMemPoolImportPointer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_312cuMemPoolImportPointer};
static PyObject *__pyx_pw_4cuda_4cuda_313cuMemPoolImportPointer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool = 0;
  struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData *__pyx_v_shareData = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPoolImportPointer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_shareData,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shareData)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPoolImportPointer", 1, 2, 2, 1); __PYX_ERR(0, 17549, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPoolImportPointer") < 0)) __PYX_ERR(0, 17549, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_pool = ((struct __pyx_obj_4cuda_4cuda_CUmemoryPool *)values[0]);
    __pyx_v_shareData = ((struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPoolImportPointer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17549, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolImportPointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_4cuda_4cuda_CUmemoryPool, 0, "pool", 0))) __PYX_ERR(0, 17549, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shareData), __pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData, 1, "shareData", 0))) __PYX_ERR(0, 17549, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_312cuMemPoolImportPointer(__pyx_self, __pyx_v_pool, __pyx_v_shareData);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_312cuMemPoolImportPointer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUmemoryPool *__pyx_v_pool, struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData *__pyx_v_shareData) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr_out = 0;
  __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData *__pyx_v_cshareData_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__673)
  __Pyx_RefNannySetupContext("cuMemPoolImportPointer", 0);
  __Pyx_TraceCall("cuMemPoolImportPointer", __pyx_f[0], 17549, 0, __PYX_ERR(0, 17549, __pyx_L1_error));

  /* "cuda/cuda.pyx":17588
 * 
 *     """
 *     cdef CUdeviceptr ptr_out = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemPoolPtrExportData* cshareData_ptr = shareData._ptr if shareData != None else NULL
 *     err = ccuda.cuMemPoolImportPointer(ptr_out._ptr, pool._ptr[0], cshareData_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ptr_out = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17589
 *     """
 *     cdef CUdeviceptr ptr_out = CUdeviceptr()
 *     cdef ccuda.CUmemPoolPtrExportData* cshareData_ptr = shareData._ptr if shareData != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemPoolImportPointer(ptr_out._ptr, pool._ptr[0], cshareData_ptr)
 *     return (CUresult(err), ptr_out)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_shareData), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17589, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 17589, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_shareData->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cshareData_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":17590
 *     cdef CUdeviceptr ptr_out = CUdeviceptr()
 *     cdef ccuda.CUmemPoolPtrExportData* cshareData_ptr = shareData._ptr if shareData != None else NULL
 *     err = ccuda.cuMemPoolImportPointer(ptr_out._ptr, pool._ptr[0], cshareData_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), ptr_out)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuMemPoolImportPointer(__pyx_v_ptr_out->_ptr, (__pyx_v_pool->_ptr[0]), __pyx_v_cshareData_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17590, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":17591
 *     cdef ccuda.CUmemPoolPtrExportData* cshareData_ptr = shareData._ptr if shareData != None else NULL
 *     err = ccuda.cuMemPoolImportPointer(ptr_out._ptr, pool._ptr[0], cshareData_ptr)
 *     return (CUresult(err), ptr_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 17591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_ptr_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_ptr_out));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_ptr_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17549
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportPointer(pool not None : CUmemoryPool, shareData : CUmemPoolPtrExportData):             # <<<<<<<<<<<<<<
 *     """ Import a memory pool allocation from another process.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemPoolImportPointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_ptr_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17594
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttribute(attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_315cuPointerGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_314cuPointerGetAttribute[] = "cuPointerGetAttribute(attribute: CUpointer_attribute, CUdeviceptr ptr: CUdeviceptr)\n Returns information about a pointer.\n\n    The supported attributes are:\n\n    CU_POINTER_ATTRIBUTE_CONTEXT: Returns in `*data` the CUcontext in which\n    `ptr` was allocated or registered. The type of `data` must be CUcontext\n    *. If `ptr` was not allocated by, mapped by, or registered with a\n    CUcontext which uses unified virtual addressing then\n    CUDA_ERROR_INVALID_VALUE is returned. CU_POINTER_ATTRIBUTE_MEMORY_TYPE:\n    Returns in `*data` the physical memory type of the memory that `ptr`\n    addresses as a CUmemorytype enumerated value. The type of `data` must\n    be unsigned int. If `ptr` addresses device memory then `*data` is set\n    to CU_MEMORYTYPE_DEVICE. The particular CUdevice on which the memory\n    resides is the CUdevice of the CUcontext returned by the\n    CU_POINTER_ATTRIBUTE_CONTEXT attribute of `ptr`. If `ptr` addresses\n    host memory then `*data` is set to CU_MEMORYTYPE_HOST. If `ptr` was not\n    allocated by, mapped by, or registered with a CUcontext which uses\n    unified virtual addressing then CUDA_ERROR_INVALID_VALUE is returned.\n    If the current CUcontext does not support unified virtual addressing\n    then CUDA_ERROR_INVALID_CONTEXT is returned.\n    CU_POINTER_ATTRIBUTE_DEVICE_POINTER: Returns in `*data` the device\n    pointer value through which `ptr` may be accessed by kernels running in\n    the current CUcontext. The type of `data` must be CUdeviceptr *. If\n    there exists no device pointer value through which kernels running in\n    the current CUcontext may access `ptr` then CUDA_ERROR_INVALID_VALUE is\n    returned. If there is no current CUcontext then\n    CUDA_ERROR_INVALID_CONTEXT is returned. Except in the exceptional\n    disjoint addressing cases discussed below, the value returned in\n    `*data` will equal the input value `ptr`.\n    CU_POINTER_ATTRIBUTE_HOST_POINTER: Returns in `*data` the host pointer\n    v""alue through which `ptr` may be accessed by by the host program. The\n    type of `data` must be void **. If there exists no host pointer value\n    through which the host program may directly access `ptr` then\n    CUDA_ERROR_INVALID_VALUE is returned. Except in the exceptional\n    disjoint addressing cases discussed below, the value returned in\n    `*data` will equal the input value `ptr`.\n    CU_POINTER_ATTRIBUTE_P2P_TOKENS: Returns in `*data` two tokens for use\n    with the nv-p2p.h Linux kernel interface. `data` must be a struct of\n    type CUDA_POINTER_ATTRIBUTE_P2P_TOKENS. `ptr` must be a pointer to\n    memory obtained from :cuMemAlloc(). Note that p2pToken and vaSpaceToken\n    are only valid for the lifetime of the source allocation. A subsequent\n    allocation at the same address may return completely different tokens.\n    Querying this attribute has a side effect of setting the attribute\n    CU_POINTER_ATTRIBUTE_SYNC_MEMOPS for the region of memory that `ptr`\n    points to. CU_POINTER_ATTRIBUTE_SYNC_MEMOPS: A boolean attribute which\n    when set, ensures that synchronous memory operations initiated on the\n    region of memory that `ptr` points to will always synchronize. See\n    further documentation in the section titled \"API synchronization\n    behavior\" to learn more about cases when synchronous memory operations\n    can exhibit asynchronous behavior. CU_POINTER_ATTRIBUTE_BUFFER_ID:\n    Returns in `*data` a buffer ID which is guaranteed to be unique within\n    the process. `data` must point to an unsigned long long. `ptr` must be\n    a pointer to memory obtained from a CUDA memory allocation API. Every\n    memory allocation from any of the CUDA memory allocation APIs will have\n    a unique ID over a process lifetime. Subsequent allocations do not\n    reuse IDs from previous freed allocations. IDs are only unique within a\n    single process. CU_POINTER_ATTRIBUTE_IS_MANAGED: Returns in `*data` a\n    boolean that indicates whether"" the pointer points to managed memory or\n    not. If `ptr` is not a valid CUDA pointer then CUDA_ERROR_INVALID_VALUE\n    is returned. CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL: Returns in `*data` an\n    integer representing a device ordinal of a device against which the\n    memory was allocated or registered.\n    CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE: Returns in `*data` a\n    boolean that indicates if this pointer maps to an allocation that is\n    suitable for cudaIpcGetMemHandle.\n    CU_POINTER_ATTRIBUTE_RANGE_START_ADDR: Returns in `*data` the starting\n    address for the allocation referenced by the device pointer `ptr`. Note\n    that this is not necessarily the address of the mapped region, but the\n    address of the mappable address range `ptr` references (e.g. from\n    cuMemAddressReserve). CU_POINTER_ATTRIBUTE_RANGE_SIZE: Returns in\n    `*data` the size for the allocation referenced by the device pointer\n    `ptr`. Note that this is not necessarily the size of the mapped region,\n    but the size of the mappable address range `ptr` references (e.g. from\n    cuMemAddressReserve). To retrieve the size of the mapped region, see\n    cuMemGetAddressRange CU_POINTER_ATTRIBUTE_MAPPED: Returns in `*data` a\n    boolean that indicates if this pointer is in a valid address range that\n    is mapped to a backing allocation.\n    CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES: Returns a bitmask of the\n    allowed handle types for an allocation that may be passed to\n    cuMemExportToShareableHandle. CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE:\n    Returns in `*data` the handle to the mempool that the allocation was\n    obtained from.\n\n\n\n    Parameters\n    ----------\n    attribute : CUpointer_attribute\n        Pointer attribute to query\n    ptr : CUdeviceptr\n        Pointer\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUD""A_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    data : Any\n        Returned pointer attribute value\n\n    See Also\n    --------\n    cuPointerSetAttribute\n    cuMemAlloc\n    cuMemFree\n    cuMemAllocHost\n    cuMemFreeHost\n    cuMemHostAlloc\n    cuMemHostRegister\n    cuMemHostUnregister\n    cudaPointerGetAttributes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_315cuPointerGetAttribute = {"cuPointerGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_315cuPointerGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_314cuPointerGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_315cuPointerGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_attribute = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuPointerGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_attribute,&__pyx_n_s_ptr_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attribute)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuPointerGetAttribute", 1, 2, 2, 1); __PYX_ERR(0, 17594, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuPointerGetAttribute") < 0)) __PYX_ERR(0, 17594, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_attribute = values[0];
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuPointerGetAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17594, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuPointerGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_attribute) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attribute"); __PYX_ERR(0, 17594, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 17594, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_314cuPointerGetAttribute(__pyx_self, __pyx_v_attribute, __pyx_v_ptr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_314cuPointerGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attribute, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr) {
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute *__pyx_v_cdata = 0;
  void *__pyx_v_cdata_ptr;
  __pyx_t_4cuda_5ccuda_CUpointer_attribute __pyx_v_cattribute;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUpointer_attribute __pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__674)
  __Pyx_RefNannySetupContext("cuPointerGetAttribute", 0);
  __Pyx_TraceCall("cuPointerGetAttribute", __pyx_f[0], 17594, 0, __PYX_ERR(0, 17594, __pyx_L1_error));

  /* "cuda/cuda.pyx":17711
 *     cudaPointerGetAttributes
 *     """
 *     cdef utils.HelperCUpointer_attribute cdata = utils.HelperCUpointer_attribute(attribute, 0, is_getter=True)             # <<<<<<<<<<<<<<
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_attribute);
  __Pyx_GIVEREF(__pyx_v_attribute);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_attribute);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_is_getter, Py_True) < 0) __PYX_ERR(0, 17711, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUpointer_attribute), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_cdata = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17712
 *     """
 *     cdef utils.HelperCUpointer_attribute cdata = utils.HelperCUpointer_attribute(attribute, 0, is_getter=True)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 *     err = ccuda.cuPointerGetAttribute(cdata_ptr, cattribute, ptr._ptr[0])
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cdata), __pyx_n_s_cptr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_3); if (unlikely((__pyx_t_4 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 17712, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cdata_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_4));

  /* "cuda/cuda.pyx":17713
 *     cdef utils.HelperCUpointer_attribute cdata = utils.HelperCUpointer_attribute(attribute, 0, is_getter=True)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuPointerGetAttribute(cdata_ptr, cattribute, ptr._ptr[0])
 *     return (CUresult(err), cdata.pyObj())
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_attribute, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17713, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cattribute = __pyx_t_5;

  /* "cuda/cuda.pyx":17714
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 *     err = ccuda.cuPointerGetAttribute(cdata_ptr, cattribute, ptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), cdata.pyObj())
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuPointerGetAttribute(__pyx_v_cdata_ptr, __pyx_v_cattribute, (__pyx_v_ptr->_ptr[0])); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17714, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":17715
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 *     err = ccuda.cuPointerGetAttribute(cdata_ptr, cattribute, ptr._ptr[0])
 *     return (CUresult(err), cdata.pyObj())             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cdata), __pyx_n_s_pyObj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17594
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttribute(attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuPointerGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cdata);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17718
 * 
 * @cython.embedsignature(True)
 * def cuMemPrefetchAsync(devPtr not None : CUdeviceptr, size_t count, dstDevice not None : CUdevice, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Prefetches memory to the specified destination device.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_317cuMemPrefetchAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_316cuMemPrefetchAsync[] = "cuMemPrefetchAsync(CUdeviceptr devPtr: CUdeviceptr, size_t count, CUdevice dstDevice: CUdevice, CUstream hStream: CUstream)\n Prefetches memory to the specified destination device.\n\n    Prefetches memory to the specified destination device. `devPtr` is the\n    base device pointer of the memory to be prefetched and `dstDevice` is\n    the destination device. `count` specifies the number of bytes to copy.\n    `hStream` is the stream in which the operation is enqueued. The memory\n    range must refer to managed memory allocated via cuMemAllocManaged or\n    declared via managed variables.\n\n    Passing in CU_DEVICE_CPU for `dstDevice` will prefetch the data to host\n    memory. If `dstDevice` is a GPU, then the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS must be non-zero.\n    Additionally, `hStream` must be associated with a device that has a\n    non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS.\n\n    The start address and end address of the memory range will be rounded\n    down and rounded up respectively to be aligned to CPU page size before\n    the prefetch operation is enqueued in the stream.\n\n    If no physical memory has been allocated for this region, then this\n    memory region will be populated and mapped on the destination device.\n    If there's insufficient memory to prefetch the desired region, the\n    Unified Memory driver may evict pages from other cuMemAllocManaged\n    allocations to host memory in order to make room. Device memory\n    allocated using cuMemAlloc or cuArrayCreate will not be evicted.\n\n    By default, any mappings to the previous location of the migrated pages\n    are removed and mappings for the new location are only setup on\n    `dstDevice`. The exact behavior however also depends on the settings\n    applied to this memory range via cuMemAdvise as described below:\n\n    If CU_MEM_ADVISE_SET_READ_MOSTLY was set on any subset of this memory\n    range"", then that subset will create a read-only copy of the pages on\n    `dstDevice`.\n\n    If CU_MEM_ADVISE_SET_PREFERRED_LOCATION was called on any subset of\n    this memory range, then the pages will be migrated to `dstDevice` even\n    if `dstDevice` is not the preferred location of any pages in the memory\n    range.\n\n    If CU_MEM_ADVISE_SET_ACCESSED_BY was called on any subset of this\n    memory range, then mappings to those pages from all the appropriate\n    processors are updated to refer to the new location if establishing\n    such a mapping is possible. Otherwise, those mappings are cleared.\n\n    Note that this API is not required for functionality and only serves to\n    improve performance by allowing the application to migrate data to a\n    suitable location before it is accessed. Memory accesses to this range\n    are always coherent and are allowed even when the data is actively\n    being migrated.\n\n    Note that this function is asynchronous with respect to the host and\n    all work on other devices.\n\n    Parameters\n    ----------\n    devPtr : CUdeviceptr\n        Pointer to be prefetched\n    count : size_t\n        Size in bytes\n    dstDevice : CUdevice\n        Destination device to prefetch to\n    hStream : CUstream\n        Stream to enqueue prefetch operation\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpy\n    cuMemcpyPeer\n    cuMemcpyAsync\n    cuMemcpy3DPeerAsync\n    cuMemAdvise\n    cudaMemPrefetchAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_317cuMemPrefetchAsync = {"cuMemPrefetchAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_317cuMemPrefetchAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_316cuMemPrefetchAsync};
static PyObject *__pyx_pw_4cuda_4cuda_317cuMemPrefetchAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr = 0;
  size_t __pyx_v_count;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dstDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemPrefetchAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_devPtr_2,&__pyx_n_s_count,&__pyx_n_s_dstDevice_2,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_devPtr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPrefetchAsync", 1, 4, 4, 1); __PYX_ERR(0, 17718, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPrefetchAsync", 1, 4, 4, 2); __PYX_ERR(0, 17718, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemPrefetchAsync", 1, 4, 4, 3); __PYX_ERR(0, 17718, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemPrefetchAsync") < 0)) __PYX_ERR(0, 17718, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_count = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_count == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17718, __pyx_L3_error)
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[2]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemPrefetchAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17718, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemPrefetchAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_devPtr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "devPtr", 0))) __PYX_ERR(0, 17718, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dstDevice", 0))) __PYX_ERR(0, 17718, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 17718, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_316cuMemPrefetchAsync(__pyx_self, __pyx_v_devPtr, __pyx_v_count, __pyx_v_dstDevice, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_316cuMemPrefetchAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dstDevice, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__675)
  __Pyx_RefNannySetupContext("cuMemPrefetchAsync", 0);
  __Pyx_TraceCall("cuMemPrefetchAsync", __pyx_f[0], 17718, 0, __PYX_ERR(0, 17718, __pyx_L1_error));

  /* "cuda/cuda.pyx":17803
 *     cudaMemPrefetchAsync
 *     """
 *     err = ccuda.cuMemPrefetchAsync(devPtr._ptr[0], count, dstDevice._ptr[0], hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuMemPrefetchAsync((__pyx_v_devPtr->_ptr[0]), __pyx_v_count, (__pyx_v_dstDevice->_ptr[0]), (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17803, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":17804
 *     """
 *     err = ccuda.cuMemPrefetchAsync(devPtr._ptr[0], count, dstDevice._ptr[0], hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17718
 * 
 * @cython.embedsignature(True)
 * def cuMemPrefetchAsync(devPtr not None : CUdeviceptr, size_t count, dstDevice not None : CUdevice, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Prefetches memory to the specified destination device.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuMemPrefetchAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17807
 * 
 * @cython.embedsignature(True)
 * def cuMemAdvise(devPtr not None : CUdeviceptr, size_t count, advice not None : CUmem_advise, device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Advise about the usage of a given memory range.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_319cuMemAdvise(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_318cuMemAdvise[] = "cuMemAdvise(CUdeviceptr devPtr: CUdeviceptr, size_t count, advice: CUmem_advise, CUdevice device: CUdevice)\n Advise about the usage of a given memory range.\n\n    Advise the Unified Memory subsystem about the usage pattern for the\n    memory range starting at `devPtr` with a size of `count` bytes. The\n    start address and end address of the memory range will be rounded down\n    and rounded up respectively to be aligned to CPU page size before the\n    advice is applied. The memory range must refer to managed memory\n    allocated via cuMemAllocManaged or declared via managed variables. The\n    memory range could also refer to system-allocated pageable memory\n    provided it represents a valid, host-accessible region of memory and\n    all additional constraints imposed by `advice` as outlined below are\n    also satisfied. Specifying an invalid system-allocated pageable memory\n    range results in an error being returned.\n\n    The `advice` parameter can take the following values:\n    CU_MEM_ADVISE_SET_READ_MOSTLY: This implies that the data is mostly\n    going to be read from and only occasionally written to. Any read\n    accesses from any processor to this region will create a read-only copy\n    of at least the accessed pages in that processor's memory.\n    Additionally, if cuMemPrefetchAsync is called on this region, it will\n    create a read-only copy of the data on the destination processor. If\n    any processor writes to this region, all copies of the corresponding\n    page will be invalidated except for the one where the write occurred.\n    The `device` argument is ignored for this advice. Note that for a page\n    to be read-duplicated, the accessing processor must either be the CPU\n    or a GPU that has a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS. Also, if a context is\n    created on a device that does not have the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS set, t""hen read-\n    duplication will not occur until all such contexts are destroyed. If\n    the memory region refers to valid system-allocated pageable memory,\n    then the accessing device must have a non-zero value for the device\n    attribute CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS for a read-only\n    copy to be created on that device. Note however that if the accessing\n    device also has a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES, then\n    setting this advice will not create a read-only copy when that device\n    accesses this memory region. CU_MEM_ADVISE_UNSET_READ_MOSTLY: Undoes\n    the effect of CU_MEM_ADVISE_SET_READ_MOSTLY and also prevents the\n    Unified Memory driver from attempting heuristic read-duplication on the\n    memory range. Any read-duplicated copies of the data will be collapsed\n    into a single copy. The location for the collapsed copy will be the\n    preferred location if the page has a preferred location and one of the\n    read-duplicated copies was resident at that location. Otherwise, the\n    location chosen is arbitrary. CU_MEM_ADVISE_SET_PREFERRED_LOCATION:\n    This advice sets the preferred location for the data to be the memory\n    belonging to `device`. Passing in CU_DEVICE_CPU for `device` sets the\n    preferred location as host memory. If `device` is a GPU, then it must\n    have a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS. Setting the preferred\n    location does not cause data to migrate to that location immediately.\n    Instead, it guides the migration policy when a fault occurs on that\n    memory region. If the data is already in its preferred location and the\n    faulting processor can establish a mapping without requiring the data\n    to be migrated, then data migration will be avoided. On the other hand,\n    if the data is not in its preferred location or if a direct mapping\n    cannot ""be established, then it will be migrated to the processor\n    accessing it. It is important to note that setting the preferred\n    location does not prevent data prefetching done using\n    cuMemPrefetchAsync. Having a preferred location can override the page\n    thrash detection and resolution logic in the Unified Memory driver.\n    Normally, if a page is detected to be constantly thrashing between for\n    example host and device memory, the page may eventually be pinned to\n    host memory by the Unified Memory driver. But if the preferred location\n    is set as device memory, then the page will continue to thrash\n    indefinitely. If CU_MEM_ADVISE_SET_READ_MOSTLY is also set on this\n    memory region or any subset of it, then the policies associated with\n    that advice will override the policies of this advice, unless read\n    accesses from `device` will not result in a read-only copy being\n    created on that device as outlined in description for the advice\n    CU_MEM_ADVISE_SET_READ_MOSTLY. If the memory region refers to valid\n    system-allocated pageable memory, then `device` must have a non-zero\n    value for the device attribute\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS. Additionally, if `device`\n    has a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES, then\n    this call has no effect. Note however that this behavior may change in\n    the future. CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION: Undoes the effect\n    of CU_MEM_ADVISE_SET_PREFERRED_LOCATION and changes the preferred\n    location to none. CU_MEM_ADVISE_SET_ACCESSED_BY: This advice implies\n    that the data will be accessed by `device`. Passing in CU_DEVICE_CPU\n    for `device` will set the advice for the CPU. If `device` is a GPU,\n    then the device attribute CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS\n    must be non-zero. This advice does not cause data migration and has no\n    impact on the location of ""the data per se. Instead, it causes the data\n    to always be mapped in the specified processor's page tables, as long\n    as the location of the data permits a mapping to be established. If the\n    data gets migrated for any reason, the mappings are updated\n    accordingly. This advice is recommended in scenarios where data\n    locality is not important, but avoiding faults is. Consider for example\n    a system containing multiple GPUs with peer-to-peer access enabled,\n    where the data located on one GPU is occasionally accessed by peer\n    GPUs. In such scenarios, migrating data over to the other GPUs is not\n    as important because the accesses are infrequent and the overhead of\n    migration may be too high. But preventing faults can still help improve\n    performance, and so having a mapping set up in advance is useful. Note\n    that on CPU access of this data, the data may be migrated to host\n    memory because the CPU typically cannot access device memory directly.\n    Any GPU that had the CU_MEM_ADVISE_SET_ACCESSED_BY flag set for this\n    data will now have its mapping updated to point to the page in host\n    memory. If CU_MEM_ADVISE_SET_READ_MOSTLY is also set on this memory\n    region or any subset of it, then the policies associated with that\n    advice will override the policies of this advice. Additionally, if the\n    preferred location of this memory region or any subset of it is also\n    `device`, then the policies associated with\n    CU_MEM_ADVISE_SET_PREFERRED_LOCATION will override the policies of this\n    advice. If the memory region refers to valid system-allocated pageable\n    memory, then `device` must have a non-zero value for the device\n    attribute CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS. Additionally, if\n    `device` has a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES, then\n    this call has no effect. CU_MEM_ADVISE_UNSET_ACCESSED_BY: Undoes the""\n    effect of CU_MEM_ADVISE_SET_ACCESSED_BY. Any mappings to the data from\n    `device` may be removed at any time causing accesses to result in non-\n    fatal page faults. If the memory region refers to valid system-\n    allocated pageable memory, then `device` must have a non-zero value for\n    the device attribute CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS.\n    Additionally, if `device` has a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES, then\n    this call has no effect.\n\n    Parameters\n    ----------\n    devPtr : CUdeviceptr\n        Pointer to memory to set the advice for\n    count : size_t\n        Size in bytes of the memory range\n    advice : CUmem_advise\n        Advice to be applied for the specified memory range\n    device : CUdevice\n        Device to apply the advice for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpy\n    cuMemcpyPeer\n    cuMemcpyAsync\n    cuMemcpy3DPeerAsync\n    cuMemPrefetchAsync\n    cudaMemAdvise\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_319cuMemAdvise = {"cuMemAdvise", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_319cuMemAdvise, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_318cuMemAdvise};
static PyObject *__pyx_pw_4cuda_4cuda_319cuMemAdvise(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_v_advice = 0;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemAdvise (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_devPtr_2,&__pyx_n_s_count,&__pyx_n_s_advice,&__pyx_n_s_device,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_devPtr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAdvise", 1, 4, 4, 1); __PYX_ERR(0, 17807, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_advice)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAdvise", 1, 4, 4, 2); __PYX_ERR(0, 17807, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemAdvise", 1, 4, 4, 3); __PYX_ERR(0, 17807, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemAdvise") < 0)) __PYX_ERR(0, 17807, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[0]);
    __pyx_v_count = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_count == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17807, __pyx_L3_error)
    __pyx_v_advice = values[2];
    __pyx_v_device = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemAdvise", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17807, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemAdvise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_devPtr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "devPtr", 0))) __PYX_ERR(0, 17807, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_advice) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "advice"); __PYX_ERR(0, 17807, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_device), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "device", 0))) __PYX_ERR(0, 17807, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_318cuMemAdvise(__pyx_self, __pyx_v_devPtr, __pyx_v_count, __pyx_v_advice, __pyx_v_device);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_318cuMemAdvise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count, PyObject *__pyx_v_advice, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device) {
  __pyx_t_4cuda_5ccuda_CUmem_advise __pyx_v_cadvice;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUmem_advise __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__676)
  __Pyx_RefNannySetupContext("cuMemAdvise", 0);
  __Pyx_TraceCall("cuMemAdvise", __pyx_f[0], 17807, 0, __PYX_ERR(0, 17807, __pyx_L1_error));

  /* "cuda/cuda.pyx":17958
 *     cudaMemAdvise
 *     """
 *     cdef ccuda.CUmem_advise cadvice = advice.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemAdvise(devPtr._ptr[0], count, cadvice, device._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_advice, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cadvice = __pyx_t_2;

  /* "cuda/cuda.pyx":17959
 *     """
 *     cdef ccuda.CUmem_advise cadvice = advice.value
 *     err = ccuda.cuMemAdvise(devPtr._ptr[0], count, cadvice, device._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuMemAdvise((__pyx_v_devPtr->_ptr[0]), __pyx_v_count, __pyx_v_cadvice, (__pyx_v_device->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 17959, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":17960
 *     cdef ccuda.CUmem_advise cadvice = advice.value
 *     err = ccuda.cuMemAdvise(devPtr._ptr[0], count, cadvice, device._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 17960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17807
 * 
 * @cython.embedsignature(True)
 * def cuMemAdvise(devPtr not None : CUdeviceptr, size_t count, advice not None : CUmem_advise, device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Advise about the usage of a given memory range.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuMemAdvise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":17963
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttribute(size_t dataSize, attribute not None : CUmem_range_attribute, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query an attribute of a given memory range.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_321cuMemRangeGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_320cuMemRangeGetAttribute[] = "cuMemRangeGetAttribute(size_t dataSize, attribute: CUmem_range_attribute, CUdeviceptr devPtr: CUdeviceptr, size_t count)\n Query an attribute of a given memory range.\n\n    Query an attribute about the memory range starting at `devPtr` with a\n    size of `count` bytes. The memory range must refer to managed memory\n    allocated via cuMemAllocManaged or declared via managed variables.\n\n    The `attribute` parameter can take the following values:\n    CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY: If this attribute is specified,\n    `data` will be interpreted as a 32-bit integer, and `dataSize` must be\n    4. The result returned will be 1 if all pages in the given memory range\n    have read-duplication enabled, or 0 otherwise.\n    CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION: If this attribute is\n    specified, `data` will be interpreted as a 32-bit integer, and\n    `dataSize` must be 4. The result returned will be a GPU device id if\n    all pages in the memory range have that GPU as their preferred\n    location, or it will be CU_DEVICE_CPU if all pages in the memory range\n    have the CPU as their preferred location, or it will be\n    CU_DEVICE_INVALID if either all the pages don't have the same preferred\n    location or some of the pages don't have a preferred location at all.\n    Note that the actual location of the pages in the memory range at the\n    time of the query may be different from the preferred location.\n    CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY: If this attribute is specified,\n    `data` will be interpreted as an array of 32-bit integers, and\n    `dataSize` must be a non-zero multiple of 4. The result returned will\n    be a list of device ids that had CU_MEM_ADVISE_SET_ACCESSED_BY set for\n    that entire memory range. If any device does not have that advice set\n    for the entire memory range, that device will not be included. If\n    `data` is larger than the number of devices that have that advice set\n    for that memory range, CU_DEVICE_INVAL""ID will be returned in all the\n    extra space provided. For ex., if `dataSize` is 12 (i.e. `data` has 3\n    elements) and only device 0 has the advice set, then the result\n    returned will be { 0, CU_DEVICE_INVALID, CU_DEVICE_INVALID }. If `data`\n    is smaller than the number of devices that have that advice set, then\n    only as many devices will be returned as can fit in the array. There is\n    no guarantee on which specific devices will be returned, however.\n    CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION: If this attribute is\n    specified, `data` will be interpreted as a 32-bit integer, and\n    `dataSize` must be 4. The result returned will be the last location to\n    which all pages in the memory range were prefetched explicitly via\n    cuMemPrefetchAsync. This will either be a GPU id or CU_DEVICE_CPU\n    depending on whether the last location for prefetch was a GPU or the\n    CPU respectively. If any page in the memory range was never explicitly\n    prefetched or if all pages were not prefetched to the same location,\n    CU_DEVICE_INVALID will be returned. Note that this simply returns the\n    last location that the applicaton requested to prefetch the memory\n    range to. It gives no indication as to whether the prefetch operation\n    to that location has completed or even begun.\n\n    Parameters\n    ----------\n    dataSize : size_t\n        Array containing the size of data\n    attribute : CUmem_range_attribute\n        The attribute to query\n    devPtr : CUdeviceptr\n        Start of the range to query\n    count : size_t\n        Size of the range to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    data : Any\n        A pointers to a memory location where the result of each attribute\n        query will be written to.\n\n    See Also\n    --------\n    cuMemRangeGetAttributes\n    cuMemPrefetchAsync\n    cuMemAdvise\n    cudaMemRangeG""etAttribute\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_321cuMemRangeGetAttribute = {"cuMemRangeGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_321cuMemRangeGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_320cuMemRangeGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_321cuMemRangeGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_dataSize;
  PyObject *__pyx_v_attribute = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr = 0;
  size_t __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemRangeGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dataSize,&__pyx_n_s_attribute,&__pyx_n_s_devPtr_2,&__pyx_n_s_count,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dataSize)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attribute)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttribute", 1, 4, 4, 1); __PYX_ERR(0, 17963, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_devPtr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttribute", 1, 4, 4, 2); __PYX_ERR(0, 17963, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttribute", 1, 4, 4, 3); __PYX_ERR(0, 17963, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemRangeGetAttribute") < 0)) __PYX_ERR(0, 17963, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_dataSize = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_dataSize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17963, __pyx_L3_error)
    __pyx_v_attribute = values[1];
    __pyx_v_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
    __pyx_v_count = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_count == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17963, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttribute", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17963, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemRangeGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_attribute) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attribute"); __PYX_ERR(0, 17963, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_devPtr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "devPtr", 0))) __PYX_ERR(0, 17963, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_320cuMemRangeGetAttribute(__pyx_self, __pyx_v_dataSize, __pyx_v_attribute, __pyx_v_devPtr, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_320cuMemRangeGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_dataSize, PyObject *__pyx_v_attribute, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count) {
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmem_range_attribute *__pyx_v_cdata = 0;
  void *__pyx_v_cdata_ptr;
  __pyx_t_4cuda_5ccuda_CUmem_range_attribute __pyx_v_cattribute;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUmem_range_attribute __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__677)
  __Pyx_RefNannySetupContext("cuMemRangeGetAttribute", 0);
  __Pyx_TraceCall("cuMemRangeGetAttribute", __pyx_f[0], 17963, 0, __PYX_ERR(0, 17963, __pyx_L1_error));

  /* "cuda/cuda.pyx":18040
 *     cudaMemRangeGetAttribute
 *     """
 *     cdef utils.HelperCUmem_range_attribute cdata = utils.HelperCUmem_range_attribute(attribute, dataSize)             # <<<<<<<<<<<<<<
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     cdef ccuda.CUmem_range_attribute cattribute = attribute.value
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_dataSize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_attribute);
  __Pyx_GIVEREF(__pyx_v_attribute);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_attribute);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUmem_range_attribute), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_cdata = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmem_range_attribute *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18041
 *     """
 *     cdef utils.HelperCUmem_range_attribute cdata = utils.HelperCUmem_range_attribute(attribute, dataSize)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmem_range_attribute cattribute = attribute.value
 *     err = ccuda.cuMemRangeGetAttribute(cdata_ptr, dataSize, cattribute, devPtr._ptr[0], count)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cdata), __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 18041, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cdata_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_3));

  /* "cuda/cuda.pyx":18042
 *     cdef utils.HelperCUmem_range_attribute cdata = utils.HelperCUmem_range_attribute(attribute, dataSize)
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     cdef ccuda.CUmem_range_attribute cattribute = attribute.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemRangeGetAttribute(cdata_ptr, dataSize, cattribute, devPtr._ptr[0], count)
 *     return (CUresult(err), cdata.pyObj())
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attribute, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18042, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = ((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18042, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattribute = __pyx_t_4;

  /* "cuda/cuda.pyx":18043
 *     cdef void* cdata_ptr = <void*><void_ptr>cdata.cptr
 *     cdef ccuda.CUmem_range_attribute cattribute = attribute.value
 *     err = ccuda.cuMemRangeGetAttribute(cdata_ptr, dataSize, cattribute, devPtr._ptr[0], count)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), cdata.pyObj())
 * 
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuMemRangeGetAttribute(__pyx_v_cdata_ptr, __pyx_v_dataSize, __pyx_v_cattribute, (__pyx_v_devPtr->_ptr[0]), __pyx_v_count); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18043, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":18044
 *     cdef ccuda.CUmem_range_attribute cattribute = attribute.value
 *     err = ccuda.cuMemRangeGetAttribute(cdata_ptr, dataSize, cattribute, devPtr._ptr[0], count)
 *     return (CUresult(err), cdata.pyObj())             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cdata), __pyx_n_s_pyObj); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":17963
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttribute(size_t dataSize, attribute not None : CUmem_range_attribute, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query an attribute of a given memory range.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuMemRangeGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cdata);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18047
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttributes(dataSizes : List[int], attributes : List[CUmem_range_attribute], size_t numAttributes, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query attributes of a given memory range.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_323cuMemRangeGetAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_322cuMemRangeGetAttributes[] = "cuMemRangeGetAttributes(dataSizes: List[int], attributes: List[CUmem_range_attribute], size_t numAttributes, CUdeviceptr devPtr: CUdeviceptr, size_t count)\n Query attributes of a given memory range.\n\n    Query attributes of the memory range starting at `devPtr` with a size\n    of `count` bytes. The memory range must refer to managed memory\n    allocated via cuMemAllocManaged or declared via managed variables. The\n    `attributes` array will be interpreted to have `numAttributes` entries.\n    The `dataSizes` array will also be interpreted to have `numAttributes`\n    entries. The results of the query will be stored in `data`.\n\n    The list of supported attributes are given below. Please refer to\n    cuMemRangeGetAttribute for attribute descriptions and restrictions.\n\n    CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY\n    CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION\n    CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY\n    CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION\n\n    Parameters\n    ----------\n    dataSizes : List[int]\n        Array containing the sizes of each result\n    attributes : List[CUmem_range_attribute]\n        An array of attributes to query (numAttributes and the number of\n        attributes in this array should match)\n    numAttributes : size_t\n        Number of attributes to query\n    devPtr : CUdeviceptr\n        Start of the range to query\n    count : size_t\n        Size of the range to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    data : List[Any]\n        A two-dimensional array containing pointers to memory locations\n        where the result of each attribute query will be written to.\n\n    See Also\n    --------\n    cuMemRangeGetAttribute\n    cuMemAdvise\n    cuMemPrefetchAsync\n    cudaMemRangeGetAttributes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_323cuMemRangeGetAttributes = {"cuMemRangeGetAttributes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_323cuMemRangeGetAttributes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_322cuMemRangeGetAttributes};
static PyObject *__pyx_pw_4cuda_4cuda_323cuMemRangeGetAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_dataSizes = 0;
  PyObject *__pyx_v_attributes = 0;
  size_t __pyx_v_numAttributes;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr = 0;
  size_t __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuMemRangeGetAttributes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dataSizes,&__pyx_n_s_attributes,&__pyx_n_s_numAttributes,&__pyx_n_s_devPtr_2,&__pyx_n_s_count,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dataSizes)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attributes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttributes", 1, 5, 5, 1); __PYX_ERR(0, 18047, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numAttributes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttributes", 1, 5, 5, 2); __PYX_ERR(0, 18047, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_devPtr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttributes", 1, 5, 5, 3); __PYX_ERR(0, 18047, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttributes", 1, 5, 5, 4); __PYX_ERR(0, 18047, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuMemRangeGetAttributes") < 0)) __PYX_ERR(0, 18047, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_dataSizes = values[0];
    __pyx_v_attributes = values[1];
    __pyx_v_numAttributes = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numAttributes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 18047, __pyx_L3_error)
    __pyx_v_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[3]);
    __pyx_v_count = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_count == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 18047, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuMemRangeGetAttributes", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18047, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemRangeGetAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_devPtr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "devPtr", 0))) __PYX_ERR(0, 18047, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_322cuMemRangeGetAttributes(__pyx_self, __pyx_v_dataSizes, __pyx_v_attributes, __pyx_v_numAttributes, __pyx_v_devPtr, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_2generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":18099
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 */

static PyObject *__pyx_pf_4cuda_4cuda_23cuMemRangeGetAttributes_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_17_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_17_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18099, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_2generator8, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuMemRangeGetAttributes_locals_g, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 18099, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemRangeGetAttributes.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_2generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 18099, 0, __PYX_ERR(0, 18099, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 18099, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) { __Pyx_RaiseClosureNameError("attributes"); __PYX_ERR(0, 18099, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18099, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18099, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18099, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 18099, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUmem_range_attribute); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v__x, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 18099, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_5generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":18101
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 */

static PyObject *__pyx_pf_4cuda_4cuda_23cuMemRangeGetAttributes_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_18_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_18_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18101, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_5generator9, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuMemRangeGetAttributes_locals_g, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 18101, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuMemRangeGetAttributes.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_5generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 18101, 0, __PYX_ERR(0, 18101, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 18101, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dataSizes)) { __Pyx_RaiseClosureNameError("dataSizes"); __PYX_ERR(0, 18101, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dataSizes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dataSizes)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dataSizes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dataSizes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18101, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18101, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18101, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18101, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18101, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 18101, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = PyInt_Check(__pyx_cur_scope->__pyx_v__x); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18047
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttributes(dataSizes : List[int], attributes : List[CUmem_range_attribute], size_t numAttributes, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query attributes of a given memory range.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_322cuMemRangeGetAttributes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dataSizes, PyObject *__pyx_v_attributes, size_t __pyx_v_numAttributes, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr, size_t __pyx_v_count) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *__pyx_cur_scope;
  PyObject *__pyx_v_pylist = NULL;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *__pyx_v_voidStarHelper = 0;
  void **__pyx_v_cvoidStarHelper_ptr;
  std::vector<size_t>  __pyx_v_cdataSizes;
  std::vector<__pyx_t_4cuda_5ccuda_CUmem_range_attribute>  __pyx_v_cattributes;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_2generator8 = 0;
  PyObject *__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_5generator9 = 0;
  PyObject *__pyx_9genexpr67__pyx_v_pyattributes = NULL;
  PyObject *__pyx_9genexpr67__pyx_v_pydataSizes = NULL;
  PyObject *__pyx_9genexpr68__pyx_v_pyattributes = NULL;
  PyObject *__pyx_9genexpr69__pyx_v_obj = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_12;
  std::vector<size_t>  __pyx_t_13;
  std::vector<__pyx_t_4cuda_5ccuda_CUmem_range_attribute>  __pyx_t_14;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__678)
  __Pyx_RefNannySetupContext("cuMemRangeGetAttributes", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18047, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuMemRangeGetAttributes", __pyx_f[0], 18047, 0, __PYX_ERR(0, 18047, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dataSizes = __pyx_v_dataSizes;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dataSizes);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dataSizes);
  __pyx_cur_scope->__pyx_v_attributes = __pyx_v_attributes;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_attributes);

  /* "cuda/cuda.pyx":18098
 *     cudaMemRangeGetAttributes
 *     """
 *     attributes = [] if attributes is None else attributes             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_attributes == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_attributes;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_attributes);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_attributes, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18099
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_23cuMemRangeGetAttributes_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 18099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":18100
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__679, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 18100, __pyx_L1_error)

    /* "cuda/cuda.pyx":18099
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 */
  }

  /* "cuda/cuda.pyx":18101
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 */
  __pyx_t_3 = __pyx_pf_4cuda_4cuda_23cuMemRangeGetAttributes_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 18101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!__pyx_t_4) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":18102
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__680, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 18102, __pyx_L1_error)

    /* "cuda/cuda.pyx":18101
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 */
  }

  /* "cuda/cuda.pyx":18103
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]             # <<<<<<<<<<<<<<
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18103, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18103, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_attributes);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_attributes);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dataSizes);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dataSizes);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_cur_scope->__pyx_v_dataSizes);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18103, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18103, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 18103, __pyx_L7_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 18103, __pyx_L7_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18103, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 18103, __pyx_L7_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18103, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_7(__pyx_t_3);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 18103, __pyx_L7_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
        PyObject* sequence = __pyx_t_5;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 18103, __pyx_L7_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 18103, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18103, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 18103, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L10_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_9);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 18103, __pyx_L7_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L11_unpacking_done;
        __pyx_L10_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 18103, __pyx_L7_error)
        __pyx_L11_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr67__pyx_v_pyattributes, __pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_9genexpr67__pyx_v_pydataSizes, __pyx_t_9);
      __pyx_t_9 = 0;
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18103, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_9genexpr67__pyx_v_pyattributes);
      __Pyx_GIVEREF(__pyx_9genexpr67__pyx_v_pyattributes);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_9genexpr67__pyx_v_pyattributes);
      __Pyx_INCREF(__pyx_9genexpr67__pyx_v_pydataSizes);
      __Pyx_GIVEREF(__pyx_9genexpr67__pyx_v_pydataSizes);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_9genexpr67__pyx_v_pydataSizes);
      __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUmem_range_attribute), __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18103, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 18103, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_9genexpr67__pyx_v_pyattributes); __pyx_9genexpr67__pyx_v_pyattributes = 0;
    __Pyx_XDECREF(__pyx_9genexpr67__pyx_v_pydataSizes); __pyx_9genexpr67__pyx_v_pydataSizes = 0;
    goto __pyx_L12_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr67__pyx_v_pyattributes); __pyx_9genexpr67__pyx_v_pyattributes = 0;
    __Pyx_XDECREF(__pyx_9genexpr67__pyx_v_pydataSizes); __pyx_9genexpr67__pyx_v_pydataSizes = 0;
    goto __pyx_L1_error;
    __pyx_L12_exit_scope:;
  } /* exit inner scope */
  __pyx_v_pylist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18104
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)             # <<<<<<<<<<<<<<
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 *     cdef vector[size_t] cdataSizes = dataSizes
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __pyx_v_pylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_voidStarHelper = ((struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18105
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr             # <<<<<<<<<<<<<<
 *     cdef vector[size_t] cdataSizes = dataSizes
 *     cdef vector[ccuda.CUmem_range_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_voidStarHelper), __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_12 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 18105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cvoidStarHelper_ptr = ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_12));

  /* "cuda/cuda.pyx":18106
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 *     cdef vector[size_t] cdataSizes = dataSizes             # <<<<<<<<<<<<<<
 *     cdef vector[ccuda.CUmem_range_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 *     if numAttributes > <size_t>len(dataSizes): raise RuntimeError("List is too small: " + str(len(dataSizes)) + " < " + str(numAttributes))
 */
  __pyx_t_13 = __pyx_convert_vector_from_py_size_t(__pyx_cur_scope->__pyx_v_dataSizes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18106, __pyx_L1_error)
  __pyx_v_cdataSizes = __pyx_t_13;

  /* "cuda/cuda.pyx":18107
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 *     cdef vector[size_t] cdataSizes = dataSizes
 *     cdef vector[ccuda.CUmem_range_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]             # <<<<<<<<<<<<<<
 *     if numAttributes > <size_t>len(dataSizes): raise RuntimeError("List is too small: " + str(len(dataSizes)) + " < " + str(numAttributes))
 *     if numAttributes > <size_t>len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18107, __pyx_L15_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_attributes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_attributes)) {
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_attributes; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18107, __pyx_L15_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 18107, __pyx_L15_error)
    }
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 18107, __pyx_L15_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18107, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 18107, __pyx_L15_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18107, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_7(__pyx_t_3);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 18107, __pyx_L15_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr68__pyx_v_pyattributes, __pyx_t_9);
      __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr68__pyx_v_pyattributes, __pyx_n_s_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18107, __pyx_L15_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 18107, __pyx_L15_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_9genexpr68__pyx_v_pyattributes); __pyx_9genexpr68__pyx_v_pyattributes = 0;
    goto __pyx_L18_exit_scope;
    __pyx_L15_error:;
    __Pyx_XDECREF(__pyx_9genexpr68__pyx_v_pyattributes); __pyx_9genexpr68__pyx_v_pyattributes = 0;
    goto __pyx_L1_error;
    __pyx_L18_exit_scope:;
  } /* exit inner scope */
  __pyx_t_14 = __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattributes = __pyx_t_14;

  /* "cuda/cuda.pyx":18108
 *     cdef vector[size_t] cdataSizes = dataSizes
 *     cdef vector[ccuda.CUmem_range_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 *     if numAttributes > <size_t>len(dataSizes): raise RuntimeError("List is too small: " + str(len(dataSizes)) + " < " + str(numAttributes))             # <<<<<<<<<<<<<<
 *     if numAttributes > <size_t>len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     err = ccuda.cuMemRangeGetAttributes(cvoidStarHelper_ptr, cdataSizes.data(), cattributes.data(), numAttributes, devPtr._ptr[0], count)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dataSizes;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_v_numAttributes > ((size_t)__pyx_t_6)) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dataSizes;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_numAttributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_9, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __PYX_ERR(0, 18108, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":18109
 *     cdef vector[ccuda.CUmem_range_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 *     if numAttributes > <size_t>len(dataSizes): raise RuntimeError("List is too small: " + str(len(dataSizes)) + " < " + str(numAttributes))
 *     if numAttributes > <size_t>len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuMemRangeGetAttributes(cvoidStarHelper_ptr, cdataSizes.data(), cattributes.data(), numAttributes, devPtr._ptr[0], count)
 *     return (CUresult(err), [obj.pyObj() for obj in pylist])
 */
  __pyx_t_9 = __pyx_cur_scope->__pyx_v_attributes;
  __Pyx_INCREF(__pyx_t_9);
  __pyx_t_6 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_2 = ((__pyx_v_numAttributes > ((size_t)__pyx_t_6)) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_9 = __pyx_cur_scope->__pyx_v_attributes;
    __Pyx_INCREF(__pyx_t_9);
    __pyx_t_6 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_9, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyInt_FromSize_t(__pyx_v_numAttributes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 18109, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":18110
 *     if numAttributes > <size_t>len(dataSizes): raise RuntimeError("List is too small: " + str(len(dataSizes)) + " < " + str(numAttributes))
 *     if numAttributes > <size_t>len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     err = ccuda.cuMemRangeGetAttributes(cvoidStarHelper_ptr, cdataSizes.data(), cattributes.data(), numAttributes, devPtr._ptr[0], count)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), [obj.pyObj() for obj in pylist])
 * 
 */
  __pyx_t_15 = __pyx_f_4cuda_5ccuda_cuMemRangeGetAttributes(__pyx_v_cvoidStarHelper_ptr, __pyx_v_cdataSizes.data(), __pyx_v_cattributes.data(), __pyx_v_numAttributes, (__pyx_v_devPtr->_ptr[0]), __pyx_v_count); if (unlikely(__pyx_t_15 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18110, __pyx_L1_error)
  __pyx_v_err = __pyx_t_15;

  /* "cuda/cuda.pyx":18111
 *     if numAttributes > <size_t>len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     err = ccuda.cuMemRangeGetAttributes(cvoidStarHelper_ptr, cdataSizes.data(), cattributes.data(), numAttributes, devPtr._ptr[0], count)
 *     return (CUresult(err), [obj.pyObj() for obj in pylist])             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
    }
  }
  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  { /* enter inner scope */
    __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18111, __pyx_L23_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __pyx_v_pylist; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 18111, __pyx_L23_error)
      #else
      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18111, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr69__pyx_v_obj, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr69__pyx_v_obj, __pyx_n_s_pyObj); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 18111, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_5 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18111, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_9, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 18111, __pyx_L23_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_9genexpr69__pyx_v_obj); __pyx_9genexpr69__pyx_v_obj = 0;
    goto __pyx_L26_exit_scope;
    __pyx_L23_error:;
    __Pyx_XDECREF(__pyx_9genexpr69__pyx_v_obj); __pyx_9genexpr69__pyx_v_obj = 0;
    goto __pyx_L1_error;
    __pyx_L26_exit_scope:;
  } /* exit inner scope */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9);
  __pyx_t_3 = 0;
  __pyx_t_9 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18047
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttributes(dataSizes : List[int], attributes : List[CUmem_range_attribute], size_t numAttributes, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query attributes of a given memory range.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("cuda.cuda.cuMemRangeGetAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pylist);
  __Pyx_XDECREF((PyObject *)__pyx_v_voidStarHelper);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_2generator8);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_23cuMemRangeGetAttributes_5generator9);
  __Pyx_XDECREF(__pyx_9genexpr67__pyx_v_pyattributes);
  __Pyx_XDECREF(__pyx_9genexpr67__pyx_v_pydataSizes);
  __Pyx_XDECREF(__pyx_9genexpr68__pyx_v_pyattributes);
  __Pyx_XDECREF(__pyx_9genexpr69__pyx_v_obj);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18114
 * 
 * @cython.embedsignature(True)
 * def cuPointerSetAttribute(value, attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Set attributes on a previously allocated memory region.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_325cuPointerSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_324cuPointerSetAttribute[] = "cuPointerSetAttribute(value, attribute: CUpointer_attribute, CUdeviceptr ptr: CUdeviceptr)\n Set attributes on a previously allocated memory region.\n\n    The supported attributes are:\n\n    CU_POINTER_ATTRIBUTE_SYNC_MEMOPS: A boolean attribute that can either\n    be set (1) or unset (0). When set, the region of memory that `ptr`\n    points to is guaranteed to always synchronize memory operations that\n    are synchronous. If there are some previously initiated synchronous\n    memory operations that are pending when this attribute is set, the\n    function does not return until those memory operations are complete.\n    See further documentation in the section titled \"API synchronization\n    behavior\" to learn more about cases when synchronous memory operations\n    can exhibit asynchronous behavior. `value` will be considered as a\n    pointer to an unsigned integer to which this attribute is to be set.\n\n    Parameters\n    ----------\n    value : Any\n        Pointer to memory containing the value to be set\n    attribute : CUpointer_attribute\n        Pointer attribute to set\n    ptr : CUdeviceptr\n        Pointer to a memory region allocated using CUDA memory allocation\n        APIs\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    None\n        None\n\n    See Also\n    --------\n    cuPointerGetAttribute\n    cuPointerGetAttributes\n    cuMemAlloc\n    cuMemFree\n    cuMemAllocHost\n    cuMemFreeHost\n    cuMemHostAlloc\n    cuMemHostRegister\n    cuMemHostUnregister\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_325cuPointerSetAttribute = {"cuPointerSetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_325cuPointerSetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_324cuPointerSetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_325cuPointerSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_attribute = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuPointerSetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,&__pyx_n_s_attribute,&__pyx_n_s_ptr_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attribute)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuPointerSetAttribute", 1, 3, 3, 1); __PYX_ERR(0, 18114, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuPointerSetAttribute", 1, 3, 3, 2); __PYX_ERR(0, 18114, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuPointerSetAttribute") < 0)) __PYX_ERR(0, 18114, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_value = values[0];
    __pyx_v_attribute = values[1];
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuPointerSetAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18114, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuPointerSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_attribute) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attribute"); __PYX_ERR(0, 18114, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 18114, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_324cuPointerSetAttribute(__pyx_self, __pyx_v_value, __pyx_v_attribute, __pyx_v_ptr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_324cuPointerSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, PyObject *__pyx_v_attribute, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr) {
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute *__pyx_v_cvalue = 0;
  void *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUpointer_attribute __pyx_v_cattribute;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUpointer_attribute __pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__681)
  __Pyx_RefNannySetupContext("cuPointerSetAttribute", 0);
  __Pyx_TraceCall("cuPointerSetAttribute", __pyx_f[0], 18114, 0, __PYX_ERR(0, 18114, __pyx_L1_error));

  /* "cuda/cuda.pyx":18164
 *     cuMemHostUnregister
 *     """
 *     cdef utils.HelperCUpointer_attribute cvalue = utils.HelperCUpointer_attribute(attribute, value, is_getter=False)             # <<<<<<<<<<<<<<
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_attribute);
  __Pyx_GIVEREF(__pyx_v_attribute);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_attribute);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_value);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_is_getter, Py_False) < 0) __PYX_ERR(0, 18164, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUpointer_attribute), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_cvalue = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":18165
 *     """
 *     cdef utils.HelperCUpointer_attribute cvalue = utils.HelperCUpointer_attribute(attribute, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 *     err = ccuda.cuPointerSetAttribute(cvalue_ptr, cattribute, ptr._ptr[0])
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_cptr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_3); if (unlikely((__pyx_t_4 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 18165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cvalue_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_4));

  /* "cuda/cuda.pyx":18166
 *     cdef utils.HelperCUpointer_attribute cvalue = utils.HelperCUpointer_attribute(attribute, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuPointerSetAttribute(cvalue_ptr, cattribute, ptr._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_attribute, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cattribute = __pyx_t_5;

  /* "cuda/cuda.pyx":18167
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 *     err = ccuda.cuPointerSetAttribute(cvalue_ptr, cattribute, ptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuPointerSetAttribute(__pyx_v_cvalue_ptr, __pyx_v_cattribute, (__pyx_v_ptr->_ptr[0])); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18167, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":18168
 *     cdef ccuda.CUpointer_attribute cattribute = attribute.value
 *     err = ccuda.cuPointerSetAttribute(cvalue_ptr, cattribute, ptr._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18114
 * 
 * @cython.embedsignature(True)
 * def cuPointerSetAttribute(value, attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Set attributes on a previously allocated memory region.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuPointerSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18171
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttributes(unsigned int numAttributes, attributes : List[CUpointer_attribute], ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_327cuPointerGetAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_326cuPointerGetAttributes[] = "cuPointerGetAttributes(unsigned int numAttributes, attributes: List[CUpointer_attribute], CUdeviceptr ptr: CUdeviceptr)\n Returns information about a pointer.\n\n    The supported attributes are (refer to cuPointerGetAttribute for\n    attribute descriptions and restrictions):\n\n    CU_POINTER_ATTRIBUTE_CONTEXT CU_POINTER_ATTRIBUTE_MEMORY_TYPE\n    CU_POINTER_ATTRIBUTE_DEVICE_POINTER CU_POINTER_ATTRIBUTE_HOST_POINTER\n    CU_POINTER_ATTRIBUTE_SYNC_MEMOPS CU_POINTER_ATTRIBUTE_BUFFER_ID\n    CU_POINTER_ATTRIBUTE_IS_MANAGED CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL\n    CU_POINTER_ATTRIBUTE_RANGE_START_ADDR CU_POINTER_ATTRIBUTE_RANGE_SIZE\n    CU_POINTER_ATTRIBUTE_MAPPED\n    CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE\n    CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES\n    CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE\n\n    If `ptr` was not allocated by, mapped by, or registered with a\n    CUcontext which uses UVA (Unified Virtual Addressing),\n    CUDA_ERROR_INVALID_CONTEXT is returned.\n\n    Parameters\n    ----------\n    numAttributes : unsigned int\n        Number of attributes to query\n    attributes : List[CUpointer_attribute]\n        An array of attributes to query (numAttributes and the number of\n        attributes in this array should match)\n    ptr : CUdeviceptr\n        Pointer to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_DEVICE\n    data : List[Any]\n        A two-dimensional array containing pointers to memory locations\n        where the result of each attribute query will be written to.\n\n    See Also\n    --------\n    cuPointerGetAttribute\n    cuPointerSetAttribute\n    cudaPointerGetAttributes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_327cuPointerGetAttributes = {"cuPointerGetAttributes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_327cuPointerGetAttributes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_326cuPointerGetAttributes};
static PyObject *__pyx_pw_4cuda_4cuda_327cuPointerGetAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned int __pyx_v_numAttributes;
  PyObject *__pyx_v_attributes = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuPointerGetAttributes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numAttributes,&__pyx_n_s_attributes,&__pyx_n_s_ptr_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numAttributes)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attributes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuPointerGetAttributes", 1, 3, 3, 1); __PYX_ERR(0, 18171, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuPointerGetAttributes", 1, 3, 3, 2); __PYX_ERR(0, 18171, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuPointerGetAttributes") < 0)) __PYX_ERR(0, 18171, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_numAttributes = __Pyx_PyInt_As_unsigned_int(values[0]); if (unlikely((__pyx_v_numAttributes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18171, __pyx_L3_error)
    __pyx_v_attributes = values[1];
    __pyx_v_ptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuPointerGetAttributes", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18171, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuPointerGetAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "ptr", 0))) __PYX_ERR(0, 18171, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_326cuPointerGetAttributes(__pyx_self, __pyx_v_numAttributes, __pyx_v_attributes, __pyx_v_ptr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_22cuPointerGetAttributes_2generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":18220
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 */

static PyObject *__pyx_pf_4cuda_4cuda_22cuPointerGetAttributes_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_20_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_20_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18220, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_22cuPointerGetAttributes_2generator10, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuPointerGetAttributes_locals_ge, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 18220, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuPointerGetAttributes.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_22cuPointerGetAttributes_2generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 18220, 0, __PYX_ERR(0, 18220, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 18220, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) { __Pyx_RaiseClosureNameError("attributes"); __PYX_ERR(0, 18220, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18220, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18220, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18220, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18220, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18220, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 18220, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUpointer_attribute); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v__x, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 18220, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18171
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttributes(unsigned int numAttributes, attributes : List[CUpointer_attribute], ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_326cuPointerGetAttributes(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_numAttributes, PyObject *__pyx_v_attributes, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_ptr) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *__pyx_cur_scope;
  std::vector<__pyx_t_4cuda_5ccuda_CUpointer_attribute>  __pyx_v_cattributes;
  PyObject *__pyx_v_pylist = NULL;
  struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *__pyx_v_voidStarHelper = 0;
  void **__pyx_v_cvoidStarHelper_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_22cuPointerGetAttributes_2generator10 = 0;
  PyObject *__pyx_9genexpr71__pyx_v_pyattributes = NULL;
  PyObject *__pyx_9genexpr72__pyx_v_pyattributes = NULL;
  PyObject *__pyx_9genexpr73__pyx_v_obj = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  std::vector<__pyx_t_4cuda_5ccuda_CUpointer_attribute>  __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_11;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__682)
  __Pyx_RefNannySetupContext("cuPointerGetAttributes", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18171, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuPointerGetAttributes", __pyx_f[0], 18171, 0, __PYX_ERR(0, 18171, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_attributes = __pyx_v_attributes;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_attributes);

  /* "cuda/cuda.pyx":18219
 *     cudaPointerGetAttributes
 *     """
 *     attributes = [] if attributes is None else attributes             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_attributes == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_attributes;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_attributes);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_attributes, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18220
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_22cuPointerGetAttributes_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 18220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":18221
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")             # <<<<<<<<<<<<<<
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     cdef vector[ccuda.CUpointer_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__683, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 18221, __pyx_L1_error)

    /* "cuda/cuda.pyx":18220
 *     """
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 */
  }

  /* "cuda/cuda.pyx":18222
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))             # <<<<<<<<<<<<<<
 *     cdef vector[ccuda.CUpointer_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 *     pylist = [utils.HelperCUpointer_attribute(pyattributes, 0, is_getter=True) for pyattributes in attributes]
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_attributes;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18222, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_v_numAttributes > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_attributes;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numAttributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 18222, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":18223
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     cdef vector[ccuda.CUpointer_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUpointer_attribute(pyattributes, 0, is_getter=True) for pyattributes in attributes]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
  { /* enter inner scope */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18223, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_attributes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_attributes)) {
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_attributes; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18223, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 18223, __pyx_L7_error)
    }
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 18223, __pyx_L7_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18223, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 18223, __pyx_L7_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18223, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_3);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 18223, __pyx_L7_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr71__pyx_v_pyattributes, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr71__pyx_v_pyattributes, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18223, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 18223, __pyx_L7_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_9genexpr71__pyx_v_pyattributes); __pyx_9genexpr71__pyx_v_pyattributes = 0;
    goto __pyx_L10_exit_scope;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_9genexpr71__pyx_v_pyattributes); __pyx_9genexpr71__pyx_v_pyattributes = 0;
    goto __pyx_L1_error;
    __pyx_L10_exit_scope:;
  } /* exit inner scope */
  __pyx_t_8 = __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_cattributes = __pyx_t_8;

  /* "cuda/cuda.pyx":18224
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     cdef vector[ccuda.CUpointer_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 *     pylist = [utils.HelperCUpointer_attribute(pyattributes, 0, is_getter=True) for pyattributes in attributes]             # <<<<<<<<<<<<<<
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 */
  { /* enter inner scope */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18224, __pyx_L13_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_attributes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_attributes)) {
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_attributes; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18224, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 18224, __pyx_L13_error)
    }
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 18224, __pyx_L13_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18224, __pyx_L13_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 18224, __pyx_L13_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18224, __pyx_L13_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_3);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 18224, __pyx_L13_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr72__pyx_v_pyattributes, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18224, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_9genexpr72__pyx_v_pyattributes);
      __Pyx_GIVEREF(__pyx_9genexpr72__pyx_v_pyattributes);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_9genexpr72__pyx_v_pyattributes);
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
      __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18224, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_is_getter, Py_True) < 0) __PYX_ERR(0, 18224, __pyx_L13_error)
      __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUpointer_attribute), __pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 18224, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 18224, __pyx_L13_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_9genexpr72__pyx_v_pyattributes); __pyx_9genexpr72__pyx_v_pyattributes = 0;
    goto __pyx_L16_exit_scope;
    __pyx_L13_error:;
    __Pyx_XDECREF(__pyx_9genexpr72__pyx_v_pyattributes); __pyx_9genexpr72__pyx_v_pyattributes = 0;
    goto __pyx_L1_error;
    __pyx_L16_exit_scope:;
  } /* exit inner scope */
  __pyx_v_pylist = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "cuda/cuda.pyx":18225
 *     cdef vector[ccuda.CUpointer_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 *     pylist = [utils.HelperCUpointer_attribute(pyattributes, 0, is_getter=True) for pyattributes in attributes]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)             # <<<<<<<<<<<<<<
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 *     err = ccuda.cuPointerGetAttributes(numAttributes, cattributes.data(), cvoidStarHelper_ptr, ptr._ptr[0])
 */
  __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __pyx_v_pylist); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_voidStarHelper = ((struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper *)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "cuda/cuda.pyx":18226
 *     pylist = [utils.HelperCUpointer_attribute(pyattributes, 0, is_getter=True) for pyattributes in attributes]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuPointerGetAttributes(numAttributes, cattributes.data(), cvoidStarHelper_ptr, ptr._ptr[0])
 *     return (CUresult(err), [obj.pyObj() for obj in pylist])
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_voidStarHelper), __pyx_n_s_cptr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_11 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_6); if (unlikely((__pyx_t_11 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 18226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_cvoidStarHelper_ptr = ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_11));

  /* "cuda/cuda.pyx":18227
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 *     err = ccuda.cuPointerGetAttributes(numAttributes, cattributes.data(), cvoidStarHelper_ptr, ptr._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), [obj.pyObj() for obj in pylist])
 * 
 */
  __pyx_t_12 = __pyx_f_4cuda_5ccuda_cuPointerGetAttributes(__pyx_v_numAttributes, __pyx_v_cattributes.data(), __pyx_v_cvoidStarHelper_ptr, (__pyx_v_ptr->_ptr[0])); if (unlikely(__pyx_t_12 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18227, __pyx_L1_error)
  __pyx_v_err = __pyx_t_12;

  /* "cuda/cuda.pyx":18228
 *     cdef void** cvoidStarHelper_ptr = <void**><void_ptr>voidStarHelper.cptr
 *     err = ccuda.cuPointerGetAttributes(numAttributes, cattributes.data(), cvoidStarHelper_ptr, ptr._ptr[0])
 *     return (CUresult(err), [obj.pyObj() for obj in pylist])             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_10 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 18228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_10);
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  { /* enter inner scope */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18228, __pyx_L19_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = __pyx_v_pylist; __Pyx_INCREF(__pyx_t_10); __pyx_t_5 = 0;
    for (;;) {
      if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_10)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 18228, __pyx_L19_error)
      #else
      __pyx_t_9 = PySequence_ITEM(__pyx_t_10, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18228, __pyx_L19_error)
      __Pyx_GOTREF(__pyx_t_9);
      #endif
      __Pyx_XDECREF_SET(__pyx_9genexpr73__pyx_v_obj, __pyx_t_9);
      __pyx_t_9 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr73__pyx_v_obj, __pyx_n_s_pyObj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18228, __pyx_L19_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_13)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_9 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 18228, __pyx_L19_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 18228, __pyx_L19_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_9genexpr73__pyx_v_obj); __pyx_9genexpr73__pyx_v_obj = 0;
    goto __pyx_L22_exit_scope;
    __pyx_L19_error:;
    __Pyx_XDECREF(__pyx_9genexpr73__pyx_v_obj); __pyx_9genexpr73__pyx_v_obj = 0;
    goto __pyx_L1_error;
    __pyx_L22_exit_scope:;
  } /* exit inner scope */
  __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 18228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3);
  __pyx_t_6 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18171
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttributes(unsigned int numAttributes, attributes : List[CUpointer_attribute], ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("cuda.cuda.cuPointerGetAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pylist);
  __Pyx_XDECREF((PyObject *)__pyx_v_voidStarHelper);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_22cuPointerGetAttributes_2generator10);
  __Pyx_XDECREF(__pyx_9genexpr71__pyx_v_pyattributes);
  __Pyx_XDECREF(__pyx_9genexpr72__pyx_v_pyattributes);
  __Pyx_XDECREF(__pyx_9genexpr73__pyx_v_obj);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18231
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Create a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_329cuStreamCreate(PyObject *__pyx_self, PyObject *__pyx_arg_Flags); /*proto*/
static char __pyx_doc_4cuda_4cuda_328cuStreamCreate[] = "cuStreamCreate(unsigned int Flags)\n Create a stream.\n\n    Creates a stream and returns a handle in `phStream`. The `Flags`\n    argument determines behaviors of the stream.\n\n    Valid values for `Flags` are: CU_STREAM_DEFAULT: Default stream\n    creation flag. CU_STREAM_NON_BLOCKING: Specifies that work running in\n    the created stream may run concurrently with work in stream 0 (the NULL\n    stream), and that the created stream should perform no implicit\n    synchronization with stream 0.\n\n    Parameters\n    ----------\n    Flags : unsigned int\n        Parameters for stream creation\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    phStream : CUstream\n        Returned newly created stream\n\n    See Also\n    --------\n    cuStreamDestroy\n    cuStreamCreateWithPriority\n    cuStreamGetPriority\n    cuStreamGetFlags\n    cuStreamWaitEvent\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamAddCallback\n    cudaStreamCreate\n    cudaStreamCreateWithFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_329cuStreamCreate = {"cuStreamCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_329cuStreamCreate, METH_O, __pyx_doc_4cuda_4cuda_328cuStreamCreate};
static PyObject *__pyx_pw_4cuda_4cuda_329cuStreamCreate(PyObject *__pyx_self, PyObject *__pyx_arg_Flags) {
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamCreate (wrapper)", 0);
  assert(__pyx_arg_Flags); {
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_Flags); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18231, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_328cuStreamCreate(__pyx_self, ((unsigned int)__pyx_v_Flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_328cuStreamCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_Flags) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_phStream = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__684)
  __Pyx_RefNannySetupContext("cuStreamCreate", 0);
  __Pyx_TraceCall("cuStreamCreate", __pyx_f[0], 18231, 0, __PYX_ERR(0, 18231, __pyx_L1_error));

  /* "cuda/cuda.pyx":18273
 *     cudaStreamCreateWithFlags
 *     """
 *     cdef CUstream phStream = CUstream()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamCreate(phStream._ptr, Flags)
 *     return (CUresult(err), phStream)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstream)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18274
 *     """
 *     cdef CUstream phStream = CUstream()
 *     err = ccuda.cuStreamCreate(phStream._ptr, Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phStream)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuStreamCreate(__pyx_v_phStream->_ptr, __pyx_v_Flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18274, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":18275
 *     cdef CUstream phStream = CUstream()
 *     err = ccuda.cuStreamCreate(phStream._ptr, Flags)
 *     return (CUresult(err), phStream)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phStream));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phStream));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phStream));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18231
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Create a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phStream);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18278
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreateWithPriority(unsigned int flags, int priority):             # <<<<<<<<<<<<<<
 *     """ Create a stream with the given priority.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_331cuStreamCreateWithPriority(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_330cuStreamCreateWithPriority[] = "cuStreamCreateWithPriority(unsigned int flags, int priority)\n Create a stream with the given priority.\n\n    Creates a stream with the specified priority and returns a handle in\n    `phStream`. This API alters the scheduler priority of work in the\n    stream. Work in a higher priority stream may preempt work already\n    executing in a low priority stream.\n\n    `priority` follows a convention where lower numbers represent higher\n    priorities. '0' represents default priority. The range of meaningful\n    numerical priorities can be queried using cuCtxGetStreamPriorityRange.\n    If the specified priority is outside the numerical range returned by\n    cuCtxGetStreamPriorityRange, it will automatically be clamped to the\n    lowest or the highest number in the range.\n\n    Parameters\n    ----------\n    flags : unsigned int\n        Flags for stream creation. See cuStreamCreate for a list of valid\n        flags\n    priority : int\n        Stream priority. Lower numbers represent higher priorities. See\n        cuCtxGetStreamPriorityRange for more information about meaningful\n        stream priorities that can be passed.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    phStream : CUstream\n        Returned newly created stream\n\n    See Also\n    --------\n    cuStreamDestroy\n    cuStreamCreate\n    cuStreamGetPriority\n    cuCtxGetStreamPriorityRange\n    cuStreamGetFlags\n    cuStreamWaitEvent\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamAddCallback\n    cudaStreamCreateWithPriority\n\n    Notes\n    -----\n    In the current implementation, only compute kernels launched in priority streams are affected by the stream's priority. Stream priorities have no effect on host-to-device and device-to-host memory operations.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_331cuStreamCreateWithPriority = {"cuStreamCreateWithPriority", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_331cuStreamCreateWithPriority, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_330cuStreamCreateWithPriority};
static PyObject *__pyx_pw_4cuda_4cuda_331cuStreamCreateWithPriority(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned int __pyx_v_flags;
  int __pyx_v_priority;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamCreateWithPriority (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags_2,&__pyx_n_s_priority,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_priority)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamCreateWithPriority", 1, 2, 2, 1); __PYX_ERR(0, 18278, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamCreateWithPriority") < 0)) __PYX_ERR(0, 18278, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[0]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18278, __pyx_L3_error)
    __pyx_v_priority = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_priority == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18278, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamCreateWithPriority", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18278, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamCreateWithPriority", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_330cuStreamCreateWithPriority(__pyx_self, __pyx_v_flags, __pyx_v_priority);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_330cuStreamCreateWithPriority(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags, int __pyx_v_priority) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_phStream = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__685)
  __Pyx_RefNannySetupContext("cuStreamCreateWithPriority", 0);
  __Pyx_TraceCall("cuStreamCreateWithPriority", __pyx_f[0], 18278, 0, __PYX_ERR(0, 18278, __pyx_L1_error));

  /* "cuda/cuda.pyx":18333
 * 
 *     """
 *     cdef CUstream phStream = CUstream()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamCreateWithPriority(phStream._ptr, flags, priority)
 *     return (CUresult(err), phStream)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstream)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18334
 *     """
 *     cdef CUstream phStream = CUstream()
 *     err = ccuda.cuStreamCreateWithPriority(phStream._ptr, flags, priority)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phStream)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuStreamCreateWithPriority(__pyx_v_phStream->_ptr, __pyx_v_flags, __pyx_v_priority); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18334, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":18335
 *     cdef CUstream phStream = CUstream()
 *     err = ccuda.cuStreamCreateWithPriority(phStream._ptr, flags, priority)
 *     return (CUresult(err), phStream)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phStream));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phStream));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phStream));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18278
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreateWithPriority(unsigned int flags, int priority):             # <<<<<<<<<<<<<<
 *     """ Create a stream with the given priority.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamCreateWithPriority", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phStream);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18338
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetPriority(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the priority of a given stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_333cuStreamGetPriority(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_332cuStreamGetPriority[] = "cuStreamGetPriority(CUstream hStream: CUstream)\n Query the priority of a given stream.\n\n    Query the priority of a stream created using cuStreamCreate or\n    cuStreamCreateWithPriority and return the priority in `priority`. Note\n    that if the stream was created with a priority outside the numerical\n    range returned by cuCtxGetStreamPriorityRange, this function returns\n    the clamped priority. See cuStreamCreateWithPriority for details about\n    priority clamping.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Handle to the stream to be queried\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    priority : int\n        Pointer to a signed integer in which the stream's priority is\n        returned\n\n    See Also\n    --------\n    cuStreamDestroy\n    cuStreamCreate\n    cuStreamCreateWithPriority\n    cuCtxGetStreamPriorityRange\n    cuStreamGetFlags\n    cudaStreamGetPriority\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_333cuStreamGetPriority = {"cuStreamGetPriority", (PyCFunction)__pyx_pw_4cuda_4cuda_333cuStreamGetPriority, METH_O, __pyx_doc_4cuda_4cuda_332cuStreamGetPriority};
static PyObject *__pyx_pw_4cuda_4cuda_333cuStreamGetPriority(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamGetPriority (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18338, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_332cuStreamGetPriority(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_332cuStreamGetPriority(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  int __pyx_v_priority;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__686)
  __Pyx_RefNannySetupContext("cuStreamGetPriority", 0);
  __Pyx_TraceCall("cuStreamGetPriority", __pyx_f[0], 18338, 0, __PYX_ERR(0, 18338, __pyx_L1_error));

  /* "cuda/cuda.pyx":18376
 *     cudaStreamGetPriority
 *     """
 *     cdef int priority = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamGetPriority(hStream._ptr[0], &priority)
 *     return (CUresult(err), priority)
 */
  __pyx_v_priority = 0;

  /* "cuda/cuda.pyx":18377
 *     """
 *     cdef int priority = 0
 *     err = ccuda.cuStreamGetPriority(hStream._ptr[0], &priority)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), priority)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamGetPriority((__pyx_v_hStream->_ptr[0]), (&__pyx_v_priority)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18377, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":18378
 *     cdef int priority = 0
 *     err = ccuda.cuStreamGetPriority(hStream._ptr[0], &priority)
 *     return (CUresult(err), priority)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_priority); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18338
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetPriority(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the priority of a given stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetPriority", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18381
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetFlags(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the flags of a given stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_335cuStreamGetFlags(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_334cuStreamGetFlags[] = "cuStreamGetFlags(CUstream hStream: CUstream)\n Query the flags of a given stream.\n\n    Query the flags of a stream created using cuStreamCreate or\n    cuStreamCreateWithPriority and return the flags in `flags`.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Handle to the stream to be queried\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    flags : unsigned int\n        Pointer to an unsigned integer in which the stream's flags are\n        returned The value returned in `flags` is a logical 'OR' of all\n        flags that were used while creating this stream. See cuStreamCreate\n        for the list of valid flags\n\n    See Also\n    --------\n    cuStreamDestroy\n    cuStreamCreate\n    cuStreamGetPriority\n    cudaStreamGetFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_335cuStreamGetFlags = {"cuStreamGetFlags", (PyCFunction)__pyx_pw_4cuda_4cuda_335cuStreamGetFlags, METH_O, __pyx_doc_4cuda_4cuda_334cuStreamGetFlags};
static PyObject *__pyx_pw_4cuda_4cuda_335cuStreamGetFlags(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamGetFlags (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18381, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_334cuStreamGetFlags(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_334cuStreamGetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  unsigned int __pyx_v_flags;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__687)
  __Pyx_RefNannySetupContext("cuStreamGetFlags", 0);
  __Pyx_TraceCall("cuStreamGetFlags", __pyx_f[0], 18381, 0, __PYX_ERR(0, 18381, __pyx_L1_error));

  /* "cuda/cuda.pyx":18415
 *     cudaStreamGetFlags
 *     """
 *     cdef unsigned int flags = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamGetFlags(hStream._ptr[0], &flags)
 *     return (CUresult(err), flags)
 */
  __pyx_v_flags = 0;

  /* "cuda/cuda.pyx":18416
 *     """
 *     cdef unsigned int flags = 0
 *     err = ccuda.cuStreamGetFlags(hStream._ptr[0], &flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), flags)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamGetFlags((__pyx_v_hStream->_ptr[0]), (&__pyx_v_flags)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18416, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":18417
 *     cdef unsigned int flags = 0
 *     err = ccuda.cuStreamGetFlags(hStream._ptr[0], &flags)
 *     return (CUresult(err), flags)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18381
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetFlags(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the flags of a given stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18420
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCtx(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the context associated with a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_337cuStreamGetCtx(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_336cuStreamGetCtx[] = "cuStreamGetCtx(CUstream hStream: CUstream)\n Query the context associated with a stream.\n\n    Returns the CUDA context that the stream is associated with.\n\n    The stream handle `hStream` can refer to any of the following:   a\n    stream created via any of the CUDA driver APIs such as cuStreamCreate\n    and cuStreamCreateWithPriority, or their runtime API equivalents such\n    as cudaStreamCreate, cudaStreamCreateWithFlags and\n    cudaStreamCreateWithPriority. The returned context is the context that\n    was active in the calling thread when the stream was created. Passing\n    an invalid handle will result in undefined behavior.    any of the\n    special streams such as the NULL stream, CU_STREAM_LEGACY and\n    CU_STREAM_PER_THREAD. The runtime API equivalents of these are also\n    accepted, which are NULL, cudaStreamLegacy and cudaStreamPerThread\n    respectively. Specifying any of the special handles will return the\n    context current to the calling thread. If no context is current to the\n    calling thread, CUDA_ERROR_INVALID_CONTEXT is returned.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Handle to the stream to be queried\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n    pctx : CUcontext\n        Returned context associated with the stream\n\n    See Also\n    --------\n    cuStreamDestroy\n    cuStreamCreateWithPriority\n    cuStreamGetPriority\n    cuStreamGetFlags\n    cuStreamWaitEvent\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamAddCallback\n    cudaStreamCreate\n    cudaStreamCreateWithFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_337cuStreamGetCtx = {"cuStreamGetCtx", (PyCFunction)__pyx_pw_4cuda_4cuda_337cuStreamGetCtx, METH_O, __pyx_doc_4cuda_4cuda_336cuStreamGetCtx};
static PyObject *__pyx_pw_4cuda_4cuda_337cuStreamGetCtx(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamGetCtx (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18420, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_336cuStreamGetCtx(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_336cuStreamGetCtx(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_pctx = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__688)
  __Pyx_RefNannySetupContext("cuStreamGetCtx", 0);
  __Pyx_TraceCall("cuStreamGetCtx", __pyx_f[0], 18420, 0, __PYX_ERR(0, 18420, __pyx_L1_error));

  /* "cuda/cuda.pyx":18468
 *     cudaStreamCreateWithFlags
 *     """
 *     cdef CUcontext pctx = CUcontext()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamGetCtx(hStream._ptr[0], pctx._ptr)
 *     return (CUresult(err), pctx)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18469
 *     """
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuStreamGetCtx(hStream._ptr[0], pctx._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pctx)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuStreamGetCtx((__pyx_v_hStream->_ptr[0]), __pyx_v_pctx->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18469, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":18470
 *     cdef CUcontext pctx = CUcontext()
 *     err = ccuda.cuStreamGetCtx(hStream._ptr[0], pctx._ptr)
 *     return (CUresult(err), pctx)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pctx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pctx));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pctx));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18420
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCtx(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the context associated with a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetCtx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18473
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitEvent(hStream not None : CUstream, hEvent not None : CUevent, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Make a compute stream wait on an event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_339cuStreamWaitEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_338cuStreamWaitEvent[] = "cuStreamWaitEvent(CUstream hStream: CUstream, CUevent hEvent: CUevent, unsigned int Flags)\n Make a compute stream wait on an event.\n\n    Makes all future work submitted to `hStream` wait for all work captured\n    in `hEvent`. See cuEventRecord() for details on what is captured by an\n    event. The synchronization will be performed efficiently on the device\n    when applicable. `hEvent` may be from a different context or device\n    than `hStream`.\n\n    flags include: CU_EVENT_WAIT_DEFAULT: Default event creation flag.\n    CU_EVENT_WAIT_EXTERNAL: Event is captured in the graph as an external\n    event node when performing stream capture. This flag is invalid outside\n    of stream capture.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to wait\n    hEvent : CUevent\n        Event to wait on (may not be NULL)\n    Flags : unsigned int\n        See CUevent_capture_flags\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuEventRecord\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamAddCallback\n    cuStreamDestroy\n    cudaStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_339cuStreamWaitEvent = {"cuStreamWaitEvent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_339cuStreamWaitEvent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_338cuStreamWaitEvent};
static PyObject *__pyx_pw_4cuda_4cuda_339cuStreamWaitEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamWaitEvent (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_hEvent,&__pyx_n_s_Flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hEvent)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitEvent", 1, 3, 3, 1); __PYX_ERR(0, 18473, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitEvent", 1, 3, 3, 2); __PYX_ERR(0, 18473, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamWaitEvent") < 0)) __PYX_ERR(0, 18473, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_hEvent = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[1]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18473, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamWaitEvent", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18473, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamWaitEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18473, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEvent), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEvent", 0))) __PYX_ERR(0, 18473, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_338cuStreamWaitEvent(__pyx_self, __pyx_v_hStream, __pyx_v_hEvent, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_338cuStreamWaitEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__689)
  __Pyx_RefNannySetupContext("cuStreamWaitEvent", 0);
  __Pyx_TraceCall("cuStreamWaitEvent", __pyx_f[0], 18473, 0, __PYX_ERR(0, 18473, __pyx_L1_error));

  /* "cuda/cuda.pyx":18517
 *     cudaStreamWaitEvent
 *     """
 *     err = ccuda.cuStreamWaitEvent(hStream._ptr[0], hEvent._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamWaitEvent((__pyx_v_hStream->_ptr[0]), (__pyx_v_hEvent->_ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18517, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":18518
 *     """
 *     err = ccuda.cuStreamWaitEvent(hStream._ptr[0], hEvent._ptr[0], Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18473
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitEvent(hStream not None : CUstream, hEvent not None : CUevent, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Make a compute stream wait on an event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamWaitEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18521
 * 
 * @cython.embedsignature(True)
 * def cuStreamAddCallback(hStream not None : CUstream, callback not None : CUstreamCallback, userData, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Add a callback to a compute stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_341cuStreamAddCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_340cuStreamAddCallback[] = "cuStreamAddCallback(CUstream hStream: CUstream, CUstreamCallback callback: CUstreamCallback, userData, unsigned int flags)\n Add a callback to a compute stream.\n\n    The callback may be passed CUDA_SUCCESS or an error code. In the event\n    of a device error, all subsequently executed callbacks will receive an\n    appropriate CUresult.\n\n    Callbacks must not make any CUDA API calls. Attempting to use a CUDA\n    API will result in CUDA_ERROR_NOT_PERMITTED. Callbacks must not perform\n    any synchronization that may depend on outstanding device work or other\n    callbacks that are not mandated to run earlier. Callbacks without a\n    mandated order (in independent streams) execute in undefined order and\n    may be serialized.\n\n    For the purposes of Unified Memory, callback execution makes a number\n    of guarantees:   The callback stream is considered idle for the\n    duration of the callback. Thus, for example, a callback may always use\n    memory attached to the callback stream.    The start of execution of a\n    callback has the same effect as synchronizing an event recorded in the\n    same stream immediately prior to the callback. It thus synchronizes\n    streams which have been \"joined\" prior to the callback.    Adding\n    device work to any stream does not have the effect of making the stream\n    active until all preceding host functions and stream callbacks have\n    executed. Thus, for example, a callback might use global attached\n    memory even if work has been added to another stream, if the work has\n    been ordered behind the callback with an event.    Completion of a\n    callback does not cause a stream to become active except as described\n    above. The callback stream will remain idle if no device work follows\n    the callback, and will remain idle across consecutive callbacks without\n    device work in between. Thus, for example, stream synchronization can\n    be done by signaling from a callback at the end of the strea""m.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to add callback to\n    callback : CUstreamCallback\n        The function to call once preceding stream operations are complete\n    userData : Any\n        User specified data to be passed to the callback function\n    flags : unsigned int\n        Reserved for future use, must be 0\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamWaitEvent\n    cuStreamDestroy\n    cuMemAllocManaged\n    cuStreamAttachMemAsync\n    cuStreamLaunchHostFunc\n    cudaStreamAddCallback\n\n    Notes\n    -----\n    This function is slated for eventual deprecation and removal. If you do not require the callback to execute in case of a device error, consider using cuLaunchHostFunc. Additionally, this function is not supported with cuStreamBeginCapture and cuStreamEndCapture, unlike cuLaunchHostFunc.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_341cuStreamAddCallback = {"cuStreamAddCallback", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_341cuStreamAddCallback, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_340cuStreamAddCallback};
static PyObject *__pyx_pw_4cuda_4cuda_341cuStreamAddCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_callback = 0;
  PyObject *__pyx_v_userData = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamAddCallback (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_callback,&__pyx_n_s_userData_2,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_callback)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamAddCallback", 1, 4, 4, 1); __PYX_ERR(0, 18521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_userData_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamAddCallback", 1, 4, 4, 2); __PYX_ERR(0, 18521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamAddCallback", 1, 4, 4, 3); __PYX_ERR(0, 18521, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamAddCallback") < 0)) __PYX_ERR(0, 18521, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_callback = ((struct __pyx_obj_4cuda_4cuda_CUstreamCallback *)values[1]);
    __pyx_v_userData = values[2];
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18521, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamAddCallback", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18521, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamAddCallback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18521, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_callback), __pyx_ptype_4cuda_4cuda_CUstreamCallback, 0, "callback", 0))) __PYX_ERR(0, 18521, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_340cuStreamAddCallback(__pyx_self, __pyx_v_hStream, __pyx_v_callback, __pyx_v_userData, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_340cuStreamAddCallback(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUstreamCallback *__pyx_v_callback, PyObject *__pyx_v_userData, unsigned int __pyx_v_flags) {
  PyObject *__pyx_v_cuserData = NULL;
  void *__pyx_v_cuserData_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__690)
  __Pyx_RefNannySetupContext("cuStreamAddCallback", 0);
  __Pyx_TraceCall("cuStreamAddCallback", __pyx_f[0], 18521, 0, __PYX_ERR(0, 18521, __pyx_L1_error));

  /* "cuda/cuda.pyx":18593
 * 
 *     """
 *     cuserData = utils.HelperInputVoidPtr(userData)             # <<<<<<<<<<<<<<
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr
 *     err = ccuda.cuStreamAddCallback(hStream._ptr[0], callback._ptr[0], cuserData_ptr, flags)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_userData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cuserData = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18594
 *     """
 *     cuserData = utils.HelperInputVoidPtr(userData)
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamAddCallback(hStream._ptr[0], callback._ptr[0], cuserData_ptr, flags)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cuserData, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 18594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cuserData_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":18595
 *     cuserData = utils.HelperInputVoidPtr(userData)
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr
 *     err = ccuda.cuStreamAddCallback(hStream._ptr[0], callback._ptr[0], cuserData_ptr, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuStreamAddCallback((__pyx_v_hStream->_ptr[0]), (__pyx_v_callback->_ptr[0]), __pyx_v_cuserData_ptr, __pyx_v_flags); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18595, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":18596
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr
 *     err = ccuda.cuStreamAddCallback(hStream._ptr[0], callback._ptr[0], cuserData_ptr, flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18521
 * 
 * @cython.embedsignature(True)
 * def cuStreamAddCallback(hStream not None : CUstream, callback not None : CUstreamCallback, userData, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Add a callback to a compute stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuStreamAddCallback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cuserData);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18599
 * 
 * @cython.embedsignature(True)
 * def cuStreamBeginCapture(hStream not None : CUstream, mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Begins graph capture on a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_343cuStreamBeginCapture(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_342cuStreamBeginCapture[] = "cuStreamBeginCapture(CUstream hStream: CUstream, mode: CUstreamCaptureMode)\n Begins graph capture on a stream.\n\n    Begin graph capture on `hStream`. When a stream is in capture mode, all\n    operations pushed into the stream will not be executed, but will\n    instead be captured into a graph, which will be returned via\n    cuStreamEndCapture. Capture may not be initiated if `stream` is\n    CU_STREAM_LEGACY. Capture must be ended on the same stream in which it\n    was initiated, and it may only be initiated if the stream is not\n    already in capture mode. The capture mode may be queried via\n    cuStreamIsCapturing. A unique id representing the capture sequence may\n    be queried via cuStreamGetCaptureInfo.\n\n    If `mode` is not CU_STREAM_CAPTURE_MODE_RELAXED, cuStreamEndCapture\n    must be called on this stream from the same thread.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream in which to initiate capture\n    mode : CUstreamCaptureMode\n        Controls the interaction of this capture sequence with other API\n        calls that are potentially unsafe. For more details see\n        cuThreadExchangeStreamCaptureMode.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamIsCapturing\n    cuStreamEndCapture\n    cuThreadExchangeStreamCaptureMode\n\n    Notes\n    -----\n    Kernels captured using this API must not use texture and surface references. Reading or writing through any texture or surface reference is undefined behavior. This restriction does not apply to texture and surface objects.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_343cuStreamBeginCapture = {"cuStreamBeginCapture", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_343cuStreamBeginCapture, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_342cuStreamBeginCapture};
static PyObject *__pyx_pw_4cuda_4cuda_343cuStreamBeginCapture(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  PyObject *__pyx_v_mode = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamBeginCapture (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_mode,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamBeginCapture", 1, 2, 2, 1); __PYX_ERR(0, 18599, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamBeginCapture") < 0)) __PYX_ERR(0, 18599, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_mode = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamBeginCapture", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18599, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamBeginCapture", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18599, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_mode) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "mode"); __PYX_ERR(0, 18599, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_342cuStreamBeginCapture(__pyx_self, __pyx_v_hStream, __pyx_v_mode);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_342cuStreamBeginCapture(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_mode) {
  __pyx_t_4cuda_5ccuda_CUstreamCaptureMode __pyx_v_cmode;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamCaptureMode __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__691)
  __Pyx_RefNannySetupContext("cuStreamBeginCapture", 0);
  __Pyx_TraceCall("cuStreamBeginCapture", __pyx_f[0], 18599, 0, __PYX_ERR(0, 18599, __pyx_L1_error));

  /* "cuda/cuda.pyx":18646
 * 
 *     """
 *     cdef ccuda.CUstreamCaptureMode cmode = mode.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamBeginCapture(hStream._ptr[0], cmode)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_mode, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cmode = __pyx_t_2;

  /* "cuda/cuda.pyx":18647
 *     """
 *     cdef ccuda.CUstreamCaptureMode cmode = mode.value
 *     err = ccuda.cuStreamBeginCapture(hStream._ptr[0], cmode)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuStreamBeginCapture((__pyx_v_hStream->_ptr[0]), __pyx_v_cmode); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18647, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":18648
 *     cdef ccuda.CUstreamCaptureMode cmode = mode.value
 *     err = ccuda.cuStreamBeginCapture(hStream._ptr[0], cmode)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18599
 * 
 * @cython.embedsignature(True)
 * def cuStreamBeginCapture(hStream not None : CUstream, mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Begins graph capture on a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuStreamBeginCapture", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18651
 * 
 * @cython.embedsignature(True)
 * def cuThreadExchangeStreamCaptureMode(mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Swaps the stream capture interaction mode for a thread.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_345cuThreadExchangeStreamCaptureMode(PyObject *__pyx_self, PyObject *__pyx_v_mode); /*proto*/
static char __pyx_doc_4cuda_4cuda_344cuThreadExchangeStreamCaptureMode[] = "cuThreadExchangeStreamCaptureMode(mode: CUstreamCaptureMode)\n Swaps the stream capture interaction mode for a thread.\n\n    Sets the calling thread's stream capture interaction mode to the value\n    contained in `*mode`, and overwrites `*mode` with the previous mode for\n    the thread. To facilitate deterministic behavior across function or\n    module boundaries, callers are encouraged to use this API in a push-pop\n    fashion:CUstreamCaptureModemode=desiredMode;\n    cuThreadExchangeStreamCaptureMode(&mode); ...\n    cuThreadExchangeStreamCaptureMode(&mode);//restorepreviousmode\n\n    During stream capture (see cuStreamBeginCapture), some actions, such as\n    a call to cudaMalloc, may be unsafe. In the case of cudaMalloc, the\n    operation is not enqueued asynchronously to a stream, and is not\n    observed by stream capture. Therefore, if the sequence of operations\n    captured via cuStreamBeginCapture depended on the allocation being\n    replayed whenever the graph is launched, the captured graph would be\n    invalid.\n\n    Therefore, stream capture places restrictions on API calls that can be\n    made within or concurrently to a cuStreamBeginCapture-\n    cuStreamEndCapture sequence. This behavior can be controlled via this\n    API and flags to cuStreamBeginCapture.\n\n    A thread's mode is one of the following:\n    `CU_STREAM_CAPTURE_MODE_GLOBAL:` This is the default mode. If the local\n    thread has an ongoing capture sequence that was not initiated with\n    `CU_STREAM_CAPTURE_MODE_RELAXED` at `cuStreamBeginCapture`, or if any\n    other thread has a concurrent capture sequence initiated with\n    `CU_STREAM_CAPTURE_MODE_GLOBAL`, this thread is prohibited from\n    potentially unsafe API calls. `CU_STREAM_CAPTURE_MODE_THREAD_LOCAL:` If\n    the local thread has an ongoing capture sequence not initiated with\n    `CU_STREAM_CAPTURE_MODE_RELAXED`, it is prohibited from potentially\n    unsafe API calls. Concurrent capture sequences in other th""reads are\n    ignored. `CU_STREAM_CAPTURE_MODE_RELAXED:` The local thread is not\n    prohibited from potentially unsafe API calls. Note that the thread is\n    still prohibited from API calls which necessarily conflict with stream\n    capture, for example, attempting cuEventQuery on an event that was last\n    recorded inside a capture sequence.\n\n    Parameters\n    ----------\n    mode : CUstreamCaptureMode\n        Pointer to mode value to swap with the current mode\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuStreamBeginCapture\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_345cuThreadExchangeStreamCaptureMode = {"cuThreadExchangeStreamCaptureMode", (PyCFunction)__pyx_pw_4cuda_4cuda_345cuThreadExchangeStreamCaptureMode, METH_O, __pyx_doc_4cuda_4cuda_344cuThreadExchangeStreamCaptureMode};
static PyObject *__pyx_pw_4cuda_4cuda_345cuThreadExchangeStreamCaptureMode(PyObject *__pyx_self, PyObject *__pyx_v_mode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuThreadExchangeStreamCaptureMode (wrapper)", 0);
  if (unlikely(((PyObject *)__pyx_v_mode) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "mode"); __PYX_ERR(0, 18651, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_344cuThreadExchangeStreamCaptureMode(__pyx_self, ((PyObject *)__pyx_v_mode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_344cuThreadExchangeStreamCaptureMode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mode) {
  __pyx_t_4cuda_5ccuda_CUstreamCaptureMode __pyx_v_cmode;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamCaptureMode __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__692)
  __Pyx_RefNannySetupContext("cuThreadExchangeStreamCaptureMode", 0);
  __Pyx_TraceCall("cuThreadExchangeStreamCaptureMode", __pyx_f[0], 18651, 0, __PYX_ERR(0, 18651, __pyx_L1_error));

  /* "cuda/cuda.pyx":18710
 *     cuStreamBeginCapture
 *     """
 *     cdef ccuda.CUstreamCaptureMode cmode = mode.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuThreadExchangeStreamCaptureMode(&cmode)
 *     return (CUresult(err), CUstreamCaptureMode(cmode))
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_mode, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cmode = __pyx_t_2;

  /* "cuda/cuda.pyx":18711
 *     """
 *     cdef ccuda.CUstreamCaptureMode cmode = mode.value
 *     err = ccuda.cuThreadExchangeStreamCaptureMode(&cmode)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUstreamCaptureMode(cmode))
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuThreadExchangeStreamCaptureMode((&__pyx_v_cmode)); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18711, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":18712
 *     cdef ccuda.CUstreamCaptureMode cmode = mode.value
 *     err = ccuda.cuThreadExchangeStreamCaptureMode(&cmode)
 *     return (CUresult(err), CUstreamCaptureMode(cmode))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUstreamCaptureMode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(__pyx_v_cmode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18651
 * 
 * @cython.embedsignature(True)
 * def cuThreadExchangeStreamCaptureMode(mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Swaps the stream capture interaction mode for a thread.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuThreadExchangeStreamCaptureMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18715
 * 
 * @cython.embedsignature(True)
 * def cuStreamEndCapture(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Ends capture on a stream, returning the captured graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_347cuStreamEndCapture(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_346cuStreamEndCapture[] = "cuStreamEndCapture(CUstream hStream: CUstream)\n Ends capture on a stream, returning the captured graph.\n\n    End capture on `hStream`, returning the captured graph via `phGraph`.\n    Capture must have been initiated on `hStream` via a call to\n    cuStreamBeginCapture. If capture was invalidated, due to a violation of\n    the rules of stream capture, then a NULL graph will be returned.\n\n    If the `mode` argument to cuStreamBeginCapture was not\n    CU_STREAM_CAPTURE_MODE_RELAXED, this call must be from the same thread\n    as cuStreamBeginCapture.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD\n    phGraph : CUgraph\n        The captured graph\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamBeginCapture\n    cuStreamIsCapturing\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_347cuStreamEndCapture = {"cuStreamEndCapture", (PyCFunction)__pyx_pw_4cuda_4cuda_347cuStreamEndCapture, METH_O, __pyx_doc_4cuda_4cuda_346cuStreamEndCapture};
static PyObject *__pyx_pw_4cuda_4cuda_347cuStreamEndCapture(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamEndCapture (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18715, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_346cuStreamEndCapture(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_346cuStreamEndCapture(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_phGraph = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__693)
  __Pyx_RefNannySetupContext("cuStreamEndCapture", 0);
  __Pyx_TraceCall("cuStreamEndCapture", __pyx_f[0], 18715, 0, __PYX_ERR(0, 18715, __pyx_L1_error));

  /* "cuda/cuda.pyx":18749
 *     cuStreamIsCapturing
 *     """
 *     cdef CUgraph phGraph = CUgraph()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamEndCapture(hStream._ptr[0], phGraph._ptr)
 *     return (CUresult(err), phGraph)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18750
 *     """
 *     cdef CUgraph phGraph = CUgraph()
 *     err = ccuda.cuStreamEndCapture(hStream._ptr[0], phGraph._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraph)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuStreamEndCapture((__pyx_v_hStream->_ptr[0]), __pyx_v_phGraph->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18750, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":18751
 *     cdef CUgraph phGraph = CUgraph()
 *     err = ccuda.cuStreamEndCapture(hStream._ptr[0], phGraph._ptr)
 *     return (CUresult(err), phGraph)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraph));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraph));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phGraph));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18715
 * 
 * @cython.embedsignature(True)
 * def cuStreamEndCapture(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Ends capture on a stream, returning the captured graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamEndCapture", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraph);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18754
 * 
 * @cython.embedsignature(True)
 * def cuStreamIsCapturing(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Returns a stream's capture status.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_349cuStreamIsCapturing(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_348cuStreamIsCapturing[] = "cuStreamIsCapturing(CUstream hStream: CUstream)\n Returns a stream's capture status.\n\n    Return the capture status of `hStream` via `captureStatus`. After a\n    successful call, `*captureStatus` will contain one of the following:\n    CU_STREAM_CAPTURE_STATUS_NONE: The stream is not capturing.\n    CU_STREAM_CAPTURE_STATUS_ACTIVE: The stream is capturing.\n    CU_STREAM_CAPTURE_STATUS_INVALIDATED: The stream was capturing but an\n    error has invalidated the capture sequence. The capture sequence must\n    be terminated with cuStreamEndCapture on the stream where it was\n    initiated in order to continue using `hStream`.\n\n    Note that, if this is called on CU_STREAM_LEGACY (the \"null stream\")\n    while a blocking stream in the same context is capturing, it will\n    return CUDA_ERROR_STREAM_CAPTURE_IMPLICIT and `*captureStatus` is\n    unspecified after the call. The blocking stream capture is not\n    invalidated.\n\n    When a blocking stream is capturing, the legacy stream is in an\n    unusable state until the blocking stream capture is terminated. The\n    legacy stream is not supported for stream capture, but attempted use\n    would have an implicit dependency on the capturing stream(s).\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_STREAM_CAPTURE_IMPLICIT\n    captureStatus : CUstreamCaptureStatus\n        Returns the stream's capture status\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamBeginCapture\n    cuStreamEndCapture\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_349cuStreamIsCapturing = {"cuStreamIsCapturing", (PyCFunction)__pyx_pw_4cuda_4cuda_349cuStreamIsCapturing, METH_O, __pyx_doc_4cuda_4cuda_348cuStreamIsCapturing};
static PyObject *__pyx_pw_4cuda_4cuda_349cuStreamIsCapturing(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamIsCapturing (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18754, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_348cuStreamIsCapturing(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_348cuStreamIsCapturing(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus __pyx_v_captureStatus;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__694)
  __Pyx_RefNannySetupContext("cuStreamIsCapturing", 0);
  __Pyx_TraceCall("cuStreamIsCapturing", __pyx_f[0], 18754, 0, __PYX_ERR(0, 18754, __pyx_L1_error));

  /* "cuda/cuda.pyx":18800
 *     """
 *     cdef ccuda.CUstreamCaptureStatus captureStatus
 *     err = ccuda.cuStreamIsCapturing(hStream._ptr[0], &captureStatus)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamIsCapturing((__pyx_v_hStream->_ptr[0]), (&__pyx_v_captureStatus)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18800, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":18801
 *     cdef ccuda.CUstreamCaptureStatus captureStatus
 *     err = ccuda.cuStreamIsCapturing(hStream._ptr[0], &captureStatus)
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUstreamCaptureStatus); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(__pyx_v_captureStatus); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18754
 * 
 * @cython.embedsignature(True)
 * def cuStreamIsCapturing(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Returns a stream's capture status.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuStreamIsCapturing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18804
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query capture status of a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_351cuStreamGetCaptureInfo(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_350cuStreamGetCaptureInfo[] = "cuStreamGetCaptureInfo(CUstream hStream: CUstream)\n Query capture status of a stream.\n\n    Note there is a later version of this API, cuStreamGetCaptureInfo_v2.\n    It will supplant this version in 12.0, which is retained for minor\n    version compatibility.\n\n    Query the capture status of a stream and and get an id for the capture\n    sequence, which is unique over the lifetime of the process.\n\n    If called on CU_STREAM_LEGACY (the \"null stream\") while a stream not\n    created with CU_STREAM_NON_BLOCKING is capturing, returns\n    CUDA_ERROR_STREAM_CAPTURE_IMPLICIT.\n\n    A valid id is returned only if both of the following are true: the call\n    returns CUDA_SUCCESS captureStatus is set to\n    CU_STREAM_CAPTURE_STATUS_ACTIVE\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_STREAM_CAPTURE_IMPLICIT\n    None\n        None\n\n    See Also\n    --------\n    cuStreamGetCaptureInfo_v2\n    cuStreamBeginCapture\n    cuStreamIsCapturing\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_351cuStreamGetCaptureInfo = {"cuStreamGetCaptureInfo", (PyCFunction)__pyx_pw_4cuda_4cuda_351cuStreamGetCaptureInfo, METH_O, __pyx_doc_4cuda_4cuda_350cuStreamGetCaptureInfo};
static PyObject *__pyx_pw_4cuda_4cuda_351cuStreamGetCaptureInfo(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamGetCaptureInfo (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18804, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_350cuStreamGetCaptureInfo(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_350cuStreamGetCaptureInfo(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus __pyx_v_captureStatus_out;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_id_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__695)
  __Pyx_RefNannySetupContext("cuStreamGetCaptureInfo", 0);
  __Pyx_TraceCall("cuStreamGetCaptureInfo", __pyx_f[0], 18804, 0, __PYX_ERR(0, 18804, __pyx_L1_error));

  /* "cuda/cuda.pyx":18837
 *     """
 *     cdef ccuda.CUstreamCaptureStatus captureStatus_out
 *     cdef cuuint64_t id_out = cuuint64_t()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamGetCaptureInfo(hStream._ptr[0], &captureStatus_out, id_out._ptr)
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_id_out = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18838
 *     cdef ccuda.CUstreamCaptureStatus captureStatus_out
 *     cdef cuuint64_t id_out = cuuint64_t()
 *     err = ccuda.cuStreamGetCaptureInfo(hStream._ptr[0], &captureStatus_out, id_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuStreamGetCaptureInfo((__pyx_v_hStream->_ptr[0]), (&__pyx_v_captureStatus_out), __pyx_v_id_out->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18838, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":18839
 *     cdef cuuint64_t id_out = cuuint64_t()
 *     err = ccuda.cuStreamGetCaptureInfo(hStream._ptr[0], &captureStatus_out, id_out._ptr)
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUstreamCaptureStatus); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(__pyx_v_captureStatus_out); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_id_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_id_out));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_id_out));
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18804
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query capture status of a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetCaptureInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_id_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18842
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo_v2(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query a stream's capture state (11.3+)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_353cuStreamGetCaptureInfo_v2(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_352cuStreamGetCaptureInfo_v2[] = "cuStreamGetCaptureInfo_v2(CUstream hStream: CUstream)\n Query a stream's capture state (11.3+)\n\n    Query stream state related to stream capture.\n\n    If called on CU_STREAM_LEGACY (the \"null stream\") while a stream not\n    created with CU_STREAM_NON_BLOCKING is capturing, returns\n    CUDA_ERROR_STREAM_CAPTURE_IMPLICIT.\n\n    Valid data (other than capture status) is returned only if both of the\n    following are true: the call returns CUDA_SUCCESS the returned capture\n    status is CU_STREAM_CAPTURE_STATUS_ACTIVE\n\n    This version of cuStreamGetCaptureInfo is introduced in CUDA 11.3 and\n    will supplant the previous version in 12.0. Developers requiring\n    compatibility across minor versions to CUDA 11.0 (driver version 445)\n    should use cuStreamGetCaptureInfo or include a fallback path.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        The stream to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_STREAM_CAPTURE_IMPLICIT\n    captureStatus_out : CUstreamCaptureStatus\n        Location to return the capture status of the stream; required\n    id_out : cuuint64_t\n        Optional location to return an id for the capture sequence, which\n        is unique over the lifetime of the process\n    graph_out : CUgraph\n        Optional location to return the graph being captured into. All\n        operations other than destroy and node removal are permitted on the\n        graph while the capture sequence is in progress. This API does not\n        transfer ownership of the graph, which is transferred or destroyed\n        at cuStreamEndCapture. Note that the graph handle may be\n        invalidated before end of capture for certain errors. Nodes that\n        are or become unreachable from the original stream at\n        cuStreamEndCapture due to direct actions on the graph do not\n        trigger CUDA_ERROR_STREAM_CAPTURE_UNJOINED.\n    dependencies_out : List[""CUgraphNode]\n        Optional location to store a pointer to an array of nodes. The next\n        node to be captured in the stream will depend on this set of nodes,\n        absent operations such as event wait which modify this set. The\n        array pointer is valid until the next API call which operates on\n        the stream or until end of capture. The node handles may be copied\n        out and are valid until they or the graph is destroyed. The driver-\n        owned array may also be passed directly to APIs that operate on the\n        graph (not the stream) without copying.\n    numDependencies_out : int\n        Optional location to store the size of the array returned in\n        dependencies_out.\n\n    See Also\n    --------\n    cuStreamGetCaptureInfo\n    cuStreamBeginCapture\n    cuStreamIsCapturing\n    cuStreamUpdateCaptureDependencies\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_353cuStreamGetCaptureInfo_v2 = {"cuStreamGetCaptureInfo_v2", (PyCFunction)__pyx_pw_4cuda_4cuda_353cuStreamGetCaptureInfo_v2, METH_O, __pyx_doc_4cuda_4cuda_352cuStreamGetCaptureInfo_v2};
static PyObject *__pyx_pw_4cuda_4cuda_353cuStreamGetCaptureInfo_v2(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamGetCaptureInfo_v2 (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18842, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_352cuStreamGetCaptureInfo_v2(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_352cuStreamGetCaptureInfo_v2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus __pyx_v_captureStatus_out;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_id_out = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph_out = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode const *__pyx_v_cdependencies_out;
  PyObject *__pyx_v_pydependencies_out = NULL;
  size_t __pyx_v_numDependencies_out;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  size_t __pyx_9genexpr74__pyx_v_idx;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__696)
  __Pyx_RefNannySetupContext("cuStreamGetCaptureInfo_v2", 0);
  __Pyx_TraceCall("cuStreamGetCaptureInfo_v2", __pyx_f[0], 18842, 0, __PYX_ERR(0, 18842, __pyx_L1_error));

  /* "cuda/cuda.pyx":18907
 *     """
 *     cdef ccuda.CUstreamCaptureStatus captureStatus_out
 *     cdef cuuint64_t id_out = cuuint64_t()             # <<<<<<<<<<<<<<
 *     cdef CUgraph graph_out = CUgraph()
 *     cdef const ccuda.CUgraphNode* cdependencies_out = NULL
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_id_out = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18908
 *     cdef ccuda.CUstreamCaptureStatus captureStatus_out
 *     cdef cuuint64_t id_out = cuuint64_t()
 *     cdef CUgraph graph_out = CUgraph()             # <<<<<<<<<<<<<<
 *     cdef const ccuda.CUgraphNode* cdependencies_out = NULL
 *     pydependencies_out = []
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_graph_out = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18909
 *     cdef cuuint64_t id_out = cuuint64_t()
 *     cdef CUgraph graph_out = CUgraph()
 *     cdef const ccuda.CUgraphNode* cdependencies_out = NULL             # <<<<<<<<<<<<<<
 *     pydependencies_out = []
 *     cdef size_t numDependencies_out = 0
 */
  __pyx_v_cdependencies_out = NULL;

  /* "cuda/cuda.pyx":18910
 *     cdef CUgraph graph_out = CUgraph()
 *     cdef const ccuda.CUgraphNode* cdependencies_out = NULL
 *     pydependencies_out = []             # <<<<<<<<<<<<<<
 *     cdef size_t numDependencies_out = 0
 *     err = ccuda.cuStreamGetCaptureInfo_v2(hStream._ptr[0], &captureStatus_out, id_out._ptr, graph_out._ptr, &cdependencies_out, &numDependencies_out)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pydependencies_out = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18911
 *     cdef const ccuda.CUgraphNode* cdependencies_out = NULL
 *     pydependencies_out = []
 *     cdef size_t numDependencies_out = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamGetCaptureInfo_v2(hStream._ptr[0], &captureStatus_out, id_out._ptr, graph_out._ptr, &cdependencies_out, &numDependencies_out)
 *     if CUresult(err) == CUresult(0):
 */
  __pyx_v_numDependencies_out = 0;

  /* "cuda/cuda.pyx":18912
 *     pydependencies_out = []
 *     cdef size_t numDependencies_out = 0
 *     err = ccuda.cuStreamGetCaptureInfo_v2(hStream._ptr[0], &captureStatus_out, id_out._ptr, graph_out._ptr, &cdependencies_out, &numDependencies_out)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pydependencies_out = [CUgraphNode(init_value=<void_ptr>cdependencies_out[idx]) for idx in range(numDependencies_out)]
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuStreamGetCaptureInfo_v2((__pyx_v_hStream->_ptr[0]), (&__pyx_v_captureStatus_out), __pyx_v_id_out->_ptr, __pyx_v_graph_out->_ptr, (&__pyx_v_cdependencies_out), (&__pyx_v_numDependencies_out)); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18912, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":18913
 *     cdef size_t numDependencies_out = 0
 *     err = ccuda.cuStreamGetCaptureInfo_v2(hStream._ptr[0], &captureStatus_out, id_out._ptr, graph_out._ptr, &cdependencies_out, &numDependencies_out)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pydependencies_out = [CUgraphNode(init_value=<void_ptr>cdependencies_out[idx]) for idx in range(numDependencies_out)]
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out, graph_out, pydependencies_out, numDependencies_out)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 18913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_6) {

    /* "cuda/cuda.pyx":18914
 *     err = ccuda.cuStreamGetCaptureInfo_v2(hStream._ptr[0], &captureStatus_out, id_out._ptr, graph_out._ptr, &cdependencies_out, &numDependencies_out)
 *     if CUresult(err) == CUresult(0):
 *         pydependencies_out = [CUgraphNode(init_value=<void_ptr>cdependencies_out[idx]) for idx in range(numDependencies_out)]             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out, graph_out, pydependencies_out, numDependencies_out)
 * 
 */
    { /* enter inner scope */
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18914, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __pyx_v_numDependencies_out;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr74__pyx_v_idx = __pyx_t_9;
        __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18914, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_cdependencies_out[__pyx_9genexpr74__pyx_v_idx]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18914, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_init_value, __pyx_t_1) < 0) __PYX_ERR(0, 18914, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18914, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 18914, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pydependencies_out, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "cuda/cuda.pyx":18913
 *     cdef size_t numDependencies_out = 0
 *     err = ccuda.cuStreamGetCaptureInfo_v2(hStream._ptr[0], &captureStatus_out, id_out._ptr, graph_out._ptr, &cdependencies_out, &numDependencies_out)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pydependencies_out = [CUgraphNode(init_value=<void_ptr>cdependencies_out[idx]) for idx in range(numDependencies_out)]
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out, graph_out, pydependencies_out, numDependencies_out)
 */
  }

  /* "cuda/cuda.pyx":18915
 *     if CUresult(err) == CUresult(0):
 *         pydependencies_out = [CUgraphNode(init_value=<void_ptr>cdependencies_out[idx]) for idx in range(numDependencies_out)]
 *     return (CUresult(err), CUstreamCaptureStatus(captureStatus_out), id_out, graph_out, pydependencies_out, numDependencies_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUstreamCaptureStatus); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(__pyx_v_captureStatus_out); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies_out); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 18915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_id_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_id_out));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_id_out));
  __Pyx_INCREF(((PyObject *)__pyx_v_graph_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_graph_out));
  PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_graph_out));
  __Pyx_INCREF(__pyx_v_pydependencies_out);
  __Pyx_GIVEREF(__pyx_v_pydependencies_out);
  PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_pydependencies_out);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_3);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18842
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo_v2(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query a stream's capture state (11.3+)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetCaptureInfo_v2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_id_out);
  __Pyx_XDECREF((PyObject *)__pyx_v_graph_out);
  __Pyx_XDECREF(__pyx_v_pydependencies_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18918
 * 
 * @cython.embedsignature(True)
 * def cuStreamUpdateCaptureDependencies(hStream not None : CUstream, dependencies : List[CUgraphNode], size_t numDependencies, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Update the set of dependencies in a capturing stream (11.3+)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_355cuStreamUpdateCaptureDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_354cuStreamUpdateCaptureDependencies[] = "cuStreamUpdateCaptureDependencies(CUstream hStream: CUstream, dependencies: List[CUgraphNode], size_t numDependencies, unsigned int flags)\n Update the set of dependencies in a capturing stream (11.3+)\n\n    Modifies the dependency set of a capturing stream. The dependency set\n    is the set of nodes that the next captured node in the stream will\n    depend on.\n\n    Valid flags are CU_STREAM_ADD_CAPTURE_DEPENDENCIES and\n    CU_STREAM_SET_CAPTURE_DEPENDENCIES. These control whether the set\n    passed to the API is added to the existing set or replaces it. A flags\n    value of 0 defaults to CU_STREAM_ADD_CAPTURE_DEPENDENCIES.\n\n    Nodes that are removed from the dependency set via this API do not\n    result in CUDA_ERROR_STREAM_CAPTURE_UNJOINED if they are unreachable\n    from the stream at cuStreamEndCapture.\n\n    Returns CUDA_ERROR_ILLEGAL_STATE if the stream is not capturing.\n\n    This API is new in CUDA 11.3. Developers requiring compatibility across\n    minor versions to CUDA 11.0 should not use this API or provide a\n    fallback.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_ILLEGAL_STATE\n    None\n        None\n\n    See Also\n    --------\n    cuStreamBeginCapture\n    cuStreamGetCaptureInfo\n    cuStreamGetCaptureInfo_v2\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_355cuStreamUpdateCaptureDependencies = {"cuStreamUpdateCaptureDependencies", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_355cuStreamUpdateCaptureDependencies, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_354cuStreamUpdateCaptureDependencies};
static PyObject *__pyx_pw_4cuda_4cuda_355cuStreamUpdateCaptureDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamUpdateCaptureDependencies (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamUpdateCaptureDependencies", 1, 4, 4, 1); __PYX_ERR(0, 18918, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamUpdateCaptureDependencies", 1, 4, 4, 2); __PYX_ERR(0, 18918, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamUpdateCaptureDependencies", 1, 4, 4, 3); __PYX_ERR(0, 18918, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamUpdateCaptureDependencies") < 0)) __PYX_ERR(0, 18918, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 18918, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18918, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamUpdateCaptureDependencies", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18918, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamUpdateCaptureDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18918, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_354cuStreamUpdateCaptureDependencies(__pyx_self, __pyx_v_hStream, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_2generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":18956
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_22_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_22_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18956, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_2generator11, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuStreamUpdateCaptureDependencie, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 18956, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamUpdateCaptureDependencies.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_2generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 18956, 0, __PYX_ERR(0, 18956, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 18956, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 18956, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18956, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18956, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18956, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 18956, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18956, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 18956, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18918
 * 
 * @cython.embedsignature(True)
 * def cuStreamUpdateCaptureDependencies(hStream not None : CUstream, dependencies : List[CUgraphNode], size_t numDependencies, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Update the set of dependencies in a capturing stream (11.3+)
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_354cuStreamUpdateCaptureDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_2generator11 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__697)
  __Pyx_RefNannySetupContext("cuStreamUpdateCaptureDependencies", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 18918, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuStreamUpdateCaptureDependencies", __pyx_f[0], 18918, 0, __PYX_ERR(0, 18918, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":18955
 *     cuStreamGetCaptureInfo_v2
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18956
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 18956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":18957
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 18957, __pyx_L1_error)

    /* "cuda/cuda.pyx":18956
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
  }

  /* "cuda/cuda.pyx":18958
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":18959
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18959, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":18960
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18960, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":18961
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":18962
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 18962, __pyx_L1_error)

      /* "cuda/cuda.pyx":18961
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":18964
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18964, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":18965
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18965, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":18959
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":18967
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamUpdateCaptureDependencies(hStream._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, flags)
 *     if cdependencies is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 18967, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":18968
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuStreamUpdateCaptureDependencies(hStream._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, flags)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 18968, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdependencies;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuStreamUpdateCaptureDependencies((__pyx_v_hStream->_ptr[0]), __pyx_t_9, __pyx_v_numDependencies, __pyx_v_flags); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 18968, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":18969
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuStreamUpdateCaptureDependencies(hStream._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, flags)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":18970
 *     err = ccuda.cuStreamUpdateCaptureDependencies(hStream._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, flags)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":18969
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuStreamUpdateCaptureDependencies(hStream._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, flags)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":18971
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 18971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18918
 * 
 * @cython.embedsignature(True)
 * def cuStreamUpdateCaptureDependencies(hStream not None : CUstream, dependencies : List[CUgraphNode], size_t numDependencies, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Update the set of dependencies in a capturing stream (11.3+)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuStreamUpdateCaptureDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_33cuStreamUpdateCaptureDependencies_2generator11);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":18974
 * 
 * @cython.embedsignature(True)
 * def cuStreamAttachMemAsync(hStream not None : CUstream, dptr not None : CUdeviceptr, size_t length, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Attach memory to a stream asynchronously.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_357cuStreamAttachMemAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_356cuStreamAttachMemAsync[] = "cuStreamAttachMemAsync(CUstream hStream: CUstream, CUdeviceptr dptr: CUdeviceptr, size_t length, unsigned int flags)\n Attach memory to a stream asynchronously.\n\n    Enqueues an operation in `hStream` to specify stream association of\n    `length` bytes of memory starting from `dptr`. This function is a\n    stream-ordered operation, meaning that it is dependent on, and will\n    only take effect when, previous work in stream has completed. Any\n    previous association is automatically replaced.\n\n    `dptr` must point to one of the following types of memories: managed\n    memory declared using the managed keyword or allocated with\n    cuMemAllocManaged. a valid host-accessible region of system-allocated\n    pageable memory. This type of memory may only be specified if the\n    device associated with the stream reports a non-zero value for the\n    device attribute CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS.\n\n    For managed allocations, `length` must be either zero or the entire\n    allocation's size. Both indicate that the entire allocation's stream\n    association is being changed. Currently, it is not possible to change\n    stream association for a portion of a managed allocation.\n\n    For pageable host allocations, `length` must be non-zero.\n\n    The stream association is specified using `flags` which must be one of\n    CUmemAttach_flags. If the CU_MEM_ATTACH_GLOBAL flag is specified, the\n    memory can be accessed by any stream on any device. If the\n    CU_MEM_ATTACH_HOST flag is specified, the program makes a guarantee\n    that it won't access the memory on the device from any stream on a\n    device that has a zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS. If the\n    CU_MEM_ATTACH_SINGLE flag is specified and `hStream` is associated with\n    a device that has a zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS, the program makes a\n    guarantee that it will o""nly access the memory on the device from\n    `hStream`. It is illegal to attach singly to the NULL stream, because\n    the NULL stream is a virtual global stream and not a specific stream.\n    An error will be returned in this case.\n\n    When memory is associated with a single stream, the Unified Memory\n    system will allow CPU access to this memory region so long as all\n    operations in `hStream` have completed, regardless of whether other\n    streams are active. In effect, this constrains exclusive ownership of\n    the managed memory region by an active GPU to per-stream activity\n    instead of whole-GPU activity.\n\n    Accessing memory on the device from streams that are not associated\n    with it will produce undefined results. No error checking is performed\n    by the Unified Memory system to ensure that kernels launched into other\n    streams do not access this region.\n\n    It is a program's responsibility to order calls to\n    cuStreamAttachMemAsync via events, synchronization or other means to\n    ensure legal access to memory at all times. Data visibility and\n    coherency will be changed appropriately for all kernels which follow a\n    stream-association change.\n\n    If `hStream` is destroyed while data is associated with it, the\n    association is removed and the association reverts to the default\n    visibility of the allocation as specified at cuMemAllocManaged. For\n    managed variables, the default association is always\n    CU_MEM_ATTACH_GLOBAL. Note that destroying a stream is an asynchronous\n    operation, and as a result, the change to default association won't\n    happen until all work in the stream has completed.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream in which to enqueue the attach operation\n    dptr : CUdeviceptr\n        Pointer to memory (must be a pointer to managed memory or to a\n        valid host-accessible region of system-allocated pageable memory)\n    length : size_t""\n        Length of memory\n    flags : unsigned int\n        Must be one of CUmemAttach_flags\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamWaitEvent\n    cuStreamDestroy\n    cuMemAllocManaged\n    cudaStreamAttachMemAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_357cuStreamAttachMemAsync = {"cuStreamAttachMemAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_357cuStreamAttachMemAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_356cuStreamAttachMemAsync};
static PyObject *__pyx_pw_4cuda_4cuda_357cuStreamAttachMemAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  size_t __pyx_v_length;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamAttachMemAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_dptr_2,&__pyx_n_s_length,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamAttachMemAsync", 1, 4, 4, 1); __PYX_ERR(0, 18974, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamAttachMemAsync", 1, 4, 4, 2); __PYX_ERR(0, 18974, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamAttachMemAsync", 1, 4, 4, 3); __PYX_ERR(0, 18974, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamAttachMemAsync") < 0)) __PYX_ERR(0, 18974, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_length = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_length == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 18974, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 18974, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamAttachMemAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 18974, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamAttachMemAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 18974, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 18974, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_356cuStreamAttachMemAsync(__pyx_self, __pyx_v_hStream, __pyx_v_dptr, __pyx_v_length, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_356cuStreamAttachMemAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, size_t __pyx_v_length, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__699)
  __Pyx_RefNannySetupContext("cuStreamAttachMemAsync", 0);
  __Pyx_TraceCall("cuStreamAttachMemAsync", __pyx_f[0], 18974, 0, __PYX_ERR(0, 18974, __pyx_L1_error));

  /* "cuda/cuda.pyx":19072
 *     cudaStreamAttachMemAsync
 *     """
 *     err = ccuda.cuStreamAttachMemAsync(hStream._ptr[0], dptr._ptr[0], length, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamAttachMemAsync((__pyx_v_hStream->_ptr[0]), (__pyx_v_dptr->_ptr[0]), __pyx_v_length, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19072, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19073
 *     """
 *     err = ccuda.cuStreamAttachMemAsync(hStream._ptr[0], dptr._ptr[0], length, flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":18974
 * 
 * @cython.embedsignature(True)
 * def cuStreamAttachMemAsync(hStream not None : CUstream, dptr not None : CUdeviceptr, size_t length, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Attach memory to a stream asynchronously.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamAttachMemAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19076
 * 
 * @cython.embedsignature(True)
 * def cuStreamQuery(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Determine status of a compute stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_359cuStreamQuery(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_358cuStreamQuery[] = "cuStreamQuery(CUstream hStream: CUstream)\n Determine status of a compute stream.\n\n    Returns CUDA_SUCCESS if all operations in the stream specified by\n    `hStream` have completed, or CUDA_ERROR_NOT_READY if not.\n\n    For the purposes of Unified Memory, a return value of CUDA_SUCCESS is\n    equivalent to having called cuStreamSynchronize().\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to query status of\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_READY\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamWaitEvent\n    cuStreamDestroy\n    cuStreamSynchronize\n    cuStreamAddCallback\n    cudaStreamQuery\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_359cuStreamQuery = {"cuStreamQuery", (PyCFunction)__pyx_pw_4cuda_4cuda_359cuStreamQuery, METH_O, __pyx_doc_4cuda_4cuda_358cuStreamQuery};
static PyObject *__pyx_pw_4cuda_4cuda_359cuStreamQuery(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamQuery (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19076, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_358cuStreamQuery(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_358cuStreamQuery(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__700)
  __Pyx_RefNannySetupContext("cuStreamQuery", 0);
  __Pyx_TraceCall("cuStreamQuery", __pyx_f[0], 19076, 0, __PYX_ERR(0, 19076, __pyx_L1_error));

  /* "cuda/cuda.pyx":19111
 *     cudaStreamQuery
 *     """
 *     err = ccuda.cuStreamQuery(hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamQuery((__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19111, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19112
 *     """
 *     err = ccuda.cuStreamQuery(hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19076
 * 
 * @cython.embedsignature(True)
 * def cuStreamQuery(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Determine status of a compute stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamQuery", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19115
 * 
 * @cython.embedsignature(True)
 * def cuStreamSynchronize(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Wait until a stream's tasks are completed.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_361cuStreamSynchronize(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_360cuStreamSynchronize[] = "cuStreamSynchronize(CUstream hStream: CUstream)\n Wait until a stream's tasks are completed.\n\n    Waits until the device has completed all operations in the stream\n    specified by `hStream`. If the context was created with the\n    CU_CTX_SCHED_BLOCKING_SYNC flag, the CPU thread will block until the\n    stream is finished with all of its tasks.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to wait for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamDestroy\n    cuStreamWaitEvent\n    cuStreamQuery\n    cuStreamAddCallback\n    cudaStreamSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_361cuStreamSynchronize = {"cuStreamSynchronize", (PyCFunction)__pyx_pw_4cuda_4cuda_361cuStreamSynchronize, METH_O, __pyx_doc_4cuda_4cuda_360cuStreamSynchronize};
static PyObject *__pyx_pw_4cuda_4cuda_361cuStreamSynchronize(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamSynchronize (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19115, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_360cuStreamSynchronize(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_360cuStreamSynchronize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__701)
  __Pyx_RefNannySetupContext("cuStreamSynchronize", 0);
  __Pyx_TraceCall("cuStreamSynchronize", __pyx_f[0], 19115, 0, __PYX_ERR(0, 19115, __pyx_L1_error));

  /* "cuda/cuda.pyx":19148
 *     cudaStreamSynchronize
 *     """
 *     err = ccuda.cuStreamSynchronize(hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamSynchronize((__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19148, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19149
 *     """
 *     err = ccuda.cuStreamSynchronize(hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19115
 * 
 * @cython.embedsignature(True)
 * def cuStreamSynchronize(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Wait until a stream's tasks are completed.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamSynchronize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19152
 * 
 * @cython.embedsignature(True)
 * def cuStreamDestroy(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Destroys a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_363cuStreamDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hStream); /*proto*/
static char __pyx_doc_4cuda_4cuda_362cuStreamDestroy[] = "cuStreamDestroy(CUstream hStream: CUstream)\n Destroys a stream.\n\n    Destroys the stream specified by `hStream`.\n\n    In case the device is still doing work in the stream `hStream` when\n    cuStreamDestroy() is called, the function will return immediately and\n    the resources associated with `hStream` will be released automatically\n    once the device has completed all work in `hStream`.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamWaitEvent\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamAddCallback\n    cudaStreamDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_363cuStreamDestroy = {"cuStreamDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_363cuStreamDestroy, METH_O, __pyx_doc_4cuda_4cuda_362cuStreamDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_363cuStreamDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hStream) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19152, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_362cuStreamDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUstream *)__pyx_v_hStream));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_362cuStreamDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__702)
  __Pyx_RefNannySetupContext("cuStreamDestroy", 0);
  __Pyx_TraceCall("cuStreamDestroy", __pyx_f[0], 19152, 0, __PYX_ERR(0, 19152, __pyx_L1_error));

  /* "cuda/cuda.pyx":19188
 *     cudaStreamDestroy
 *     """
 *     err = ccuda.cuStreamDestroy(hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamDestroy((__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19188, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19189
 *     """
 *     err = ccuda.cuStreamDestroy(hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19152
 * 
 * @cython.embedsignature(True)
 * def cuStreamDestroy(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Destroys a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19192
 * 
 * @cython.embedsignature(True)
 * def cuStreamCopyAttributes(dst not None : CUstream, src not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source stream to destination stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_365cuStreamCopyAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_364cuStreamCopyAttributes[] = "cuStreamCopyAttributes(CUstream dst: CUstream, CUstream src: CUstream)\n Copies attributes from source stream to destination stream.\n\n    Copies attributes from source stream `src` to destination stream `dst`.\n    Both streams must have the same context.\n\n    Parameters\n    ----------\n    dst : CUstream\n        Destination stream\n    src : CUstream\n        Source stream For list of attributes see CUstreamAttrID\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_365cuStreamCopyAttributes = {"cuStreamCopyAttributes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_365cuStreamCopyAttributes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_364cuStreamCopyAttributes};
static PyObject *__pyx_pw_4cuda_4cuda_365cuStreamCopyAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_dst = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_src = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamCopyAttributes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dst_2,&__pyx_n_s_src,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dst_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_src)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamCopyAttributes", 1, 2, 2, 1); __PYX_ERR(0, 19192, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamCopyAttributes") < 0)) __PYX_ERR(0, 19192, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dst = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_src = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamCopyAttributes", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19192, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamCopyAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_4cuda_4cuda_CUstream, 0, "dst", 0))) __PYX_ERR(0, 19192, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_4cuda_4cuda_CUstream, 0, "src", 0))) __PYX_ERR(0, 19192, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_364cuStreamCopyAttributes(__pyx_self, __pyx_v_dst, __pyx_v_src);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_364cuStreamCopyAttributes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_src) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__703)
  __Pyx_RefNannySetupContext("cuStreamCopyAttributes", 0);
  __Pyx_TraceCall("cuStreamCopyAttributes", __pyx_f[0], 19192, 0, __PYX_ERR(0, 19192, __pyx_L1_error));

  /* "cuda/cuda.pyx":19213
 *         None
 *     """
 *     err = ccuda.cuStreamCopyAttributes(dst._ptr[0], src._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamCopyAttributes((__pyx_v_dst->_ptr[0]), (__pyx_v_src->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19213, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19214
 *     """
 *     err = ccuda.cuStreamCopyAttributes(dst._ptr[0], src._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19192
 * 
 * @cython.embedsignature(True)
 * def cuStreamCopyAttributes(dst not None : CUstream, src not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source stream to destination stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamCopyAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19217
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries stream attribute.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_367cuStreamGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_366cuStreamGetAttribute[] = "cuStreamGetAttribute(CUstream hStream: CUstream, attr: CUstreamAttrID)\n Queries stream attribute.\n\n    Queries attribute `attr` from `hStream` and stores it in corresponding\n    member of `value_out`.\n\n    Parameters\n    ----------\n    hStream : CUstream\n\n    attr : CUstreamAttrID\n\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    value_out : CUstreamAttrValue\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_367cuStreamGetAttribute = {"cuStreamGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_367cuStreamGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_366cuStreamGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_367cuStreamGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  PyObject *__pyx_v_attr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_attr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamGetAttribute", 1, 2, 2, 1); __PYX_ERR(0, 19217, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamGetAttribute") < 0)) __PYX_ERR(0, 19217, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_attr = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamGetAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19217, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19217, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 19217, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_366cuStreamGetAttribute(__pyx_self, __pyx_v_hStream, __pyx_v_attr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_366cuStreamGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_attr) {
  __pyx_t_4cuda_5ccuda_CUstreamAttrID __pyx_v_cattr;
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue *__pyx_v_value_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamAttrID __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__704)
  __Pyx_RefNannySetupContext("cuStreamGetAttribute", 0);
  __Pyx_TraceCall("cuStreamGetAttribute", __pyx_f[0], 19217, 0, __PYX_ERR(0, 19217, __pyx_L1_error));

  /* "cuda/cuda.pyx":19239
 * 
 *     """
 *     cdef ccuda.CUstreamAttrID cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef CUstreamAttrValue value_out = CUstreamAttrValue()
 *     err = ccuda.cuStreamGetAttribute(hStream._ptr[0], cattr, value_out._ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 19239, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":19240
 *     """
 *     cdef ccuda.CUstreamAttrID cattr = attr.value
 *     cdef CUstreamAttrValue value_out = CUstreamAttrValue()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamGetAttribute(hStream._ptr[0], cattr, value_out._ptr)
 *     return (CUresult(err), value_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamAttrValue)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_value_out = ((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19241
 *     cdef ccuda.CUstreamAttrID cattr = attr.value
 *     cdef CUstreamAttrValue value_out = CUstreamAttrValue()
 *     err = ccuda.cuStreamGetAttribute(hStream._ptr[0], cattr, value_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), value_out)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuStreamGetAttribute((__pyx_v_hStream->_ptr[0]), __pyx_v_cattr, __pyx_v_value_out->__pyx_base._ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19241, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":19242
 *     cdef CUstreamAttrValue value_out = CUstreamAttrValue()
 *     err = ccuda.cuStreamGetAttribute(hStream._ptr[0], cattr, value_out._ptr)
 *     return (CUresult(err), value_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_value_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_value_out));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_value_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19217
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries stream attribute.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuStreamGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_value_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19245
 * 
 * @cython.embedsignature(True)
 * def cuStreamSetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID, value : CUstreamAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets stream attribute.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_369cuStreamSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_368cuStreamSetAttribute[] = "cuStreamSetAttribute(CUstream hStream: CUstream, attr: CUstreamAttrID, CUstreamAttrValue value: CUstreamAttrValue)\n Sets stream attribute.\n\n    Sets attribute `attr` on `hStream` from corresponding attribute of\n    `value`. The updated attribute will be applied to subsequent work\n    submitted to the stream. It will not affect previously submitted work.\n\n    Parameters\n    ----------\n    hStream : CUstream\n\n    attr : CUstreamAttrID\n\n    value : CUstreamAttrValue\n\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_369cuStreamSetAttribute = {"cuStreamSetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_369cuStreamSetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_368cuStreamSetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_369cuStreamSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  PyObject *__pyx_v_attr = 0;
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue *__pyx_v_value = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamSetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_attr,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamSetAttribute", 1, 3, 3, 1); __PYX_ERR(0, 19245, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamSetAttribute", 1, 3, 3, 2); __PYX_ERR(0, 19245, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamSetAttribute") < 0)) __PYX_ERR(0, 19245, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_attr = values[1];
    __pyx_v_value = ((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamSetAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19245, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19245, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 19245, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), __pyx_ptype_4cuda_4cuda_CUstreamAttrValue, 1, "value", 0))) __PYX_ERR(0, 19245, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_368cuStreamSetAttribute(__pyx_self, __pyx_v_hStream, __pyx_v_attr, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_368cuStreamSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_attr, struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue *__pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUstreamAttrID __pyx_v_cattr;
  __pyx_t_4cuda_5ccuda_CUstreamAttrValue *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUstreamAttrID __pyx_t_2;
  union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union *__pyx_t_3;
  int __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__705)
  __Pyx_RefNannySetupContext("cuStreamSetAttribute", 0);
  __Pyx_TraceCall("cuStreamSetAttribute", __pyx_f[0], 19245, 0, __PYX_ERR(0, 19245, __pyx_L1_error));

  /* "cuda/cuda.pyx":19270
 *         None
 *     """
 *     cdef ccuda.CUstreamAttrID cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUstreamAttrValue* cvalue_ptr = value._ptr if value != None else NULL
 *     err = ccuda.cuStreamSetAttribute(hStream._ptr[0], cattr, cvalue_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 19270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":19271
 *     """
 *     cdef ccuda.CUstreamAttrID cattr = attr.value
 *     cdef ccuda.CUstreamAttrValue* cvalue_ptr = value._ptr if value != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuStreamSetAttribute(hStream._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_value), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19271, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 19271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_3 = __pyx_v_value->__pyx_base._ptr;
  } else {
    __pyx_t_3 = NULL;
  }
  __pyx_v_cvalue_ptr = __pyx_t_3;

  /* "cuda/cuda.pyx":19272
 *     cdef ccuda.CUstreamAttrID cattr = attr.value
 *     cdef ccuda.CUstreamAttrValue* cvalue_ptr = value._ptr if value != None else NULL
 *     err = ccuda.cuStreamSetAttribute(hStream._ptr[0], cattr, cvalue_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuStreamSetAttribute((__pyx_v_hStream->_ptr[0]), __pyx_v_cattr, __pyx_v_cvalue_ptr); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19272, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":19273
 *     cdef ccuda.CUstreamAttrValue* cvalue_ptr = value._ptr if value != None else NULL
 *     err = ccuda.cuStreamSetAttribute(hStream._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 19273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 19273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 19273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19245
 * 
 * @cython.embedsignature(True)
 * def cuStreamSetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID, value : CUstreamAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets stream attribute.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.cuStreamSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19276
 * 
 * @cython.embedsignature(True)
 * def cuEventCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Creates an event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_371cuEventCreate(PyObject *__pyx_self, PyObject *__pyx_arg_Flags); /*proto*/
static char __pyx_doc_4cuda_4cuda_370cuEventCreate[] = "cuEventCreate(unsigned int Flags)\n Creates an event.\n\n    Creates an event *phEvent for the current context with the flags\n    specified via `Flags`. Valid flags include: CU_EVENT_DEFAULT: Default\n    event creation flag. CU_EVENT_BLOCKING_SYNC: Specifies that the created\n    event should use blocking synchronization. A CPU thread that uses\n    cuEventSynchronize() to wait on an event created with this flag will\n    block until the event has actually been recorded.\n    CU_EVENT_DISABLE_TIMING: Specifies that the created event does not need\n    to record timing data. Events created with this flag specified and the\n    CU_EVENT_BLOCKING_SYNC flag not specified will provide the best\n    performance when used with cuStreamWaitEvent() and cuEventQuery().\n    CU_EVENT_INTERPROCESS: Specifies that the created event may be used as\n    an interprocess event by cuIpcGetEventHandle(). CU_EVENT_INTERPROCESS\n    must be specified along with CU_EVENT_DISABLE_TIMING.\n\n    Parameters\n    ----------\n    Flags : unsigned int\n        Event creation flags\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    phEvent : CUevent\n        Returns newly created event\n\n    See Also\n    --------\n    cuEventRecord\n    cuEventQuery\n    cuEventSynchronize\n    cuEventDestroy\n    cuEventElapsedTime\n    cudaEventCreate\n    cudaEventCreateWithFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_371cuEventCreate = {"cuEventCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_371cuEventCreate, METH_O, __pyx_doc_4cuda_4cuda_370cuEventCreate};
static PyObject *__pyx_pw_4cuda_4cuda_371cuEventCreate(PyObject *__pyx_self, PyObject *__pyx_arg_Flags) {
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventCreate (wrapper)", 0);
  assert(__pyx_arg_Flags); {
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_Flags); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 19276, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuEventCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_370cuEventCreate(__pyx_self, ((unsigned int)__pyx_v_Flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_370cuEventCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_Flags) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_phEvent = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__706)
  __Pyx_RefNannySetupContext("cuEventCreate", 0);
  __Pyx_TraceCall("cuEventCreate", __pyx_f[0], 19276, 0, __PYX_ERR(0, 19276, __pyx_L1_error));

  /* "cuda/cuda.pyx":19320
 *     cudaEventCreateWithFlags
 *     """
 *     cdef CUevent phEvent = CUevent()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuEventCreate(phEvent._ptr, Flags)
 *     return (CUresult(err), phEvent)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUevent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phEvent = ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19321
 *     """
 *     cdef CUevent phEvent = CUevent()
 *     err = ccuda.cuEventCreate(phEvent._ptr, Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phEvent)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuEventCreate(__pyx_v_phEvent->_ptr, __pyx_v_Flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19321, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":19322
 *     cdef CUevent phEvent = CUevent()
 *     err = ccuda.cuEventCreate(phEvent._ptr, Flags)
 *     return (CUresult(err), phEvent)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phEvent));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phEvent));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phEvent));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19276
 * 
 * @cython.embedsignature(True)
 * def cuEventCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Creates an event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phEvent);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19325
 * 
 * @cython.embedsignature(True)
 * def cuEventRecord(hEvent not None : CUevent, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_373cuEventRecord(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_372cuEventRecord[] = "cuEventRecord(CUevent hEvent: CUevent, CUstream hStream: CUstream)\n Records an event.\n\n    Captures in `hEvent` the contents of `hStream` at the time of this\n    call. `hEvent` and `hStream` must be from the same context. Calls such\n    as cuEventQuery() or cuStreamWaitEvent() will then examine or wait for\n    completion of the work that was captured. Uses of `hStream` after this\n    call do not modify `hEvent`. See note on default stream behavior for\n    what is captured in the default case.\n\n    cuEventRecord() can be called multiple times on the same event and will\n    overwrite the previously captured state. Other APIs such as\n    cuStreamWaitEvent() use the most recently captured state at the time of\n    the API call, and are not affected by later calls to cuEventRecord().\n    Before the first call to cuEventRecord(), an event represents an empty\n    set of work, so for example cuEventQuery() would return CUDA_SUCCESS.\n\n    Parameters\n    ----------\n    hEvent : CUevent\n        Event to record\n    hStream : CUstream\n        Stream to record event for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventQuery\n    cuEventSynchronize\n    cuStreamWaitEvent\n    cuEventDestroy\n    cuEventElapsedTime\n    cudaEventRecord\n    cuEventRecordWithFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_373cuEventRecord = {"cuEventRecord", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_373cuEventRecord, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_372cuEventRecord};
static PyObject *__pyx_pw_4cuda_4cuda_373cuEventRecord(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventRecord (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hEvent,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hEvent)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuEventRecord", 1, 2, 2, 1); __PYX_ERR(0, 19325, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuEventRecord") < 0)) __PYX_ERR(0, 19325, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hEvent = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuEventRecord", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19325, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuEventRecord", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEvent), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEvent", 0))) __PYX_ERR(0, 19325, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19325, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_372cuEventRecord(__pyx_self, __pyx_v_hEvent, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_372cuEventRecord(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__707)
  __Pyx_RefNannySetupContext("cuEventRecord", 0);
  __Pyx_TraceCall("cuEventRecord", __pyx_f[0], 19325, 0, __PYX_ERR(0, 19325, __pyx_L1_error));

  /* "cuda/cuda.pyx":19372
 *     cuEventRecordWithFlags
 *     """
 *     err = ccuda.cuEventRecord(hEvent._ptr[0], hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuEventRecord((__pyx_v_hEvent->_ptr[0]), (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19372, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19373
 *     """
 *     err = ccuda.cuEventRecord(hEvent._ptr[0], hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19325
 * 
 * @cython.embedsignature(True)
 * def cuEventRecord(hEvent not None : CUevent, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventRecord", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19376
 * 
 * @cython.embedsignature(True)
 * def cuEventRecordWithFlags(hEvent not None : CUevent, hStream not None : CUstream, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_375cuEventRecordWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_374cuEventRecordWithFlags[] = "cuEventRecordWithFlags(CUevent hEvent: CUevent, CUstream hStream: CUstream, unsigned int flags)\n Records an event.\n\n    Captures in `hEvent` the contents of `hStream` at the time of this\n    call. `hEvent` and `hStream` must be from the same context. Calls such\n    as cuEventQuery() or cuStreamWaitEvent() will then examine or wait for\n    completion of the work that was captured. Uses of `hStream` after this\n    call do not modify `hEvent`. See note on default stream behavior for\n    what is captured in the default case.\n\n    cuEventRecordWithFlags() can be called multiple times on the same event\n    and will overwrite the previously captured state. Other APIs such as\n    cuStreamWaitEvent() use the most recently captured state at the time of\n    the API call, and are not affected by later calls to\n    cuEventRecordWithFlags(). Before the first call to\n    cuEventRecordWithFlags(), an event represents an empty set of work, so\n    for example cuEventQuery() would return CUDA_SUCCESS.\n\n    flags include: CU_EVENT_RECORD_DEFAULT: Default event creation flag.\n    CU_EVENT_RECORD_EXTERNAL: Event is captured in the graph as an external\n    event node when performing stream capture. This flag is invalid outside\n    of stream capture.\n\n    Parameters\n    ----------\n    hEvent : CUevent\n        Event to record\n    hStream : CUstream\n        Stream to record event for\n    flags : unsigned int\n        See CUevent_capture_flags\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventQuery\n    cuEventSynchronize\n    cuStreamWaitEvent\n    cuEventDestroy\n    cuEventElapsedTime\n    cuEventRecord\n    cudaEventRecord\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_375cuEventRecordWithFlags = {"cuEventRecordWithFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_375cuEventRecordWithFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_374cuEventRecordWithFlags};
static PyObject *__pyx_pw_4cuda_4cuda_375cuEventRecordWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventRecordWithFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hEvent,&__pyx_n_s_hStream_2,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hEvent)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuEventRecordWithFlags", 1, 3, 3, 1); __PYX_ERR(0, 19376, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuEventRecordWithFlags", 1, 3, 3, 2); __PYX_ERR(0, 19376, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuEventRecordWithFlags") < 0)) __PYX_ERR(0, 19376, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hEvent = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 19376, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuEventRecordWithFlags", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19376, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuEventRecordWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEvent), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEvent", 0))) __PYX_ERR(0, 19376, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 19376, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_374cuEventRecordWithFlags(__pyx_self, __pyx_v_hEvent, __pyx_v_hStream, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_374cuEventRecordWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__708)
  __Pyx_RefNannySetupContext("cuEventRecordWithFlags", 0);
  __Pyx_TraceCall("cuEventRecordWithFlags", __pyx_f[0], 19376, 0, __PYX_ERR(0, 19376, __pyx_L1_error));

  /* "cuda/cuda.pyx":19431
 *     cudaEventRecord
 *     """
 *     err = ccuda.cuEventRecordWithFlags(hEvent._ptr[0], hStream._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuEventRecordWithFlags((__pyx_v_hEvent->_ptr[0]), (__pyx_v_hStream->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19431, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19432
 *     """
 *     err = ccuda.cuEventRecordWithFlags(hEvent._ptr[0], hStream._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19376
 * 
 * @cython.embedsignature(True)
 * def cuEventRecordWithFlags(hEvent not None : CUevent, hStream not None : CUstream, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventRecordWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19435
 * 
 * @cython.embedsignature(True)
 * def cuEventQuery(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Queries an event's status.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_377cuEventQuery(PyObject *__pyx_self, PyObject *__pyx_v_hEvent); /*proto*/
static char __pyx_doc_4cuda_4cuda_376cuEventQuery[] = "cuEventQuery(CUevent hEvent: CUevent)\n Queries an event's status.\n\n    Queries the status of all work currently captured by `hEvent`. See\n    cuEventRecord() for details on what is captured by an event.\n\n    Returns CUDA_SUCCESS if all captured work has been completed, or\n    CUDA_ERROR_NOT_READY if any captured work is incomplete.\n\n    For the purposes of Unified Memory, a return value of CUDA_SUCCESS is\n    equivalent to having called cuEventSynchronize().\n\n    Parameters\n    ----------\n    hEvent : CUevent\n        Event to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_READY\n    None\n        None\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventRecord\n    cuEventSynchronize\n    cuEventDestroy\n    cuEventElapsedTime\n    cudaEventQuery\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_377cuEventQuery = {"cuEventQuery", (PyCFunction)__pyx_pw_4cuda_4cuda_377cuEventQuery, METH_O, __pyx_doc_4cuda_4cuda_376cuEventQuery};
static PyObject *__pyx_pw_4cuda_4cuda_377cuEventQuery(PyObject *__pyx_self, PyObject *__pyx_v_hEvent) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventQuery (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEvent), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEvent", 0))) __PYX_ERR(0, 19435, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_376cuEventQuery(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_hEvent));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_376cuEventQuery(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__709)
  __Pyx_RefNannySetupContext("cuEventQuery", 0);
  __Pyx_TraceCall("cuEventQuery", __pyx_f[0], 19435, 0, __PYX_ERR(0, 19435, __pyx_L1_error));

  /* "cuda/cuda.pyx":19473
 *     cudaEventQuery
 *     """
 *     err = ccuda.cuEventQuery(hEvent._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuEventQuery((__pyx_v_hEvent->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19473, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19474
 *     """
 *     err = ccuda.cuEventQuery(hEvent._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19435
 * 
 * @cython.embedsignature(True)
 * def cuEventQuery(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Queries an event's status.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventQuery", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19477
 * 
 * @cython.embedsignature(True)
 * def cuEventSynchronize(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Waits for an event to complete.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_379cuEventSynchronize(PyObject *__pyx_self, PyObject *__pyx_v_hEvent); /*proto*/
static char __pyx_doc_4cuda_4cuda_378cuEventSynchronize[] = "cuEventSynchronize(CUevent hEvent: CUevent)\n Waits for an event to complete.\n\n    Waits until the completion of all work currently captured in `hEvent`.\n    See cuEventRecord() for details on what is captured by an event.\n\n    Waiting for an event that was created with the CU_EVENT_BLOCKING_SYNC\n    flag will cause the calling CPU thread to block until the event has\n    been completed by the device. If the CU_EVENT_BLOCKING_SYNC flag has\n    not been set, then the CPU thread will busy-wait until the event has\n    been completed by the device.\n\n    Parameters\n    ----------\n    hEvent : CUevent\n        Event to wait for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventRecord\n    cuEventQuery\n    cuEventDestroy\n    cuEventElapsedTime\n    cudaEventSynchronize\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_379cuEventSynchronize = {"cuEventSynchronize", (PyCFunction)__pyx_pw_4cuda_4cuda_379cuEventSynchronize, METH_O, __pyx_doc_4cuda_4cuda_378cuEventSynchronize};
static PyObject *__pyx_pw_4cuda_4cuda_379cuEventSynchronize(PyObject *__pyx_self, PyObject *__pyx_v_hEvent) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventSynchronize (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEvent), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEvent", 0))) __PYX_ERR(0, 19477, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_378cuEventSynchronize(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_hEvent));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_378cuEventSynchronize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__710)
  __Pyx_RefNannySetupContext("cuEventSynchronize", 0);
  __Pyx_TraceCall("cuEventSynchronize", __pyx_f[0], 19477, 0, __PYX_ERR(0, 19477, __pyx_L1_error));

  /* "cuda/cuda.pyx":19514
 *     cudaEventSynchronize
 *     """
 *     err = ccuda.cuEventSynchronize(hEvent._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuEventSynchronize((__pyx_v_hEvent->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19514, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19515
 *     """
 *     err = ccuda.cuEventSynchronize(hEvent._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19477
 * 
 * @cython.embedsignature(True)
 * def cuEventSynchronize(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Waits for an event to complete.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventSynchronize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19518
 * 
 * @cython.embedsignature(True)
 * def cuEventDestroy(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Destroys an event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_381cuEventDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hEvent); /*proto*/
static char __pyx_doc_4cuda_4cuda_380cuEventDestroy[] = "cuEventDestroy(CUevent hEvent: CUevent)\n Destroys an event.\n\n    Destroys the event specified by `hEvent`.\n\n    An event may be destroyed before it is complete (i.e., while\n    cuEventQuery() would return CUDA_ERROR_NOT_READY). In this case, the\n    call does not block on completion of the event, and any associated\n    resources will automatically be released asynchronously at completion.\n\n    Parameters\n    ----------\n    hEvent : CUevent\n        Event to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventRecord\n    cuEventQuery\n    cuEventSynchronize\n    cuEventElapsedTime\n    cudaEventDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_381cuEventDestroy = {"cuEventDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_381cuEventDestroy, METH_O, __pyx_doc_4cuda_4cuda_380cuEventDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_381cuEventDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hEvent) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEvent), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEvent", 0))) __PYX_ERR(0, 19518, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_380cuEventDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_v_hEvent));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_380cuEventDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEvent) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__711)
  __Pyx_RefNannySetupContext("cuEventDestroy", 0);
  __Pyx_TraceCall("cuEventDestroy", __pyx_f[0], 19518, 0, __PYX_ERR(0, 19518, __pyx_L1_error));

  /* "cuda/cuda.pyx":19553
 *     cudaEventDestroy
 *     """
 *     err = ccuda.cuEventDestroy(hEvent._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuEventDestroy((__pyx_v_hEvent->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19553, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19554
 *     """
 *     err = ccuda.cuEventDestroy(hEvent._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19518
 * 
 * @cython.embedsignature(True)
 * def cuEventDestroy(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Destroys an event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19557
 * 
 * @cython.embedsignature(True)
 * def cuEventElapsedTime(hStart not None : CUevent, hEnd not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Computes the elapsed time between two events.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_383cuEventElapsedTime(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_382cuEventElapsedTime[] = "cuEventElapsedTime(CUevent hStart: CUevent, CUevent hEnd: CUevent)\n Computes the elapsed time between two events.\n\n    Computes the elapsed time between two events (in milliseconds with a\n    resolution of around 0.5 microseconds).\n\n    If either event was last recorded in a non-NULL stream, the resulting\n    time may be greater than expected (even if both used the same stream\n    handle). This happens because the cuEventRecord() operation takes place\n    asynchronously and there is no guarantee that the measured latency is\n    actually just between the two events. Any number of other different\n    stream operations could execute in between the two measured events,\n    thus altering the timing in a significant way.\n\n    If cuEventRecord() has not been called on either event then\n    CUDA_ERROR_INVALID_HANDLE is returned. If cuEventRecord() has been\n    called on both events but one or both of them has not yet been\n    completed (that is, cuEventQuery() would return CUDA_ERROR_NOT_READY on\n    at least one of the events), CUDA_ERROR_NOT_READY is returned. If\n    either event was created with the CU_EVENT_DISABLE_TIMING flag, then\n    this function will return CUDA_ERROR_INVALID_HANDLE.\n\n    Parameters\n    ----------\n    hStart : CUevent\n        Starting event\n    hEnd : CUevent\n        Ending event\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_READY\n    pMilliseconds : float\n        Time between `hStart` and `hEnd` in ms\n\n    See Also\n    --------\n    cuEventCreate\n    cuEventRecord\n    cuEventQuery\n    cuEventSynchronize\n    cuEventDestroy\n    cudaEventElapsedTime\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_383cuEventElapsedTime = {"cuEventElapsedTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_383cuEventElapsedTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_382cuEventElapsedTime};
static PyObject *__pyx_pw_4cuda_4cuda_383cuEventElapsedTime(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hStart = 0;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEnd = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuEventElapsedTime (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStart,&__pyx_n_s_hEnd,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStart)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hEnd)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuEventElapsedTime", 1, 2, 2, 1); __PYX_ERR(0, 19557, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuEventElapsedTime") < 0)) __PYX_ERR(0, 19557, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hStart = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[0]);
    __pyx_v_hEnd = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuEventElapsedTime", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19557, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuEventElapsedTime", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStart), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hStart", 0))) __PYX_ERR(0, 19557, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hEnd), __pyx_ptype_4cuda_4cuda_CUevent, 0, "hEnd", 0))) __PYX_ERR(0, 19557, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_382cuEventElapsedTime(__pyx_self, __pyx_v_hStart, __pyx_v_hEnd);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_382cuEventElapsedTime(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hStart, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_hEnd) {
  float __pyx_v_pMilliseconds;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__712)
  __Pyx_RefNannySetupContext("cuEventElapsedTime", 0);
  __Pyx_TraceCall("cuEventElapsedTime", __pyx_f[0], 19557, 0, __PYX_ERR(0, 19557, __pyx_L1_error));

  /* "cuda/cuda.pyx":19607
 *     cudaEventElapsedTime
 *     """
 *     cdef float pMilliseconds = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuEventElapsedTime(&pMilliseconds, hStart._ptr[0], hEnd._ptr[0])
 *     return (CUresult(err), pMilliseconds)
 */
  __pyx_v_pMilliseconds = 0.0;

  /* "cuda/cuda.pyx":19608
 *     """
 *     cdef float pMilliseconds = 0
 *     err = ccuda.cuEventElapsedTime(&pMilliseconds, hStart._ptr[0], hEnd._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pMilliseconds)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuEventElapsedTime((&__pyx_v_pMilliseconds), (__pyx_v_hStart->_ptr[0]), (__pyx_v_hEnd->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19608, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19609
 *     cdef float pMilliseconds = 0
 *     err = ccuda.cuEventElapsedTime(&pMilliseconds, hStart._ptr[0], hEnd._ptr[0])
 *     return (CUresult(err), pMilliseconds)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pMilliseconds); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19557
 * 
 * @cython.embedsignature(True)
 * def cuEventElapsedTime(hStart not None : CUevent, hEnd not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Computes the elapsed time between two events.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuEventElapsedTime", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19612
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalMemory(memHandleDesc : CUDA_EXTERNAL_MEMORY_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external memory object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_385cuImportExternalMemory(PyObject *__pyx_self, PyObject *__pyx_v_memHandleDesc); /*proto*/
static char __pyx_doc_4cuda_4cuda_384cuImportExternalMemory[] = "cuImportExternalMemory(CUDA_EXTERNAL_MEMORY_HANDLE_DESC memHandleDesc: CUDA_EXTERNAL_MEMORY_HANDLE_DESC)\n Imports an external memory object.\n\n    Imports an externally allocated memory object and returns a handle to\n    that in `extMem_out`.\n\n    The properties of the handle being imported must be described in\n    `memHandleDesc`. The CUDA_EXTERNAL_MEMORY_HANDLE_DESC structure is\n    defined as follows:\n\n    typedefstructCUDA_EXTERNAL_MEMORY_HANDLE_DESC_st{\n    CUexternalMemoryHandleTypetype; union{ intfd; struct{ void*handle;\n    constvoid*name; }win32; constvoid*nvSciBufObject; }handle;\n    unsignedlonglongsize; unsignedintflags;\n    }CUDA_EXTERNAL_MEMORY_HANDLE_DESC;\n\n    where CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type specifies the type of\n    handle being imported. CUexternalMemoryHandleType is defined as:\n\n    typedefenumCUexternalMemoryHandleType_enum{\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD=1,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32=2,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT=3,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP=4,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE=5,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE=6,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT=7,\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF=8 }CUexternalMemoryHandleType;\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD, then\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::fd must be a valid file\n    descriptor referencing a memory object. Ownership of the file\n    descriptor is transferred to the CUDA driver when the handle is\n    imported successfully. Performing any operations on the file descriptor\n    after it is imported results in undefined behavior.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32, then exactly one of\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle and\n    CUDA_EXTERNAL_MEMORY_HANDL""E_DESC::handle::win32::name must not be NULL.\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle is not NULL,\n    then it must represent a valid shared NT handle that references a\n    memory object. Ownership of this handle is not transferred to CUDA\n    after the import operation, so the application must release the handle\n    using the appropriate system call. If\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name is not NULL, then\n    it must point to a NULL-terminated array of UTF-16 characters that\n    refers to a memory object.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT, then\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle must be non-\n    NULL and CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name must be\n    NULL. The handle specified must be a globally shared KMT handle. This\n    handle does not hold a reference to the underlying object, and thus\n    will be invalid when all references to the memory object are destroyed.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP, then exactly one of\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle and\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name must not be NULL.\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle is not NULL,\n    then it must represent a valid shared NT handle that is returned by\n    ID3D12Device::CreateSharedHandle when referring to a ID3D12Heap object.\n    This handle holds a reference to the underlying object. If\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name is not NULL, then\n    it must point to a NULL-terminated array of UTF-16 characters that\n    refers to a ID3D12Heap object.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE, then exactly one of\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle and\n    CUDA_EXTERNAL_ME""MORY_HANDLE_DESC::handle::win32::name must not be NULL.\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle is not NULL,\n    then it must represent a valid shared NT handle that is returned by\n    ID3D12Device::CreateSharedHandle when referring to a ID3D12Resource\n    object. This handle holds a reference to the underlying object. If\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name is not NULL, then\n    it must point to a NULL-terminated array of UTF-16 characters that\n    refers to a ID3D12Resource object.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE, then\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle must represent\n    a valid shared NT handle that is returned by\n    IDXGIResource1::CreateSharedHandle when referring to a ID3D11Resource\n    object. If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name is not\n    NULL, then it must point to a NULL-terminated array of UTF-16\n    characters that refers to a ID3D11Resource object.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT, then\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::handle must represent\n    a valid shared KMT handle that is returned by\n    IDXGIResource::GetSharedHandle when referring to a ID3D11Resource\n    object and CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::win32::name must\n    be NULL.\n\n    If CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF, then\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::handle::nvSciBufObject must be non-\n    NULL and reference a valid NvSciBuf object. If the NvSciBuf object\n    imported into CUDA is also mapped by other drivers, then the\n    application must use cuWaitExternalSemaphoresAsync or\n    cuSignalExternalSemaphoresAsync as appropriate barriers to maintain\n    coherence between CUDA and the other drivers. See\n    CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIB""UF_MEMSYNC and\n    CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC for memory\n    synchronization.\n\n    The size of the memory object must be specified in\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::size.\n\n    Specifying the flag CUDA_EXTERNAL_MEMORY_DEDICATED in\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::flags indicates that the resource is\n    a dedicated resource. The definition of what a dedicated resource is\n    outside the scope of this extension. This flag must be set if\n    CUDA_EXTERNAL_MEMORY_HANDLE_DESC::type is one of the following:\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT\n\n    Parameters\n    ----------\n    memHandleDesc : CUDA_EXTERNAL_MEMORY_HANDLE_DESC\n        Memory import handle descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    extMem_out : CUexternalMemory\n        Returned handle to an external memory object\n\n    See Also\n    --------\n    cuDestroyExternalMemory\n    cuExternalMemoryGetMappedBuffer\n    cuExternalMemoryGetMappedMipmappedArray\n\n    Notes\n    -----\n    If the Vulkan memory imported into CUDA is mapped on the CPU then the application must use vkInvalidateMappedMemoryRanges/vkFlushMappedMemoryRanges as well as appropriate Vulkan pipeline barriers to maintain coherence between CPU and GPU. For more information on these APIs, please refer to \"Synchronization\n    and Cache Control\" chapter from Vulkan specification.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_385cuImportExternalMemory = {"cuImportExternalMemory", (PyCFunction)__pyx_pw_4cuda_4cuda_385cuImportExternalMemory, METH_O, __pyx_doc_4cuda_4cuda_384cuImportExternalMemory};
static PyObject *__pyx_pw_4cuda_4cuda_385cuImportExternalMemory(PyObject *__pyx_self, PyObject *__pyx_v_memHandleDesc) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuImportExternalMemory (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memHandleDesc), __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC, 1, "memHandleDesc", 0))) __PYX_ERR(0, 19612, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_384cuImportExternalMemory(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC *)__pyx_v_memHandleDesc));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_384cuImportExternalMemory(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC *__pyx_v_memHandleDesc) {
  struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem_out = 0;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC *__pyx_v_cmemHandleDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__713)
  __Pyx_RefNannySetupContext("cuImportExternalMemory", 0);
  __Pyx_TraceCall("cuImportExternalMemory", __pyx_f[0], 19612, 0, __PYX_ERR(0, 19612, __pyx_L1_error));

  /* "cuda/cuda.pyx":19762
 * 
 *     """
 *     cdef CUexternalMemory extMem_out = CUexternalMemory()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC* cmemHandleDesc_ptr = memHandleDesc._ptr if memHandleDesc != None else NULL
 *     err = ccuda.cuImportExternalMemory(extMem_out._ptr, cmemHandleDesc_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalMemory)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_extMem_out = ((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19763
 *     """
 *     cdef CUexternalMemory extMem_out = CUexternalMemory()
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC* cmemHandleDesc_ptr = memHandleDesc._ptr if memHandleDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuImportExternalMemory(extMem_out._ptr, cmemHandleDesc_ptr)
 *     return (CUresult(err), extMem_out)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_memHandleDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19763, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 19763, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_memHandleDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cmemHandleDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":19764
 *     cdef CUexternalMemory extMem_out = CUexternalMemory()
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC* cmemHandleDesc_ptr = memHandleDesc._ptr if memHandleDesc != None else NULL
 *     err = ccuda.cuImportExternalMemory(extMem_out._ptr, cmemHandleDesc_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), extMem_out)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuImportExternalMemory(__pyx_v_extMem_out->_ptr, __pyx_v_cmemHandleDesc_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19764, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":19765
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC* cmemHandleDesc_ptr = memHandleDesc._ptr if memHandleDesc != None else NULL
 *     err = ccuda.cuImportExternalMemory(extMem_out._ptr, cmemHandleDesc_ptr)
 *     return (CUresult(err), extMem_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 19765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_extMem_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_extMem_out));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_extMem_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19612
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalMemory(memHandleDesc : CUDA_EXTERNAL_MEMORY_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external memory object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuImportExternalMemory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_extMem_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19768
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedBuffer(extMem not None : CUexternalMemory, bufferDesc : CUDA_EXTERNAL_MEMORY_BUFFER_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a buffer onto an imported memory object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_387cuExternalMemoryGetMappedBuffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_386cuExternalMemoryGetMappedBuffer[] = "cuExternalMemoryGetMappedBuffer(CUexternalMemory extMem: CUexternalMemory, CUDA_EXTERNAL_MEMORY_BUFFER_DESC bufferDesc: CUDA_EXTERNAL_MEMORY_BUFFER_DESC)\n Maps a buffer onto an imported memory object.\n\n    Maps a buffer onto an imported memory object and returns a device\n    pointer in `devPtr`.\n\n    The properties of the buffer being mapped must be described in\n    `bufferDesc`. The CUDA_EXTERNAL_MEMORY_BUFFER_DESC structure is defined\n    as follows:\n\n    typedefstructCUDA_EXTERNAL_MEMORY_BUFFER_DESC_st{\n    unsignedlonglongoffset; unsignedlonglongsize; unsignedintflags;\n    }CUDA_EXTERNAL_MEMORY_BUFFER_DESC;\n\n    where CUDA_EXTERNAL_MEMORY_BUFFER_DESC::offset is the offset in the\n    memory object where the buffer's base address is.\n    CUDA_EXTERNAL_MEMORY_BUFFER_DESC::size is the size of the buffer.\n    CUDA_EXTERNAL_MEMORY_BUFFER_DESC::flags must be zero.\n\n    The offset and size have to be suitably aligned to match the\n    requirements of the external API. Mapping two buffers whose ranges\n    overlap may or may not result in the same virtual address being\n    returned for the overlapped portion. In such cases, the application\n    must ensure that all accesses to that region from the GPU are volatile.\n    Otherwise writes made via one address are not guaranteed to be visible\n    via the other address, even if they're issued by the same thread. It is\n    recommended that applications map the combined range instead of mapping\n    separate buffers and then apply the appropriate offsets to the returned\n    pointer to derive the individual buffers.\n\n    The returned pointer `devPtr` must be freed using cuMemFree.\n\n    Parameters\n    ----------\n    extMem : CUexternalMemory\n        Handle to external memory object\n    bufferDesc : CUDA_EXTERNAL_MEMORY_BUFFER_DESC\n        Buffer descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        ""CUDA_ERROR_INVALID_HANDLE\n    devPtr : CUdeviceptr\n        Returned device pointer to buffer\n\n    See Also\n    --------\n    cuImportExternalMemory\n    cuDestroyExternalMemory\n    cuExternalMemoryGetMappedMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_387cuExternalMemoryGetMappedBuffer = {"cuExternalMemoryGetMappedBuffer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_387cuExternalMemoryGetMappedBuffer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_386cuExternalMemoryGetMappedBuffer};
static PyObject *__pyx_pw_4cuda_4cuda_387cuExternalMemoryGetMappedBuffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC *__pyx_v_bufferDesc = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuExternalMemoryGetMappedBuffer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_extMem,&__pyx_n_s_bufferDesc,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extMem)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bufferDesc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuExternalMemoryGetMappedBuffer", 1, 2, 2, 1); __PYX_ERR(0, 19768, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuExternalMemoryGetMappedBuffer") < 0)) __PYX_ERR(0, 19768, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_extMem = ((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)values[0]);
    __pyx_v_bufferDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuExternalMemoryGetMappedBuffer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19768, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuExternalMemoryGetMappedBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extMem), __pyx_ptype_4cuda_4cuda_CUexternalMemory, 0, "extMem", 0))) __PYX_ERR(0, 19768, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bufferDesc), __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC, 1, "bufferDesc", 0))) __PYX_ERR(0, 19768, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_386cuExternalMemoryGetMappedBuffer(__pyx_self, __pyx_v_extMem, __pyx_v_bufferDesc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_386cuExternalMemoryGetMappedBuffer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC *__pyx_v_bufferDesc) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_devPtr = 0;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC *__pyx_v_cbufferDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__714)
  __Pyx_RefNannySetupContext("cuExternalMemoryGetMappedBuffer", 0);
  __Pyx_TraceCall("cuExternalMemoryGetMappedBuffer", __pyx_f[0], 19768, 0, __PYX_ERR(0, 19768, __pyx_L1_error));

  /* "cuda/cuda.pyx":19823
 *     cuExternalMemoryGetMappedMipmappedArray
 *     """
 *     cdef CUdeviceptr devPtr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC* cbufferDesc_ptr = bufferDesc._ptr if bufferDesc != None else NULL
 *     err = ccuda.cuExternalMemoryGetMappedBuffer(devPtr._ptr, extMem._ptr[0], cbufferDesc_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19824
 *     """
 *     cdef CUdeviceptr devPtr = CUdeviceptr()
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC* cbufferDesc_ptr = bufferDesc._ptr if bufferDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuExternalMemoryGetMappedBuffer(devPtr._ptr, extMem._ptr[0], cbufferDesc_ptr)
 *     return (CUresult(err), devPtr)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_bufferDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19824, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 19824, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_bufferDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cbufferDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":19825
 *     cdef CUdeviceptr devPtr = CUdeviceptr()
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC* cbufferDesc_ptr = bufferDesc._ptr if bufferDesc != None else NULL
 *     err = ccuda.cuExternalMemoryGetMappedBuffer(devPtr._ptr, extMem._ptr[0], cbufferDesc_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), devPtr)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuExternalMemoryGetMappedBuffer(__pyx_v_devPtr->_ptr, (__pyx_v_extMem->_ptr[0]), __pyx_v_cbufferDesc_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19825, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":19826
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC* cbufferDesc_ptr = bufferDesc._ptr if bufferDesc != None else NULL
 *     err = ccuda.cuExternalMemoryGetMappedBuffer(devPtr._ptr, extMem._ptr[0], cbufferDesc_ptr)
 *     return (CUresult(err), devPtr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 19826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_devPtr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_devPtr));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_devPtr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19768
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedBuffer(extMem not None : CUexternalMemory, bufferDesc : CUDA_EXTERNAL_MEMORY_BUFFER_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a buffer onto an imported memory object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuExternalMemoryGetMappedBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_devPtr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19829
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedMipmappedArray(extMem not None : CUexternalMemory, mipmapDesc : CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a CUDA mipmapped array onto an external memory object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_389cuExternalMemoryGetMappedMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_388cuExternalMemoryGetMappedMipmappedArray[] = "cuExternalMemoryGetMappedMipmappedArray(CUexternalMemory extMem: CUexternalMemory, CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC mipmapDesc: CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)\n Maps a CUDA mipmapped array onto an external memory object.\n\n    Maps a CUDA mipmapped array onto an external object and returns a\n    handle to it in `mipmap`.\n\n    The properties of the CUDA mipmapped array being mapped must be\n    described in `mipmapDesc`. The structure\n    CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC is defined as follows:\n\n    typedefstructCUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st{\n    unsignedlonglongoffset; CUDA_ARRAY3D_DESCRIPTORarrayDesc;\n    unsignedintnumLevels; }CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC;\n\n    where CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC::offset is the offset\n    in the memory object where the base level of the mipmap chain is.\n    CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC::arrayDesc describes the\n    format, dimensions and type of the base level of the mipmap chain. For\n    further details on these parameters, please refer to the documentation\n    for cuMipmappedArrayCreate. Note that if the mipmapped array is bound\n    as a color target in the graphics API, then the flag\n    CUDA_ARRAY3D_COLOR_ATTACHMENT must be specified in\n    CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC::arrayDesc::Flags.\n    CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC::numLevels specifies the\n    total number of levels in the mipmap chain.\n\n    If `extMem` was imported from a handle of type\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF, then\n    CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC::numLevels must be equal to\n    1.\n\n    The returned CUDA mipmapped array must be freed using\n    cuMipmappedArrayDestroy.\n\n    Parameters\n    ----------\n    extMem : CUexternalMemory\n        Handle to external memory object\n    mipmapDesc : CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC\n        CUDA array descriptor\n\n    Returns\n    -------\n    CUresult""\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    mipmap : CUmipmappedArray\n        Returned CUDA mipmapped array\n\n    See Also\n    --------\n    cuImportExternalMemory\n    cuDestroyExternalMemory\n    cuExternalMemoryGetMappedBuffer\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_389cuExternalMemoryGetMappedMipmappedArray = {"cuExternalMemoryGetMappedMipmappedArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_389cuExternalMemoryGetMappedMipmappedArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_388cuExternalMemoryGetMappedMipmappedArray};
static PyObject *__pyx_pw_4cuda_4cuda_389cuExternalMemoryGetMappedMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC *__pyx_v_mipmapDesc = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuExternalMemoryGetMappedMipmappedArray (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_extMem,&__pyx_n_s_mipmapDesc,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extMem)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mipmapDesc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuExternalMemoryGetMappedMipmappedArray", 1, 2, 2, 1); __PYX_ERR(0, 19829, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuExternalMemoryGetMappedMipmappedArray") < 0)) __PYX_ERR(0, 19829, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_extMem = ((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)values[0]);
    __pyx_v_mipmapDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuExternalMemoryGetMappedMipmappedArray", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19829, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuExternalMemoryGetMappedMipmappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extMem), __pyx_ptype_4cuda_4cuda_CUexternalMemory, 0, "extMem", 0))) __PYX_ERR(0, 19829, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mipmapDesc), __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC, 1, "mipmapDesc", 0))) __PYX_ERR(0, 19829, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_388cuExternalMemoryGetMappedMipmappedArray(__pyx_self, __pyx_v_extMem, __pyx_v_mipmapDesc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_388cuExternalMemoryGetMappedMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC *__pyx_v_mipmapDesc) {
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_mipmap = 0;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC *__pyx_v_cmipmapDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__715)
  __Pyx_RefNannySetupContext("cuExternalMemoryGetMappedMipmappedArray", 0);
  __Pyx_TraceCall("cuExternalMemoryGetMappedMipmappedArray", __pyx_f[0], 19829, 0, __PYX_ERR(0, 19829, __pyx_L1_error));

  /* "cuda/cuda.pyx":19886
 *     cuExternalMemoryGetMappedBuffer
 *     """
 *     cdef CUmipmappedArray mipmap = CUmipmappedArray()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC* cmipmapDesc_ptr = mipmapDesc._ptr if mipmapDesc != None else NULL
 *     err = ccuda.cuExternalMemoryGetMappedMipmappedArray(mipmap._ptr, extMem._ptr[0], cmipmapDesc_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_mipmap = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19887
 *     """
 *     cdef CUmipmappedArray mipmap = CUmipmappedArray()
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC* cmipmapDesc_ptr = mipmapDesc._ptr if mipmapDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuExternalMemoryGetMappedMipmappedArray(mipmap._ptr, extMem._ptr[0], cmipmapDesc_ptr)
 *     return (CUresult(err), mipmap)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_mipmapDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19887, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 19887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_mipmapDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cmipmapDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":19888
 *     cdef CUmipmappedArray mipmap = CUmipmappedArray()
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC* cmipmapDesc_ptr = mipmapDesc._ptr if mipmapDesc != None else NULL
 *     err = ccuda.cuExternalMemoryGetMappedMipmappedArray(mipmap._ptr, extMem._ptr[0], cmipmapDesc_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), mipmap)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuExternalMemoryGetMappedMipmappedArray(__pyx_v_mipmap->_ptr, (__pyx_v_extMem->_ptr[0]), __pyx_v_cmipmapDesc_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19888, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":19889
 *     cdef ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC* cmipmapDesc_ptr = mipmapDesc._ptr if mipmapDesc != None else NULL
 *     err = ccuda.cuExternalMemoryGetMappedMipmappedArray(mipmap._ptr, extMem._ptr[0], cmipmapDesc_ptr)
 *     return (CUresult(err), mipmap)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 19889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 19889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_mipmap));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_mipmap));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_mipmap));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19829
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedMipmappedArray(extMem not None : CUexternalMemory, mipmapDesc : CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a CUDA mipmapped array onto an external memory object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuExternalMemoryGetMappedMipmappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_mipmap);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19892
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalMemory(extMem not None : CUexternalMemory):             # <<<<<<<<<<<<<<
 *     """ Destroys an external memory object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_391cuDestroyExternalMemory(PyObject *__pyx_self, PyObject *__pyx_v_extMem); /*proto*/
static char __pyx_doc_4cuda_4cuda_390cuDestroyExternalMemory[] = "cuDestroyExternalMemory(CUexternalMemory extMem: CUexternalMemory)\n Destroys an external memory object.\n\n    Destroys the specified external memory object. Any existing buffers and\n    CUDA mipmapped arrays mapped onto this object must no longer be used\n    and must be explicitly freed using cuMemFree and\n    cuMipmappedArrayDestroy respectively.\n\n    Parameters\n    ----------\n    extMem : CUexternalMemory\n        External memory object to be destroyed\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuImportExternalMemory\n    cuExternalMemoryGetMappedBuffer\n    cuExternalMemoryGetMappedMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_391cuDestroyExternalMemory = {"cuDestroyExternalMemory", (PyCFunction)__pyx_pw_4cuda_4cuda_391cuDestroyExternalMemory, METH_O, __pyx_doc_4cuda_4cuda_390cuDestroyExternalMemory};
static PyObject *__pyx_pw_4cuda_4cuda_391cuDestroyExternalMemory(PyObject *__pyx_self, PyObject *__pyx_v_extMem) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDestroyExternalMemory (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extMem), __pyx_ptype_4cuda_4cuda_CUexternalMemory, 0, "extMem", 0))) __PYX_ERR(0, 19892, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_390cuDestroyExternalMemory(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUexternalMemory *)__pyx_v_extMem));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_390cuDestroyExternalMemory(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalMemory *__pyx_v_extMem) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__716)
  __Pyx_RefNannySetupContext("cuDestroyExternalMemory", 0);
  __Pyx_TraceCall("cuDestroyExternalMemory", __pyx_f[0], 19892, 0, __PYX_ERR(0, 19892, __pyx_L1_error));

  /* "cuda/cuda.pyx":19920
 *     cuExternalMemoryGetMappedMipmappedArray
 *     """
 *     err = ccuda.cuDestroyExternalMemory(extMem._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDestroyExternalMemory((__pyx_v_extMem->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 19920, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":19921
 *     """
 *     err = ccuda.cuDestroyExternalMemory(extMem._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19892
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalMemory(extMem not None : CUexternalMemory):             # <<<<<<<<<<<<<<
 *     """ Destroys an external memory object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDestroyExternalMemory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":19924
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalSemaphore(semHandleDesc : CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external semaphore.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_393cuImportExternalSemaphore(PyObject *__pyx_self, PyObject *__pyx_v_semHandleDesc); /*proto*/
static char __pyx_doc_4cuda_4cuda_392cuImportExternalSemaphore[] = "cuImportExternalSemaphore(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC semHandleDesc: CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)\n Imports an external semaphore.\n\n    Imports an externally allocated synchronization object and returns a\n    handle to that in `extSem_out`.\n\n    The properties of the handle being imported must be described in\n    `semHandleDesc`. The CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC is defined as\n    follows:\n\n    typedefstructCUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st{\n    CUexternalSemaphoreHandleTypetype; union{ intfd; struct{ void*handle;\n    constvoid*name; }win32; constvoid*NvSciSyncObj; }handle;\n    unsignedintflags; }CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC;\n\n    where CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type specifies the type of\n    handle being imported. CUexternalSemaphoreHandleType is defined as:\n\n    typedefenumCUexternalSemaphoreHandleType_enum{\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD=1,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32=2,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT=3,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE=4,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE=5,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC=6,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX=7,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT=8,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD=9,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32=10\n    }CUexternalSemaphoreHandleType;\n\n    If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::fd must be a valid file\n    descriptor referencing a synchronization object. Ownership of the file\n    descriptor is transferred to the CUDA driver when the handle is\n    imported successfully. Performing any operations on the file descriptor\n    after it is imported results in undefined behavior.\n\n    If CUDA_EXTERNAL_SEMAPHORE_H""ANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32, then exactly one of\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle and\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name must not be\n    NULL. If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle is\n    not NULL, then it must represent a valid shared NT handle that\n    references a synchronization object. Ownership of this handle is not\n    transferred to CUDA after the import operation, so the application must\n    release the handle using the appropriate system call. If\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name is not NULL,\n    then it must name a valid synchronization object.\n\n    If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle must be non-\n    NULL and CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name must\n    be NULL. The handle specified must be a globally shared KMT handle.\n    This handle does not hold a reference to the underlying object, and\n    thus will be invalid when all references to the synchronization object\n    are destroyed.\n\n    If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE, then exactly one of\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle and\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name must not be\n    NULL. If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle is\n    not NULL, then it must represent a valid shared NT handle that is\n    returned by ID3D12Device::CreateSharedHandle when referring to a\n    ID3D12Fence object. This handle holds a reference to the underlying\n    object. If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name is\n    not NULL, then it must name a valid synchronization object that refers\n    to a valid ID3D12Fence object.\n\n    If CUDA_EXTE""RNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle represents a\n    valid shared NT handle that is returned by\n    ID3D11Fence::CreateSharedHandle. If\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name is not NULL,\n    then it must name a valid synchronization object that refers to a valid\n    ID3D11Fence object.\n\n    If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::nvSciSyncObj represents a\n    valid NvSciSyncObj.\n\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle represents a\n    valid shared NT handle that is returned by\n    IDXGIResource1::CreateSharedHandle when referring to a IDXGIKeyedMutex\n    object. If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name is\n    not NULL, then it must name a valid synchronization object that refers\n    to a valid IDXGIKeyedMutex object.\n\n    If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle represents a\n    valid shared KMT handle that is returned by\n    IDXGIResource::GetSharedHandle when referring to a IDXGIKeyedMutex\n    object and CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name\n    must be NULL.\n\n    If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD, then\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::fd must be a valid file\n    descriptor referencing a synchronization object. Ownership of the file\n    descriptor is transferred to the CUDA driver when the handle is\n    imported successfully. Performing any operations on the file descriptor\n    after it is imported results in undefined behavior.\n\n    I""f CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::type is\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32, then\n    exactly one of\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle and\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name must not be\n    NULL. If CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::handle is\n    not NULL, then it must represent a valid shared NT handle that\n    references a synchronization object. Ownership of this handle is not\n    transferred to CUDA after the import operation, so the application must\n    release the handle using the appropriate system call. If\n    CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC::handle::win32::name is not NULL,\n    then it must name a valid synchronization object.\n\n    Parameters\n    ----------\n    semHandleDesc : CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC\n        Semaphore import handle descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_HANDLE\n    extSem_out : CUexternalSemaphore\n        Returned handle to an external semaphore\n\n    See Also\n    --------\n    cuDestroyExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_393cuImportExternalSemaphore = {"cuImportExternalSemaphore", (PyCFunction)__pyx_pw_4cuda_4cuda_393cuImportExternalSemaphore, METH_O, __pyx_doc_4cuda_4cuda_392cuImportExternalSemaphore};
static PyObject *__pyx_pw_4cuda_4cuda_393cuImportExternalSemaphore(PyObject *__pyx_self, PyObject *__pyx_v_semHandleDesc) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuImportExternalSemaphore (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_semHandleDesc), __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC, 1, "semHandleDesc", 0))) __PYX_ERR(0, 19924, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_392cuImportExternalSemaphore(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC *)__pyx_v_semHandleDesc));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_392cuImportExternalSemaphore(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC *__pyx_v_semHandleDesc) {
  struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_extSem_out = 0;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC *__pyx_v_csemHandleDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__717)
  __Pyx_RefNannySetupContext("cuImportExternalSemaphore", 0);
  __Pyx_TraceCall("cuImportExternalSemaphore", __pyx_f[0], 19924, 0, __PYX_ERR(0, 19924, __pyx_L1_error));

  /* "cuda/cuda.pyx":20068
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     cdef CUexternalSemaphore extSem_out = CUexternalSemaphore()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC* csemHandleDesc_ptr = semHandleDesc._ptr if semHandleDesc != None else NULL
 *     err = ccuda.cuImportExternalSemaphore(extSem_out._ptr, csemHandleDesc_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_extSem_out = ((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20069
 *     """
 *     cdef CUexternalSemaphore extSem_out = CUexternalSemaphore()
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC* csemHandleDesc_ptr = semHandleDesc._ptr if semHandleDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuImportExternalSemaphore(extSem_out._ptr, csemHandleDesc_ptr)
 *     return (CUresult(err), extSem_out)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_semHandleDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20069, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 20069, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_semHandleDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_csemHandleDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":20070
 *     cdef CUexternalSemaphore extSem_out = CUexternalSemaphore()
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC* csemHandleDesc_ptr = semHandleDesc._ptr if semHandleDesc != None else NULL
 *     err = ccuda.cuImportExternalSemaphore(extSem_out._ptr, csemHandleDesc_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), extSem_out)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuImportExternalSemaphore(__pyx_v_extSem_out->_ptr, __pyx_v_csemHandleDesc_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20070, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":20071
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC* csemHandleDesc_ptr = semHandleDesc._ptr if semHandleDesc != None else NULL
 *     err = ccuda.cuImportExternalSemaphore(extSem_out._ptr, csemHandleDesc_ptr)
 *     return (CUresult(err), extSem_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_extSem_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_extSem_out));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_extSem_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":19924
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalSemaphore(semHandleDesc : CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external semaphore.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuImportExternalSemaphore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_extSem_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20074
 * 
 * @cython.embedsignature(True)
 * def cuSignalExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Signals a set of external semaphore objects.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_395cuSignalExternalSemaphoresAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_394cuSignalExternalSemaphoresAsync[] = "cuSignalExternalSemaphoresAsync(extSemArray: List[CUexternalSemaphore], paramsArray: List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, CUstream stream: CUstream)\n Signals a set of external semaphore objects.\n\n    Enqueues a signal operation on a set of externally allocated semaphore\n    object in the specified stream. The operations will be executed when\n    all prior operations in the stream complete.\n\n    The exact semantics of signaling a semaphore depends on the type of the\n    object.\n\n    If the semaphore object is any one of the following types:\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT then signaling the\n    semaphore will set it to the signaled state.\n\n    If the semaphore object is any one of the following types:\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 then the\n    semaphore will be set to the value specified in\n    CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS::params::fence::value.\n\n    If the semaphore object is of the type\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC this API sets\n    CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS::params::nvSciSync::fence to a\n    value that can be used by subsequent waiters of the same NvSciSync\n    object to order operations with those currently submitted in `stream`.\n    Such an update will overwrite previous contents of\n    CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS::params::nvSciSync::fence. By\n    default, signaling such an external semaphore object causes appropriate\n    memory synchronization operations to be performed over all external\n    memory objects that are imported as\n    CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF. This ensures that any\n    subsequent accesses made by other i""mporters of the same set of NvSciBuf\n    memory object(s) are coherent. These operations can be skipped by\n    specifying the flag\n    CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC, which can be used\n    as a performance optimization when data coherency is not required. But\n    specifying this flag in scenarios where data coherency is required\n    results in undefined behavior. Also, for semaphore object of the type\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, if the NvSciSyncAttrList\n    used to create the NvSciSyncObj had not set the flags in\n    cuDeviceGetNvSciSyncAttributes to CUDA_NVSCISYNC_ATTR_SIGNAL, this API\n    will return CUDA_ERROR_NOT_SUPPORTED.\n\n    If the semaphore object is any one of the following types:\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT then the keyed\n    mutex will be released with the key specified in\n    CUDA_EXTERNAL_SEMAPHORE_PARAMS::params::keyedmutex::key.\n\n    Parameters\n    ----------\n    extSemArray : List[CUexternalSemaphore]\n        Set of external semaphores to be signaled\n    paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]\n        Array of semaphore parameters\n    numExtSems : unsigned int\n        Number of semaphores to signal\n    stream : CUstream\n        Stream to enqueue the signal operations in\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuImportExternalSemaphore\n    cuDestroyExternalSemaphore\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_395cuSignalExternalSemaphoresAsync = {"cuSignalExternalSemaphoresAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_395cuSignalExternalSemaphoresAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_394cuSignalExternalSemaphoresAsync};
static PyObject *__pyx_pw_4cuda_4cuda_395cuSignalExternalSemaphoresAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_extSemArray = 0;
  PyObject *__pyx_v_paramsArray = 0;
  unsigned int __pyx_v_numExtSems;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuSignalExternalSemaphoresAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_extSemArray_2,&__pyx_n_s_paramsArray_2,&__pyx_n_s_numExtSems_2,&__pyx_n_s_stream,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extSemArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_paramsArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuSignalExternalSemaphoresAsync", 1, 4, 4, 1); __PYX_ERR(0, 20074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numExtSems_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuSignalExternalSemaphoresAsync", 1, 4, 4, 2); __PYX_ERR(0, 20074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuSignalExternalSemaphoresAsync", 1, 4, 4, 3); __PYX_ERR(0, 20074, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuSignalExternalSemaphoresAsync") < 0)) __PYX_ERR(0, 20074, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_extSemArray = values[0];
    __pyx_v_paramsArray = values[1];
    __pyx_v_numExtSems = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_numExtSems == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20074, __pyx_L3_error)
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuSignalExternalSemaphoresAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20074, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuSignalExternalSemaphoresAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20074, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_394cuSignalExternalSemaphoresAsync(__pyx_self, __pyx_v_extSemArray, __pyx_v_paramsArray, __pyx_v_numExtSems, __pyx_v_stream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_2generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":20155
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */

static PyObject *__pyx_pf_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_24_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_24_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20155, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_2generator12, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuSignalExternalSemaphoresAsync, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 20155, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuSignalExternalSemaphoresAsync.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_2generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 20155, 0, __PYX_ERR(0, 20155, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 20155, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) { __Pyx_RaiseClosureNameError("paramsArray"); __PYX_ERR(0, 20155, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20155, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20155, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20155, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 20155, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_5generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":20158
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_25_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_25_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20158, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_5generator13, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuSignalExternalSemaphoresAsync, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 20158, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuSignalExternalSemaphoresAsync.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_5generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 20158, 0, __PYX_ERR(0, 20158, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 20158, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray)) { __Pyx_RaiseClosureNameError("extSemArray"); __PYX_ERR(0, 20158, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20158, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20158, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20158, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 20158, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUexternalSemaphore); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20074
 * 
 * @cython.embedsignature(True)
 * def cuSignalExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Signals a set of external semaphore objects.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_394cuSignalExternalSemaphoresAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_extSemArray, PyObject *__pyx_v_paramsArray, unsigned int __pyx_v_numExtSems, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *__pyx_v_cextSemArray;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *__pyx_v_cparamsArray;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_2generator12 = 0;
  PyObject *__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_5generator13 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *__pyx_t_9;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__718)
  __Pyx_RefNannySetupContext("cuSignalExternalSemaphoresAsync", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20074, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuSignalExternalSemaphoresAsync", __pyx_f[0], 20074, 0, __PYX_ERR(0, 20074, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_extSemArray = __pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_extSemArray);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_extSemArray);
  __pyx_cur_scope->__pyx_v_paramsArray = __pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramsArray);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_paramsArray);

  /* "cuda/cuda.pyx":20154
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_paramsArray == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramsArray);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_paramsArray);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_paramsArray, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20155
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 20155, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":20156
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")             # <<<<<<<<<<<<<<
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__719, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20156, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 20156, __pyx_L1_error)

    /* "cuda/cuda.pyx":20155
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */
  }

  /* "cuda/cuda.pyx":20157
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 */
  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_extSemArray == Py_None);
  if ((__pyx_t_4 != 0)) {
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
    __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_extSemArray);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_extSemArray;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_extSemArray);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_extSemArray, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":20158
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */
  __pyx_t_3 = __pyx_pf_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 20158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!__pyx_t_4) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":20159
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__720, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 20159, __pyx_L1_error)

    /* "cuda/cuda.pyx":20158
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */
  }

  /* "cuda/cuda.pyx":20160
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL             # <<<<<<<<<<<<<<
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 */
  __pyx_v_cextSemArray = NULL;

  /* "cuda/cuda.pyx":20161
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:             # <<<<<<<<<<<<<<
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20162
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))             # <<<<<<<<<<<<<<
 *         if cextSemArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 */
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_extSemArray;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20162, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cextSemArray = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))));

    /* "cuda/cuda.pyx":20163
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cextSemArray == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":20164
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(extSemArray)):
 */
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_extSemArray;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 20164, __pyx_L1_error)

      /* "cuda/cuda.pyx":20163
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":20166
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *         else:
 *             for idx in range(len(extSemArray)):             # <<<<<<<<<<<<<<
 *                 cextSemArray[idx] = (<CUexternalSemaphore>extSemArray[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_extSemArray;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20166, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":20167
 *         else:
 *             for idx in range(len(extSemArray)):
 *                 cextSemArray[idx] = (<CUexternalSemaphore>extSemArray[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* cparamsArray = NULL
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_extSemArray, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20167, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cextSemArray[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":20161
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:             # <<<<<<<<<<<<<<
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:
 */
  }

  /* "cuda/cuda.pyx":20169
 *                 cextSemArray[idx] = (<CUexternalSemaphore>extSemArray[idx])._ptr[0]
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* cparamsArray = NULL             # <<<<<<<<<<<<<<
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 */
  __pyx_v_cparamsArray = NULL;

  /* "cuda/cuda.pyx":20170
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* cparamsArray = NULL
 *     if len(paramsArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *         if cparamsArray is NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20171
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* cparamsArray = NULL
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))             # <<<<<<<<<<<<<<
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20171, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_cparamsArray = ((__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))));

    /* "cuda/cuda.pyx":20172
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *         if cparamsArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *         for idx in range(len(paramsArray)):
 */
    __pyx_t_2 = ((__pyx_v_cparamsArray == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":20173
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(paramsArray)):
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 */
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 20173, __pyx_L1_error)

      /* "cuda/cuda.pyx":20172
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *         if cparamsArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *         for idx in range(len(paramsArray)):
 */
    }

    /* "cuda/cuda.pyx":20174
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *         for idx in range(len(paramsArray)):             # <<<<<<<<<<<<<<
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 * 
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":20175
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)))
 *         for idx in range(len(paramsArray)):
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))             # <<<<<<<<<<<<<<
 * 
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))
 */
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramsArray, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      (void)(memcpy((&(__pyx_v_cparamsArray[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *)__pyx_t_3)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))));
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }

    /* "cuda/cuda.pyx":20170
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* cparamsArray = NULL
 *     if len(paramsArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 *         if cparamsArray is NULL:
 */
  }

  /* "cuda/cuda.pyx":20177
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))
 * 
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))             # <<<<<<<<<<<<<<
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuSignalExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20177, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = ((__pyx_v_numExtSems > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_extSemArray;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numExtSems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 20177, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":20178
 * 
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuSignalExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_v_numExtSems > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numExtSems); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 20178, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":20179
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuSignalExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])             # <<<<<<<<<<<<<<
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_extSemArray, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_6)->_ptr;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cextSemArray;
  }
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramsArray, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS *)__pyx_t_6)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cparamsArray;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuSignalExternalSemaphoresAsync(__pyx_t_9, __pyx_t_10, __pyx_v_numExtSems, (__pyx_v_stream->_ptr[0])); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20179, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":20180
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuSignalExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_cextSemArray != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20181
 *     err = ccuda.cuSignalExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)             # <<<<<<<<<<<<<<
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)
 */
    free(__pyx_v_cextSemArray);

    /* "cuda/cuda.pyx":20180
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuSignalExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:
 */
  }

  /* "cuda/cuda.pyx":20182
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamsArray)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = ((__pyx_v_cparamsArray != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20183
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cparamsArray);

    /* "cuda/cuda.pyx":20182
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamsArray)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":20184
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20074
 * 
 * @cython.embedsignature(True)
 * def cuSignalExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Signals a set of external semaphore objects.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuSignalExternalSemaphoresAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_2generator12);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_31cuSignalExternalSemaphoresAsync_5generator13);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20187
 * 
 * @cython.embedsignature(True)
 * def cuWaitExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Waits on a set of external semaphore objects.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_397cuWaitExternalSemaphoresAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_396cuWaitExternalSemaphoresAsync[] = "cuWaitExternalSemaphoresAsync(extSemArray: List[CUexternalSemaphore], paramsArray: List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, CUstream stream: CUstream)\n Waits on a set of external semaphore objects.\n\n    Enqueues a wait operation on a set of externally allocated semaphore\n    object in the specified stream. The operations will be executed when\n    all prior operations in the stream complete.\n\n    The exact semantics of waiting on a semaphore depends on the type of\n    the object.\n\n    If the semaphore object is any one of the following types:\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT then waiting on the\n    semaphore will wait until the semaphore reaches the signaled state. The\n    semaphore will then be reset to the unsignaled state. Therefore for\n    every signal operation, there can only be one wait operation.\n\n    If the semaphore object is any one of the following types:\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 then waiting\n    on the semaphore will wait until the value of the semaphore is greater\n    than or equal to\n    CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS::params::fence::value.\n\n    If the semaphore object is of the type\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC then, waiting on the\n    semaphore will wait until the\n    CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS::params::nvSciSync::fence is\n    signaled by the signaler of the NvSciSyncObj that was associated with\n    this semaphore object. By default, waiting on such an external\n    semaphore object causes appropriate memory synchronization operations\n    to be performed over all external memory objects that are imported as\n    CU_EXTERNAL_MEMORY_HANDLE_T""YPE_NVSCIBUF. This ensures that any\n    subsequent accesses made by other importers of the same set of NvSciBuf\n    memory object(s) are coherent. These operations can be skipped by\n    specifying the flag CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC,\n    which can be used as a performance optimization when data coherency is\n    not required. But specifying this flag in scenarios where data\n    coherency is required results in undefined behavior. Also, for\n    semaphore object of the type\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, if the NvSciSyncAttrList\n    used to create the NvSciSyncObj had not set the flags in\n    cuDeviceGetNvSciSyncAttributes to CUDA_NVSCISYNC_ATTR_WAIT, this API\n    will return CUDA_ERROR_NOT_SUPPORTED.\n\n    If the semaphore object is any one of the following types:\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX,\n    CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT then the keyed\n    mutex will be acquired when it is released with the key specified in\n    CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS::params::keyedmutex::key or until\n    the timeout specified by\n    CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS::params::keyedmutex::timeoutMs has\n    lapsed. The timeout interval can either be a finite value specified in\n    milliseconds or an infinite value. In case an infinite value is\n    specified the timeout never elapses. The windows INFINITE macro must be\n    used to specify infinite timeout.\n\n    Parameters\n    ----------\n    extSemArray : List[CUexternalSemaphore]\n        External semaphores to be waited on\n    paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]\n        Array of semaphore parameters\n    numExtSems : unsigned int\n        Number of semaphores to wait on\n    stream : CUstream\n        Stream to enqueue the wait operations in\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR""_NOT_SUPPORTED\n        CUDA_ERROR_TIMEOUT\n    None\n        None\n\n    See Also\n    --------\n    cuImportExternalSemaphore\n    cuDestroyExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_397cuWaitExternalSemaphoresAsync = {"cuWaitExternalSemaphoresAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_397cuWaitExternalSemaphoresAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_396cuWaitExternalSemaphoresAsync};
static PyObject *__pyx_pw_4cuda_4cuda_397cuWaitExternalSemaphoresAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_extSemArray = 0;
  PyObject *__pyx_v_paramsArray = 0;
  unsigned int __pyx_v_numExtSems;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuWaitExternalSemaphoresAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_extSemArray_2,&__pyx_n_s_paramsArray_2,&__pyx_n_s_numExtSems_2,&__pyx_n_s_stream,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extSemArray_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_paramsArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuWaitExternalSemaphoresAsync", 1, 4, 4, 1); __PYX_ERR(0, 20187, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numExtSems_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuWaitExternalSemaphoresAsync", 1, 4, 4, 2); __PYX_ERR(0, 20187, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuWaitExternalSemaphoresAsync", 1, 4, 4, 3); __PYX_ERR(0, 20187, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuWaitExternalSemaphoresAsync") < 0)) __PYX_ERR(0, 20187, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_extSemArray = values[0];
    __pyx_v_paramsArray = values[1];
    __pyx_v_numExtSems = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_numExtSems == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20187, __pyx_L3_error)
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuWaitExternalSemaphoresAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20187, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuWaitExternalSemaphoresAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20187, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_396cuWaitExternalSemaphoresAsync(__pyx_self, __pyx_v_extSemArray, __pyx_v_paramsArray, __pyx_v_numExtSems, __pyx_v_stream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_2generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":20276
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */

static PyObject *__pyx_pf_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_27_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_27_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20276, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_2generator14, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuWaitExternalSemaphoresAsync_lo, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 20276, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuWaitExternalSemaphoresAsync.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_2generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 20276, 0, __PYX_ERR(0, 20276, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 20276, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) { __Pyx_RaiseClosureNameError("paramsArray"); __PYX_ERR(0, 20276, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramsArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20276, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20276, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20276, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20276, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20276, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 20276, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_5generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":20279
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_28_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_28_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20279, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_5generator15, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuWaitExternalSemaphoresAsync_lo, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 20279, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuWaitExternalSemaphoresAsync.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_5generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 20279, 0, __PYX_ERR(0, 20279, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 20279, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray)) { __Pyx_RaiseClosureNameError("extSemArray"); __PYX_ERR(0, 20279, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_extSemArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20279, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20279, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20279, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20279, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20279, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 20279, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUexternalSemaphore); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20187
 * 
 * @cython.embedsignature(True)
 * def cuWaitExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Waits on a set of external semaphore objects.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_396cuWaitExternalSemaphoresAsync(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_extSemArray, PyObject *__pyx_v_paramsArray, unsigned int __pyx_v_numExtSems, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *__pyx_v_cextSemArray;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *__pyx_v_cparamsArray;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_2generator14 = 0;
  PyObject *__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_5generator15 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUexternalSemaphore *__pyx_t_9;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__721)
  __Pyx_RefNannySetupContext("cuWaitExternalSemaphoresAsync", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20187, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuWaitExternalSemaphoresAsync", __pyx_f[0], 20187, 0, __PYX_ERR(0, 20187, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_extSemArray = __pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_extSemArray);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_extSemArray);
  __pyx_cur_scope->__pyx_v_paramsArray = __pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramsArray);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_paramsArray);

  /* "cuda/cuda.pyx":20275
 *     cuSignalExternalSemaphoresAsync
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_paramsArray == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramsArray);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_paramsArray);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_paramsArray, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20276
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 20276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":20277
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")             # <<<<<<<<<<<<<<
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__722, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20277, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 20277, __pyx_L1_error)

    /* "cuda/cuda.pyx":20276
 *     """
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 */
  }

  /* "cuda/cuda.pyx":20278
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 */
  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_extSemArray == Py_None);
  if ((__pyx_t_4 != 0)) {
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20278, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
    __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_extSemArray);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_extSemArray;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_extSemArray);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_extSemArray, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":20279
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */
  __pyx_t_3 = __pyx_pf_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 20279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!__pyx_t_4) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":20280
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__720, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 20280, __pyx_L1_error)

    /* "cuda/cuda.pyx":20279
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 */
  }

  /* "cuda/cuda.pyx":20281
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL             # <<<<<<<<<<<<<<
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 */
  __pyx_v_cextSemArray = NULL;

  /* "cuda/cuda.pyx":20282
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:             # <<<<<<<<<<<<<<
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20283
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))             # <<<<<<<<<<<<<<
 *         if cextSemArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 */
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_extSemArray;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20283, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cextSemArray = ((__pyx_t_4cuda_5ccuda_CUexternalSemaphore *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))));

    /* "cuda/cuda.pyx":20284
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cextSemArray == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":20285
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(extSemArray)):
 */
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_extSemArray;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 20285, __pyx_L1_error)

      /* "cuda/cuda.pyx":20284
 *     if len(extSemArray) > 0:
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":20287
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(extSemArray)) + 'x' + str(sizeof(ccuda.CUexternalSemaphore)))
 *         else:
 *             for idx in range(len(extSemArray)):             # <<<<<<<<<<<<<<
 *                 cextSemArray[idx] = (<CUexternalSemaphore>extSemArray[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_extSemArray;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20287, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":20288
 *         else:
 *             for idx in range(len(extSemArray)):
 *                 cextSemArray[idx] = (<CUexternalSemaphore>extSemArray[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* cparamsArray = NULL
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_extSemArray, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20288, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cextSemArray[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":20282
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:             # <<<<<<<<<<<<<<
 *         cextSemArray = <ccuda.CUexternalSemaphore*> calloc(len(extSemArray), sizeof(ccuda.CUexternalSemaphore))
 *         if cextSemArray is NULL:
 */
  }

  /* "cuda/cuda.pyx":20290
 *                 cextSemArray[idx] = (<CUexternalSemaphore>extSemArray[idx])._ptr[0]
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* cparamsArray = NULL             # <<<<<<<<<<<<<<
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 */
  __pyx_v_cparamsArray = NULL;

  /* "cuda/cuda.pyx":20291
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* cparamsArray = NULL
 *     if len(paramsArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *         if cparamsArray is NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20291, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20292
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* cparamsArray = NULL
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))             # <<<<<<<<<<<<<<
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20292, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_cparamsArray = ((__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))));

    /* "cuda/cuda.pyx":20293
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *         if cparamsArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *         for idx in range(len(paramsArray)):
 */
    __pyx_t_2 = ((__pyx_v_cparamsArray == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":20294
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(paramsArray)):
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 */
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 20294, __pyx_L1_error)

      /* "cuda/cuda.pyx":20293
 *     if len(paramsArray) > 0:
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *         if cparamsArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *         for idx in range(len(paramsArray)):
 */
    }

    /* "cuda/cuda.pyx":20295
 *         if cparamsArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *         for idx in range(len(paramsArray)):             # <<<<<<<<<<<<<<
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 * 
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20295, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":20296
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramsArray)) + 'x' + str(sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)))
 *         for idx in range(len(paramsArray)):
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))             # <<<<<<<<<<<<<<
 * 
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))
 */
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramsArray, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      (void)(memcpy((&(__pyx_v_cparamsArray[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *)__pyx_t_3)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))));
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }

    /* "cuda/cuda.pyx":20291
 * 
 *     cdef ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* cparamsArray = NULL
 *     if len(paramsArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamsArray = <ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS*> calloc(len(paramsArray), sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 *         if cparamsArray is NULL:
 */
  }

  /* "cuda/cuda.pyx":20298
 *             memcpy(&cparamsArray[idx], (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[idx])._ptr, sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))
 * 
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))             # <<<<<<<<<<<<<<
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuWaitExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = ((__pyx_v_numExtSems > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_extSemArray;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numExtSems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 20298, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":20299
 * 
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuWaitExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_v_numExtSems > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramsArray;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numExtSems); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 20299, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":20300
 *     if numExtSems > len(extSemArray): raise RuntimeError("List is too small: " + str(len(extSemArray)) + " < " + str(numExtSems))
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuWaitExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])             # <<<<<<<<<<<<<<
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_extSemArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_extSemArray, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_t_6)->_ptr;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cextSemArray;
  }
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramsArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramsArray, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS *)__pyx_t_6)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cparamsArray;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuWaitExternalSemaphoresAsync(__pyx_t_9, __pyx_t_10, __pyx_v_numExtSems, (__pyx_v_stream->_ptr[0])); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20300, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":20301
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuWaitExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_cextSemArray != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20302
 *     err = ccuda.cuWaitExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)             # <<<<<<<<<<<<<<
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)
 */
    free(__pyx_v_cextSemArray);

    /* "cuda/cuda.pyx":20301
 *     if numExtSems > len(paramsArray): raise RuntimeError("List is too small: " + str(len(paramsArray)) + " < " + str(numExtSems))
 *     err = ccuda.cuWaitExternalSemaphoresAsync((<CUexternalSemaphore>extSemArray[0])._ptr if len(extSemArray) == 1 else cextSemArray, (<CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS>paramsArray[0])._ptr if len(paramsArray) == 1 else cparamsArray, numExtSems, stream._ptr[0])
 *     if cextSemArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:
 */
  }

  /* "cuda/cuda.pyx":20303
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamsArray)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = ((__pyx_v_cparamsArray != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":20304
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cparamsArray);

    /* "cuda/cuda.pyx":20303
 *     if cextSemArray is not NULL:
 *         free(cextSemArray)
 *     if cparamsArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamsArray)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":20305
 *     if cparamsArray is not NULL:
 *         free(cparamsArray)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20187
 * 
 * @cython.embedsignature(True)
 * def cuWaitExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Waits on a set of external semaphore objects.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuWaitExternalSemaphoresAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_2generator14);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_29cuWaitExternalSemaphoresAsync_5generator15);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20308
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalSemaphore(extSem not None : CUexternalSemaphore):             # <<<<<<<<<<<<<<
 *     """ Destroys an external semaphore.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_399cuDestroyExternalSemaphore(PyObject *__pyx_self, PyObject *__pyx_v_extSem); /*proto*/
static char __pyx_doc_4cuda_4cuda_398cuDestroyExternalSemaphore[] = "cuDestroyExternalSemaphore(CUexternalSemaphore extSem: CUexternalSemaphore)\n Destroys an external semaphore.\n\n    Destroys an external semaphore object and releases any references to\n    the underlying resource. Any outstanding signals or waits must have\n    completed before the semaphore is destroyed.\n\n    Parameters\n    ----------\n    extSem : CUexternalSemaphore\n        External semaphore to be destroyed\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n\n    See Also\n    --------\n    cuImportExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_399cuDestroyExternalSemaphore = {"cuDestroyExternalSemaphore", (PyCFunction)__pyx_pw_4cuda_4cuda_399cuDestroyExternalSemaphore, METH_O, __pyx_doc_4cuda_4cuda_398cuDestroyExternalSemaphore};
static PyObject *__pyx_pw_4cuda_4cuda_399cuDestroyExternalSemaphore(PyObject *__pyx_self, PyObject *__pyx_v_extSem) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDestroyExternalSemaphore (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extSem), __pyx_ptype_4cuda_4cuda_CUexternalSemaphore, 0, "extSem", 0))) __PYX_ERR(0, 20308, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_398cuDestroyExternalSemaphore(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *)__pyx_v_extSem));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_398cuDestroyExternalSemaphore(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore *__pyx_v_extSem) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__723)
  __Pyx_RefNannySetupContext("cuDestroyExternalSemaphore", 0);
  __Pyx_TraceCall("cuDestroyExternalSemaphore", __pyx_f[0], 20308, 0, __PYX_ERR(0, 20308, __pyx_L1_error));

  /* "cuda/cuda.pyx":20335
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     err = ccuda.cuDestroyExternalSemaphore(extSem._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDestroyExternalSemaphore((__pyx_v_extSem->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20335, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":20336
 *     """
 *     err = ccuda.cuDestroyExternalSemaphore(extSem._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20308
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalSemaphore(extSem not None : CUexternalSemaphore):             # <<<<<<<<<<<<<<
 *     """ Destroys an external semaphore.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDestroyExternalSemaphore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20339
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_401cuStreamWaitValue32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_400cuStreamWaitValue32[] = "cuStreamWaitValue32(CUstream stream: CUstream, CUdeviceptr addr: CUdeviceptr, cuuint32_t value: cuuint32_t, unsigned int flags)\n Wait on a memory location.\n\n    Enqueues a synchronization of the stream on the given memory location.\n    Work ordered after the operation will block until the given condition\n    on the memory is satisfied. By default, the condition is to wait for\n    (int32_t)(*addr - value) >= 0, a cyclic greater-or-equal. Other\n    condition types can be specified via `flags`.\n\n    If the memory was registered via cuMemHostRegister(), the device\n    pointer should be obtained with cuMemHostGetDevicePointer(). This\n    function cannot be used with managed memory (cuMemAllocManaged).\n\n    Support for this can be queried with cuDeviceGetAttribute() and\n    CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS.\n\n    Support for CU_STREAM_WAIT_VALUE_NOR can be queried with\n    cuDeviceGetAttribute() and\n    CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR.\n\n    Parameters\n    ----------\n    stream : CUstream\n        The stream to synchronize on the memory location.\n    addr : CUdeviceptr\n        The memory location to wait on.\n    value : cuuint32_t\n        The value to compare with the memory location.\n    flags : unsigned int\n        See CUstreamWaitValue_flags.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamWaitValue64\n    cuStreamWriteValue32\n    cuStreamWriteValue64\n    cuStreamBatchMemOp\n    cuMemHostRegister\n    cuStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_401cuStreamWaitValue32 = {"cuStreamWaitValue32", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_401cuStreamWaitValue32, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_400cuStreamWaitValue32};
static PyObject *__pyx_pw_4cuda_4cuda_401cuStreamWaitValue32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr = 0;
  struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_value = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamWaitValue32 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_addr,&__pyx_n_s_value,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue32", 1, 4, 4, 1); __PYX_ERR(0, 20339, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue32", 1, 4, 4, 2); __PYX_ERR(0, 20339, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue32", 1, 4, 4, 3); __PYX_ERR(0, 20339, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamWaitValue32") < 0)) __PYX_ERR(0, 20339, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_addr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_value = ((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)values[2]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20339, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue32", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20339, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamWaitValue32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20339, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_addr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "addr", 0))) __PYX_ERR(0, 20339, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), __pyx_ptype_4cuda_4cuda_cuuint32_t, 0, "value", 0))) __PYX_ERR(0, 20339, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_400cuStreamWaitValue32(__pyx_self, __pyx_v_stream, __pyx_v_addr, __pyx_v_value, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_400cuStreamWaitValue32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_value, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__724)
  __Pyx_RefNannySetupContext("cuStreamWaitValue32", 0);
  __Pyx_TraceCall("cuStreamWaitValue32", __pyx_f[0], 20339, 0, __PYX_ERR(0, 20339, __pyx_L1_error));

  /* "cuda/cuda.pyx":20388
 *     cuStreamWaitEvent
 *     """
 *     err = ccuda.cuStreamWaitValue32(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamWaitValue32((__pyx_v_stream->_ptr[0]), (__pyx_v_addr->_ptr[0]), (__pyx_v_value->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20388, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":20389
 *     """
 *     err = ccuda.cuStreamWaitValue32(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20339
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamWaitValue32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20392
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_403cuStreamWaitValue64(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_402cuStreamWaitValue64[] = "cuStreamWaitValue64(CUstream stream: CUstream, CUdeviceptr addr: CUdeviceptr, cuuint64_t value: cuuint64_t, unsigned int flags)\n Wait on a memory location.\n\n    Enqueues a synchronization of the stream on the given memory location.\n    Work ordered after the operation will block until the given condition\n    on the memory is satisfied. By default, the condition is to wait for\n    (int64_t)(*addr - value) >= 0, a cyclic greater-or-equal. Other\n    condition types can be specified via `flags`.\n\n    If the memory was registered via cuMemHostRegister(), the device\n    pointer should be obtained with cuMemHostGetDevicePointer().\n\n    Support for this can be queried with cuDeviceGetAttribute() and\n    CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS.\n\n    Parameters\n    ----------\n    stream : CUstream\n        The stream to synchronize on the memory location.\n    addr : CUdeviceptr\n        The memory location to wait on.\n    value : cuuint64_t\n        The value to compare with the memory location.\n    flags : unsigned int\n        See CUstreamWaitValue_flags.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamWaitValue32\n    cuStreamWriteValue32\n    cuStreamWriteValue64\n    cuStreamBatchMemOp\n    cuMemHostRegister\n    cuStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_403cuStreamWaitValue64 = {"cuStreamWaitValue64", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_403cuStreamWaitValue64, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_402cuStreamWaitValue64};
static PyObject *__pyx_pw_4cuda_4cuda_403cuStreamWaitValue64(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr = 0;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamWaitValue64 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_addr,&__pyx_n_s_value,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue64", 1, 4, 4, 1); __PYX_ERR(0, 20392, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue64", 1, 4, 4, 2); __PYX_ERR(0, 20392, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue64", 1, 4, 4, 3); __PYX_ERR(0, 20392, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamWaitValue64") < 0)) __PYX_ERR(0, 20392, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_addr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_value = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)values[2]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20392, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamWaitValue64", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20392, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamWaitValue64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20392, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_addr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "addr", 0))) __PYX_ERR(0, 20392, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), __pyx_ptype_4cuda_4cuda_cuuint64_t, 0, "value", 0))) __PYX_ERR(0, 20392, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_402cuStreamWaitValue64(__pyx_self, __pyx_v_stream, __pyx_v_addr, __pyx_v_value, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_402cuStreamWaitValue64(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__725)
  __Pyx_RefNannySetupContext("cuStreamWaitValue64", 0);
  __Pyx_TraceCall("cuStreamWaitValue64", __pyx_f[0], 20392, 0, __PYX_ERR(0, 20392, __pyx_L1_error));

  /* "cuda/cuda.pyx":20436
 *     cuStreamWaitEvent
 *     """
 *     err = ccuda.cuStreamWaitValue64(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamWaitValue64((__pyx_v_stream->_ptr[0]), (__pyx_v_addr->_ptr[0]), (__pyx_v_value->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20436, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":20437
 *     """
 *     err = ccuda.cuStreamWaitValue64(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20392
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamWaitValue64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20440
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_405cuStreamWriteValue32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_404cuStreamWriteValue32[] = "cuStreamWriteValue32(CUstream stream: CUstream, CUdeviceptr addr: CUdeviceptr, cuuint32_t value: cuuint32_t, unsigned int flags)\n Write a value to memory.\n\n    Write a value to memory. Unless the\n    CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER flag is passed, the write is\n    preceded by a system-wide memory fence, equivalent to a\n    __threadfence_system() but scoped to the stream rather than a CUDA\n    thread.\n\n    If the memory was registered via cuMemHostRegister(), the device\n    pointer should be obtained with cuMemHostGetDevicePointer(). This\n    function cannot be used with managed memory (cuMemAllocManaged).\n\n    Support for this can be queried with cuDeviceGetAttribute() and\n    CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS.\n\n    Parameters\n    ----------\n    stream : CUstream\n        The stream to do the write in.\n    addr : CUdeviceptr\n        The device address to write to.\n    value : cuuint32_t\n        The value to write.\n    flags : unsigned int\n        See CUstreamWriteValue_flags.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamWriteValue64\n    cuStreamWaitValue32\n    cuStreamWaitValue64\n    cuStreamBatchMemOp\n    cuMemHostRegister\n    cuEventRecord\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_405cuStreamWriteValue32 = {"cuStreamWriteValue32", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_405cuStreamWriteValue32, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_404cuStreamWriteValue32};
static PyObject *__pyx_pw_4cuda_4cuda_405cuStreamWriteValue32(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr = 0;
  struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_value = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamWriteValue32 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_addr,&__pyx_n_s_value,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue32", 1, 4, 4, 1); __PYX_ERR(0, 20440, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue32", 1, 4, 4, 2); __PYX_ERR(0, 20440, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue32", 1, 4, 4, 3); __PYX_ERR(0, 20440, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamWriteValue32") < 0)) __PYX_ERR(0, 20440, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_addr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_value = ((struct __pyx_obj_4cuda_4cuda_cuuint32_t *)values[2]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20440, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue32", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20440, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamWriteValue32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20440, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_addr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "addr", 0))) __PYX_ERR(0, 20440, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), __pyx_ptype_4cuda_4cuda_cuuint32_t, 0, "value", 0))) __PYX_ERR(0, 20440, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_404cuStreamWriteValue32(__pyx_self, __pyx_v_stream, __pyx_v_addr, __pyx_v_value, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_404cuStreamWriteValue32(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint32_t *__pyx_v_value, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__726)
  __Pyx_RefNannySetupContext("cuStreamWriteValue32", 0);
  __Pyx_TraceCall("cuStreamWriteValue32", __pyx_f[0], 20440, 0, __PYX_ERR(0, 20440, __pyx_L1_error));

  /* "cuda/cuda.pyx":20485
 *     cuEventRecord
 *     """
 *     err = ccuda.cuStreamWriteValue32(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamWriteValue32((__pyx_v_stream->_ptr[0]), (__pyx_v_addr->_ptr[0]), (__pyx_v_value->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20485, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":20486
 *     """
 *     err = ccuda.cuStreamWriteValue32(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20440
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamWriteValue32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20489
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_407cuStreamWriteValue64(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_406cuStreamWriteValue64[] = "cuStreamWriteValue64(CUstream stream: CUstream, CUdeviceptr addr: CUdeviceptr, cuuint64_t value: cuuint64_t, unsigned int flags)\n Write a value to memory.\n\n    Write a value to memory. Unless the\n    CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER flag is passed, the write is\n    preceded by a system-wide memory fence, equivalent to a\n    __threadfence_system() but scoped to the stream rather than a CUDA\n    thread.\n\n    If the memory was registered via cuMemHostRegister(), the device\n    pointer should be obtained with cuMemHostGetDevicePointer().\n\n    Support for this can be queried with cuDeviceGetAttribute() and\n    CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS.\n\n    Parameters\n    ----------\n    stream : CUstream\n        The stream to do the write in.\n    addr : CUdeviceptr\n        The device address to write to.\n    value : cuuint64_t\n        The value to write.\n    flags : unsigned int\n        See CUstreamWriteValue_flags.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamWriteValue32\n    cuStreamWaitValue32\n    cuStreamWaitValue64\n    cuStreamBatchMemOp\n    cuMemHostRegister\n    cuEventRecord\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_407cuStreamWriteValue64 = {"cuStreamWriteValue64", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_407cuStreamWriteValue64, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_406cuStreamWriteValue64};
static PyObject *__pyx_pw_4cuda_4cuda_407cuStreamWriteValue64(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr = 0;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamWriteValue64 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_addr,&__pyx_n_s_value,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue64", 1, 4, 4, 1); __PYX_ERR(0, 20489, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue64", 1, 4, 4, 2); __PYX_ERR(0, 20489, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue64", 1, 4, 4, 3); __PYX_ERR(0, 20489, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamWriteValue64") < 0)) __PYX_ERR(0, 20489, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_addr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_value = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)values[2]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20489, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamWriteValue64", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20489, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamWriteValue64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20489, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_addr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "addr", 0))) __PYX_ERR(0, 20489, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), __pyx_ptype_4cuda_4cuda_cuuint64_t, 0, "value", 0))) __PYX_ERR(0, 20489, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_406cuStreamWriteValue64(__pyx_self, __pyx_v_stream, __pyx_v_addr, __pyx_v_value, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_406cuStreamWriteValue64(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_addr, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_value, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__727)
  __Pyx_RefNannySetupContext("cuStreamWriteValue64", 0);
  __Pyx_TraceCall("cuStreamWriteValue64", __pyx_f[0], 20489, 0, __PYX_ERR(0, 20489, __pyx_L1_error));

  /* "cuda/cuda.pyx":20533
 *     cuEventRecord
 *     """
 *     err = ccuda.cuStreamWriteValue64(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuStreamWriteValue64((__pyx_v_stream->_ptr[0]), (__pyx_v_addr->_ptr[0]), (__pyx_v_value->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20533, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":20534
 *     """
 *     err = ccuda.cuStreamWriteValue64(stream._ptr[0], addr._ptr[0], value._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20489
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuStreamWriteValue64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20537
 * 
 * @cython.embedsignature(True)
 * def cuStreamBatchMemOp(stream not None : CUstream, unsigned int count, paramArray : List[CUstreamBatchMemOpParams], unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Batch operations to synchronize the stream via memory operations.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_409cuStreamBatchMemOp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_408cuStreamBatchMemOp[] = "cuStreamBatchMemOp(CUstream stream: CUstream, unsigned int count, paramArray: List[CUstreamBatchMemOpParams], unsigned int flags)\n Batch operations to synchronize the stream via memory operations.\n\n    This is a batch version of cuStreamWaitValue32() and\n    cuStreamWriteValue32(). Batching operations may avoid some performance\n    overhead in both the API call and the device execution versus adding\n    them to the stream in separate API calls. The operations are enqueued\n    in the order they appear in the array.\n\n    See CUstreamBatchMemOpType for the full set of supported operations,\n    and cuStreamWaitValue32(), cuStreamWaitValue64(),\n    cuStreamWriteValue32(), and cuStreamWriteValue64() for details of\n    specific operations.\n\n    Basic support for this can be queried with cuDeviceGetAttribute() and\n    CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS. See related APIs for\n    details on querying support for specific operations.\n\n    Parameters\n    ----------\n    stream : CUstream\n        The stream to enqueue the operations in.\n    count : unsigned int\n        The number of operations in the array. Must be less than 256.\n    paramArray : List[CUstreamBatchMemOpParams]\n        The types and parameters of the individual operations.\n    flags : unsigned int\n        Reserved for future expansion; must be 0.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamWaitValue32\n    cuStreamWaitValue64\n    cuStreamWriteValue32\n    cuStreamWriteValue64\n    cuMemHostRegister\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_409cuStreamBatchMemOp = {"cuStreamBatchMemOp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_409cuStreamBatchMemOp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_408cuStreamBatchMemOp};
static PyObject *__pyx_pw_4cuda_4cuda_409cuStreamBatchMemOp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream = 0;
  unsigned int __pyx_v_count;
  PyObject *__pyx_v_paramArray = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuStreamBatchMemOp (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_count,&__pyx_n_s_paramArray,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamBatchMemOp", 1, 4, 4, 1); __PYX_ERR(0, 20537, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_paramArray)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamBatchMemOp", 1, 4, 4, 2); __PYX_ERR(0, 20537, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuStreamBatchMemOp", 1, 4, 4, 3); __PYX_ERR(0, 20537, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuStreamBatchMemOp") < 0)) __PYX_ERR(0, 20537, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_stream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20537, __pyx_L3_error)
    __pyx_v_paramArray = values[2];
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20537, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuStreamBatchMemOp", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20537, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamBatchMemOp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "stream", 0))) __PYX_ERR(0, 20537, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_408cuStreamBatchMemOp(__pyx_self, __pyx_v_stream, __pyx_v_count, __pyx_v_paramArray, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_18cuStreamBatchMemOp_2generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":20584
 *     """
 *     paramArray = [] if paramArray is None else paramArray
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 */

static PyObject *__pyx_pf_4cuda_4cuda_18cuStreamBatchMemOp_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_30_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_30_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20584, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_18cuStreamBatchMemOp_2generator16, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuStreamBatchMemOp_locals_genexp, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 20584, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuStreamBatchMemOp.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_18cuStreamBatchMemOp_2generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 20584, 0, __PYX_ERR(0, 20584, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 20584, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramArray)) { __Pyx_RaiseClosureNameError("paramArray"); __PYX_ERR(0, 20584, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramArray)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramArray)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramArray; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_paramArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20584, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20584, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20584, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 20584, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20584, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 20584, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20537
 * 
 * @cython.embedsignature(True)
 * def cuStreamBatchMemOp(stream not None : CUstream, unsigned int count, paramArray : List[CUstreamBatchMemOpParams], unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Batch operations to synchronize the stream via memory operations.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_408cuStreamBatchMemOp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_stream, unsigned int __pyx_v_count, PyObject *__pyx_v_paramArray, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams *__pyx_v_cparamArray;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_18cuStreamBatchMemOp_2generator16 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__728)
  __Pyx_RefNannySetupContext("cuStreamBatchMemOp", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 20537, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuStreamBatchMemOp", __pyx_f[0], 20537, 0, __PYX_ERR(0, 20537, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_paramArray = __pyx_v_paramArray;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramArray);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_paramArray);

  /* "cuda/cuda.pyx":20583
 *     cuMemHostRegister
 *     """
 *     paramArray = [] if paramArray is None else paramArray             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_paramArray == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_paramArray);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramArray;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_paramArray);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_paramArray, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20584
 *     """
 *     paramArray = [] if paramArray is None else paramArray
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_18cuStreamBatchMemOp_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 20584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":20585
 *     paramArray = [] if paramArray is None else paramArray
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")             # <<<<<<<<<<<<<<
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__729, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20585, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 20585, __pyx_L1_error)

    /* "cuda/cuda.pyx":20584
 *     """
 *     paramArray = [] if paramArray is None else paramArray
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 */
  }

  /* "cuda/cuda.pyx":20586
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL
 *     if len(paramArray) > 0:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramArray;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20586, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_v_count > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_paramArray;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__564); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 20586, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":20587
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL             # <<<<<<<<<<<<<<
 *     if len(paramArray) > 0:
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))
 */
  __pyx_v_cparamArray = NULL;

  /* "cuda/cuda.pyx":20588
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL
 *     if len(paramArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))
 *         if cparamArray is NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramArray;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20588, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":20589
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL
 *     if len(paramArray) > 0:
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))             # <<<<<<<<<<<<<<
 *         if cparamArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramArray)) + 'x' + str(sizeof(ccuda.CUstreamBatchMemOpParams)))
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramArray;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20589, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_cparamArray = ((__pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams))));

    /* "cuda/cuda.pyx":20590
 *     if len(paramArray) > 0:
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))
 *         if cparamArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramArray)) + 'x' + str(sizeof(ccuda.CUstreamBatchMemOpParams)))
 *         for idx in range(len(paramArray)):
 */
    __pyx_t_4 = ((__pyx_v_cparamArray == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":20591
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))
 *         if cparamArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramArray)) + 'x' + str(sizeof(ccuda.CUstreamBatchMemOpParams)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(paramArray)):
 *             memcpy(&cparamArray[idx], (<CUstreamBatchMemOpParams>paramArray[idx])._ptr, sizeof(ccuda.CUstreamBatchMemOpParams))
 */
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_paramArray;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_Raise(__pyx_t_1, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __PYX_ERR(0, 20591, __pyx_L1_error)

      /* "cuda/cuda.pyx":20590
 *     if len(paramArray) > 0:
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))
 *         if cparamArray is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramArray)) + 'x' + str(sizeof(ccuda.CUstreamBatchMemOpParams)))
 *         for idx in range(len(paramArray)):
 */
    }

    /* "cuda/cuda.pyx":20592
 *         if cparamArray is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramArray)) + 'x' + str(sizeof(ccuda.CUstreamBatchMemOpParams)))
 *         for idx in range(len(paramArray)):             # <<<<<<<<<<<<<<
 *             memcpy(&cparamArray[idx], (<CUstreamBatchMemOpParams>paramArray[idx])._ptr, sizeof(ccuda.CUstreamBatchMemOpParams))
 * 
 */
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramArray;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20592, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":20593
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(paramArray)) + 'x' + str(sizeof(ccuda.CUstreamBatchMemOpParams)))
 *         for idx in range(len(paramArray)):
 *             memcpy(&cparamArray[idx], (<CUstreamBatchMemOpParams>paramArray[idx])._ptr, sizeof(ccuda.CUstreamBatchMemOpParams))             # <<<<<<<<<<<<<<
 * 
 *     err = ccuda.cuStreamBatchMemOp(stream._ptr[0], count, (<CUstreamBatchMemOpParams>paramArray[0])._ptr if len(paramArray) == 1 else cparamArray, flags)
 */
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramArray, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20593, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      (void)(memcpy((&(__pyx_v_cparamArray[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams *)__pyx_t_1)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams))));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "cuda/cuda.pyx":20588
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL
 *     if len(paramArray) > 0:             # <<<<<<<<<<<<<<
 *         cparamArray = <ccuda.CUstreamBatchMemOpParams*> calloc(len(paramArray), sizeof(ccuda.CUstreamBatchMemOpParams))
 *         if cparamArray is NULL:
 */
  }

  /* "cuda/cuda.pyx":20595
 *             memcpy(&cparamArray[idx], (<CUstreamBatchMemOpParams>paramArray[idx])._ptr, sizeof(ccuda.CUstreamBatchMemOpParams))
 * 
 *     err = ccuda.cuStreamBatchMemOp(stream._ptr[0], count, (<CUstreamBatchMemOpParams>paramArray[0])._ptr if len(paramArray) == 1 else cparamArray, flags)             # <<<<<<<<<<<<<<
 *     if cparamArray is not NULL:
 *         free(cparamArray)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_paramArray;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20595, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_paramArray, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams *)__pyx_t_1)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cparamArray;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuStreamBatchMemOp((__pyx_v_stream->_ptr[0]), __pyx_v_count, __pyx_t_9, __pyx_v_flags); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20595, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":20596
 * 
 *     err = ccuda.cuStreamBatchMemOp(stream._ptr[0], count, (<CUstreamBatchMemOpParams>paramArray[0])._ptr if len(paramArray) == 1 else cparamArray, flags)
 *     if cparamArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamArray)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = ((__pyx_v_cparamArray != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":20597
 *     err = ccuda.cuStreamBatchMemOp(stream._ptr[0], count, (<CUstreamBatchMemOpParams>paramArray[0])._ptr if len(paramArray) == 1 else cparamArray, flags)
 *     if cparamArray is not NULL:
 *         free(cparamArray)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cparamArray);

    /* "cuda/cuda.pyx":20596
 * 
 *     err = ccuda.cuStreamBatchMemOp(stream._ptr[0], count, (<CUstreamBatchMemOpParams>paramArray[0])._ptr if len(paramArray) == 1 else cparamArray, flags)
 *     if cparamArray is not NULL:             # <<<<<<<<<<<<<<
 *         free(cparamArray)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":20598
 *     if cparamArray is not NULL:
 *         free(cparamArray)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 20598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20537
 * 
 * @cython.embedsignature(True)
 * def cuStreamBatchMemOp(stream not None : CUstream, unsigned int count, paramArray : List[CUstreamBatchMemOpParams], unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Batch operations to synchronize the stream via memory operations.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuStreamBatchMemOp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_18cuStreamBatchMemOp_2generator16);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20601
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetAttribute(attrib not None : CUfunction_attribute, hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns information about a function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_411cuFuncGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_410cuFuncGetAttribute[] = "cuFuncGetAttribute(attrib: CUfunction_attribute, CUfunction hfunc: CUfunction)\n Returns information about a function.\n\n    Returns in `*pi` the integer value of the attribute `attrib` on the\n    kernel given by `hfunc`. The supported attributes are:\n    CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK: The maximum number of threads\n    per block, beyond which a launch of the function would fail. This\n    number depends on both the function and the device on which the\n    function is currently loaded. CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES: The\n    size in bytes of statically-allocated shared memory per block required\n    by this function. This does not include dynamically-allocated shared\n    memory requested by the user at runtime.\n    CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES: The size in bytes of user-allocated\n    constant memory required by this function.\n    CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES: The size in bytes of local memory\n    used by each thread of this function. CU_FUNC_ATTRIBUTE_NUM_REGS: The\n    number of registers used by each thread of this function.\n    CU_FUNC_ATTRIBUTE_PTX_VERSION: The PTX virtual architecture version for\n    which the function was compiled. This value is the major PTX version *\n    10 the minor PTX version, so a PTX version 1.3 function would return\n    the value 13. Note that this may return the undefined value of 0 for\n    cubins compiled prior to CUDA 3.0.   CU_FUNC_ATTRIBUTE_BINARY_VERSION:\n    The binary architecture version for which the function was compiled.\n    This value is the major binary version * 10 + the minor binary version,\n    so a binary version 1.3 function would return the value 13. Note that\n    this will return a value of 10 for legacy cubins that do not have a\n    properly-encoded binary architecture version. ::CU_FUNC_CACHE_MODE_CA:\n    The attribute to indicate whether the function has been compiled with\n    user specified option \"-Xptxas --dlcm=ca\" set .\n    CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHA""RED_SIZE_BYTES: The maximum size in\n    bytes of dynamically-allocated shared memory.\n    CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT: Preferred shared\n    memory-L1 cache split ratio in percent of total shared memory.\n\n    Parameters\n    ----------\n    attrib : CUfunction_attribute\n        Attribute requested\n    hfunc : CUfunction\n        Function to query attribute of\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    pi : int\n        Returned attribute value\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuFuncSetCacheConfig\n    cuLaunchKernel\n    cudaFuncGetAttributes\n    cudaFuncSetAttribute\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_411cuFuncGetAttribute = {"cuFuncGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_411cuFuncGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_410cuFuncGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_411cuFuncGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_attrib = 0;
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_attrib,&__pyx_n_s_hfunc,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attrib)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncGetAttribute", 1, 2, 2, 1); __PYX_ERR(0, 20601, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFuncGetAttribute") < 0)) __PYX_ERR(0, 20601, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_attrib = values[0];
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFuncGetAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20601, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFuncGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_attrib) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attrib"); __PYX_ERR(0, 20601, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 20601, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_410cuFuncGetAttribute(__pyx_self, __pyx_v_attrib, __pyx_v_hfunc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_410cuFuncGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attrib, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc) {
  int __pyx_v_pi;
  __pyx_t_4cuda_5ccuda_CUfunction_attribute __pyx_v_cattrib;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfunction_attribute __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__730)
  __Pyx_RefNannySetupContext("cuFuncGetAttribute", 0);
  __Pyx_TraceCall("cuFuncGetAttribute", __pyx_f[0], 20601, 0, __PYX_ERR(0, 20601, __pyx_L1_error));

  /* "cuda/cuda.pyx":20663
 *     cudaFuncSetAttribute
 *     """
 *     cdef int pi = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value
 *     err = ccuda.cuFuncGetAttribute(&pi, cattrib, hfunc._ptr[0])
 */
  __pyx_v_pi = 0;

  /* "cuda/cuda.pyx":20664
 *     """
 *     cdef int pi = 0
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuFuncGetAttribute(&pi, cattrib, hfunc._ptr[0])
 *     return (CUresult(err), pi)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 20664, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattrib = __pyx_t_2;

  /* "cuda/cuda.pyx":20665
 *     cdef int pi = 0
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value
 *     err = ccuda.cuFuncGetAttribute(&pi, cattrib, hfunc._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pi)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuFuncGetAttribute((&__pyx_v_pi), __pyx_v_cattrib, (__pyx_v_hfunc->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20665, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":20666
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value
 *     err = ccuda.cuFuncGetAttribute(&pi, cattrib, hfunc._ptr[0])
 *     return (CUresult(err), pi)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20601
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetAttribute(attrib not None : CUfunction_attribute, hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns information about a function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuFuncGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20669
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetAttribute(hfunc not None : CUfunction, attrib not None : CUfunction_attribute, int value):             # <<<<<<<<<<<<<<
 *     """ Sets information about a function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_413cuFuncSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_412cuFuncSetAttribute[] = "cuFuncSetAttribute(CUfunction hfunc: CUfunction, attrib: CUfunction_attribute, int value)\n Sets information about a function.\n\n    This call sets the value of a specified attribute `attrib` on the\n    kernel given by `hfunc` to an integer value specified by `val` This\n    function returns CUDA_SUCCESS if the new value of the attribute could\n    be successfully set. If the set fails, this call will return an error.\n    Not all attributes can have values set. Attempting to set a value on a\n    read-only attribute will result in an error (CUDA_ERROR_INVALID_VALUE)\n\n    Supported attributes for the cuFuncSetAttribute call are:\n    CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES: This maximum size in\n    bytes of dynamically-allocated shared memory. The value should contain\n    the requested maximum size of dynamically-allocated shared memory. The\n    sum of this value and the function attribute\n    CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES cannot exceed the device attribute\n    CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN. The maximal size\n    of requestable dynamic shared memory may differ by GPU architecture.\n    CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT: On devices where\n    the L1 cache and shared memory use the same hardware resources, this\n    sets the shared memory carveout preference, in percent of the total\n    shared memory. See\n    CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR This is only a\n    hint, and the driver can choose a different ratio if required to\n    execute the function.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Function to query attribute of\n    attrib : CUfunction_attribute\n        Attribute requested\n    value : int\n        The value to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALI""D_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuFuncSetCacheConfig\n    cuLaunchKernel\n    cudaFuncGetAttributes\n    cudaFuncSetAttribute\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_413cuFuncSetAttribute = {"cuFuncSetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_413cuFuncSetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_412cuFuncSetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_413cuFuncSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  PyObject *__pyx_v_attrib = 0;
  int __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncSetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_attrib,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attrib)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetAttribute", 1, 3, 3, 1); __PYX_ERR(0, 20669, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetAttribute", 1, 3, 3, 2); __PYX_ERR(0, 20669, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFuncSetAttribute") < 0)) __PYX_ERR(0, 20669, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_attrib = values[1];
    __pyx_v_value = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20669, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFuncSetAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20669, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 20669, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attrib) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attrib"); __PYX_ERR(0, 20669, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_412cuFuncSetAttribute(__pyx_self, __pyx_v_hfunc, __pyx_v_attrib, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_412cuFuncSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, PyObject *__pyx_v_attrib, int __pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUfunction_attribute __pyx_v_cattrib;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfunction_attribute __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__731)
  __Pyx_RefNannySetupContext("cuFuncSetAttribute", 0);
  __Pyx_TraceCall("cuFuncSetAttribute", __pyx_f[0], 20669, 0, __PYX_ERR(0, 20669, __pyx_L1_error));

  /* "cuda/cuda.pyx":20725
 *     cudaFuncSetAttribute
 *     """
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuFuncSetAttribute(hfunc._ptr[0], cattrib, value)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 20725, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattrib = __pyx_t_2;

  /* "cuda/cuda.pyx":20726
 *     """
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value
 *     err = ccuda.cuFuncSetAttribute(hfunc._ptr[0], cattrib, value)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuFuncSetAttribute((__pyx_v_hfunc->_ptr[0]), __pyx_v_cattrib, __pyx_v_value); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20726, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":20727
 *     cdef ccuda.CUfunction_attribute cattrib = attrib.value
 *     err = ccuda.cuFuncSetAttribute(hfunc._ptr[0], cattrib, value)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20669
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetAttribute(hfunc not None : CUfunction, attrib not None : CUfunction_attribute, int value):             # <<<<<<<<<<<<<<
 *     """ Sets information about a function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20730
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetCacheConfig(hfunc not None : CUfunction, config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for a device function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_415cuFuncSetCacheConfig(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_414cuFuncSetCacheConfig[] = "cuFuncSetCacheConfig(CUfunction hfunc: CUfunction, config: CUfunc_cache)\n Sets the preferred cache configuration for a device function.\n\n    On devices where the L1 cache and shared memory use the same hardware\n    resources, this sets through `config` the preferred cache configuration\n    for the device function `hfunc`. This is only a preference. The driver\n    will use the requested configuration if possible, but it is free to\n    choose a different configuration if required to execute `hfunc`. Any\n    context-wide preference set via cuCtxSetCacheConfig() will be\n    overridden by this per-function setting unless the per-function setting\n    is CU_FUNC_CACHE_PREFER_NONE. In that case, the current context-wide\n    setting will be used.\n\n    This setting does nothing on devices where the size of the L1 cache and\n    shared memory are fixed.\n\n    Launching a kernel with a different preference than the most recent\n    preference setting may insert a device-side synchronization point.\n\n    The supported cache configurations are: CU_FUNC_CACHE_PREFER_NONE: no\n    preference for shared memory or L1 (default)\n    CU_FUNC_CACHE_PREFER_SHARED: prefer larger shared memory and smaller L1\n    cache CU_FUNC_CACHE_PREFER_L1: prefer larger L1 cache and smaller\n    shared memory CU_FUNC_CACHE_PREFER_EQUAL: prefer equal sized L1 cache\n    and shared memory\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to configure cache for\n    config : CUfunc_cache\n        Requested cache configuration\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuFuncGetAttribute\n    cuLaunchKernel\n    cudaFuncSetCacheConfig\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_415cuFuncSetCacheConfig = {"cuFuncSetCacheConfig", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_415cuFuncSetCacheConfig, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_414cuFuncSetCacheConfig};
static PyObject *__pyx_pw_4cuda_4cuda_415cuFuncSetCacheConfig(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  PyObject *__pyx_v_config = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncSetCacheConfig (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_config,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetCacheConfig", 1, 2, 2, 1); __PYX_ERR(0, 20730, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFuncSetCacheConfig") < 0)) __PYX_ERR(0, 20730, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_config = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFuncSetCacheConfig", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20730, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetCacheConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 20730, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_config) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "config"); __PYX_ERR(0, 20730, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_414cuFuncSetCacheConfig(__pyx_self, __pyx_v_hfunc, __pyx_v_config);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_414cuFuncSetCacheConfig(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, PyObject *__pyx_v_config) {
  __pyx_t_4cuda_5ccuda_CUfunc_cache __pyx_v_cconfig;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfunc_cache __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__732)
  __Pyx_RefNannySetupContext("cuFuncSetCacheConfig", 0);
  __Pyx_TraceCall("cuFuncSetCacheConfig", __pyx_f[0], 20730, 0, __PYX_ERR(0, 20730, __pyx_L1_error));

  /* "cuda/cuda.pyx":20782
 *     cudaFuncSetCacheConfig
 *     """
 *     cdef ccuda.CUfunc_cache cconfig = config.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuFuncSetCacheConfig(hfunc._ptr[0], cconfig)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 20782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cconfig = __pyx_t_2;

  /* "cuda/cuda.pyx":20783
 *     """
 *     cdef ccuda.CUfunc_cache cconfig = config.value
 *     err = ccuda.cuFuncSetCacheConfig(hfunc._ptr[0], cconfig)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuFuncSetCacheConfig((__pyx_v_hfunc->_ptr[0]), __pyx_v_cconfig); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20783, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":20784
 *     cdef ccuda.CUfunc_cache cconfig = config.value
 *     err = ccuda.cuFuncSetCacheConfig(hfunc._ptr[0], cconfig)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20730
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetCacheConfig(hfunc not None : CUfunction, config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for a device function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetCacheConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20787
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedMemConfig(hfunc not None : CUfunction, config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for a device function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_417cuFuncSetSharedMemConfig(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_416cuFuncSetSharedMemConfig[] = "cuFuncSetSharedMemConfig(CUfunction hfunc: CUfunction, config: CUsharedconfig)\n Sets the shared memory configuration for a device function.\n\n    On devices with configurable shared memory banks, this function will\n    force all subsequent launches of the specified device function to have\n    the given shared memory bank size configuration. On any given launch of\n    the function, the shared memory configuration of the device will be\n    temporarily changed if needed to suit the function's preferred\n    configuration. Changes in shared memory configuration between\n    subsequent launches of functions, may introduce a device side\n    synchronization point.\n\n    Any per-function setting of shared memory bank size set via\n    cuFuncSetSharedMemConfig will override the context wide setting set\n    with cuCtxSetSharedMemConfig.\n\n    Changing the shared memory bank size will not increase shared memory\n    usage or affect occupancy of kernels, but may have major effects on\n    performance. Larger bank sizes will allow for greater potential\n    bandwidth to shared memory, but will change what kinds of accesses to\n    shared memory will result in bank conflicts.\n\n    This function will do nothing on devices with fixed shared memory bank\n    size.\n\n    The supported bank configurations are:\n    CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE: use the context's shared memory\n    configuration when launching this function.\n    CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE: set shared memory bank width\n    to be natively four bytes when launching this function.\n    CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE: set shared memory bank width\n    to be natively eight bytes when launching this function.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        kernel to be given a shared memory config\n    config : CUsharedconfig\n        requested shared memory configuration\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INV""ALID_VALUE\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuCtxGetSharedMemConfig\n    cuCtxSetSharedMemConfig\n    cuFuncGetAttribute\n    cuLaunchKernel\n    cudaFuncSetSharedMemConfig\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_417cuFuncSetSharedMemConfig = {"cuFuncSetSharedMemConfig", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_417cuFuncSetSharedMemConfig, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_416cuFuncSetSharedMemConfig};
static PyObject *__pyx_pw_4cuda_4cuda_417cuFuncSetSharedMemConfig(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  PyObject *__pyx_v_config = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncSetSharedMemConfig (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_config,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetSharedMemConfig", 1, 2, 2, 1); __PYX_ERR(0, 20787, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFuncSetSharedMemConfig") < 0)) __PYX_ERR(0, 20787, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_config = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFuncSetSharedMemConfig", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20787, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetSharedMemConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 20787, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_config) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "config"); __PYX_ERR(0, 20787, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_416cuFuncSetSharedMemConfig(__pyx_self, __pyx_v_hfunc, __pyx_v_config);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_416cuFuncSetSharedMemConfig(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, PyObject *__pyx_v_config) {
  __pyx_t_4cuda_5ccuda_CUsharedconfig __pyx_v_cconfig;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUsharedconfig __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__733)
  __Pyx_RefNannySetupContext("cuFuncSetSharedMemConfig", 0);
  __Pyx_TraceCall("cuFuncSetSharedMemConfig", __pyx_f[0], 20787, 0, __PYX_ERR(0, 20787, __pyx_L1_error));

  /* "cuda/cuda.pyx":20848
 *     cudaFuncSetSharedMemConfig
 *     """
 *     cdef ccuda.CUsharedconfig cconfig = config.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuFuncSetSharedMemConfig(hfunc._ptr[0], cconfig)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 20848, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cconfig = __pyx_t_2;

  /* "cuda/cuda.pyx":20849
 *     """
 *     cdef ccuda.CUsharedconfig cconfig = config.value
 *     err = ccuda.cuFuncSetSharedMemConfig(hfunc._ptr[0], cconfig)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuFuncSetSharedMemConfig((__pyx_v_hfunc->_ptr[0]), __pyx_v_cconfig); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20849, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":20850
 *     cdef ccuda.CUsharedconfig cconfig = config.value
 *     err = ccuda.cuFuncSetSharedMemConfig(hfunc._ptr[0], cconfig)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 20850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20787
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedMemConfig(hfunc not None : CUfunction, config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for a device function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetSharedMemConfig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20853
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetModule(hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns a module handle.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_419cuFuncGetModule(PyObject *__pyx_self, PyObject *__pyx_v_hfunc); /*proto*/
static char __pyx_doc_4cuda_4cuda_418cuFuncGetModule[] = "cuFuncGetModule(CUfunction hfunc: CUfunction)\n Returns a module handle.\n\n    Returns in `*hmod` the handle of the module that function `hfunc` is\n    located in. The lifetime of the module corresponds to the lifetime of\n    the context it was loaded in or until the module is explicitly\n    unloaded.\n\n    The CUDA runtime manages its own modules loaded into the primary\n    context. If the handle returned by this API refers to a module loaded\n    by the CUDA runtime, calling cuModuleUnload() on that module will\n    result in undefined behavior.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Function to retrieve module for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_FOUND\n    hmod : CUmodule\n        Returned module handle\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_419cuFuncGetModule = {"cuFuncGetModule", (PyCFunction)__pyx_pw_4cuda_4cuda_419cuFuncGetModule, METH_O, __pyx_doc_4cuda_4cuda_418cuFuncGetModule};
static PyObject *__pyx_pw_4cuda_4cuda_419cuFuncGetModule(PyObject *__pyx_self, PyObject *__pyx_v_hfunc) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncGetModule (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 20853, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_418cuFuncGetModule(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_hfunc));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_418cuFuncGetModule(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc) {
  struct __pyx_obj_4cuda_4cuda_CUmodule *__pyx_v_hmod = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__734)
  __Pyx_RefNannySetupContext("cuFuncGetModule", 0);
  __Pyx_TraceCall("cuFuncGetModule", __pyx_f[0], 20853, 0, __PYX_ERR(0, 20853, __pyx_L1_error));

  /* "cuda/cuda.pyx":20883
 *         Returned module handle
 *     """
 *     cdef CUmodule hmod = CUmodule()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuFuncGetModule(hmod._ptr, hfunc._ptr[0])
 *     return (CUresult(err), hmod)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hmod = ((struct __pyx_obj_4cuda_4cuda_CUmodule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20884
 *     """
 *     cdef CUmodule hmod = CUmodule()
 *     err = ccuda.cuFuncGetModule(hmod._ptr, hfunc._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), hmod)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuFuncGetModule(__pyx_v_hmod->_ptr, (__pyx_v_hfunc->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20884, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":20885
 *     cdef CUmodule hmod = CUmodule()
 *     err = ccuda.cuFuncGetModule(hmod._ptr, hfunc._ptr[0])
 *     return (CUresult(err), hmod)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_hmod));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_hmod));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_hmod));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20853
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetModule(hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns a module handle.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuFuncGetModule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_hmod);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":20888
 * 
 * @cython.embedsignature(True)
 * def cuLaunchKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams, void_ptr extra):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_421cuLaunchKernel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_420cuLaunchKernel[] = "cuLaunchKernel(CUfunction f: CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, CUstream hStream: CUstream, kernelParams, void_ptr extra)\n Launches a CUDA function.\n\n    Invokes the kernel `f` on a `gridDimX` x `gridDimY` x `gridDimZ` grid\n    of blocks. Each block contains `blockDimX` x `blockDimY` x `blockDimZ`\n    threads.\n\n    `sharedMemBytes` sets the amount of dynamic shared memory that will be\n    available to each thread block.\n\n    Kernel parameters to `f` can be specified in one of two ways:\n\n    1) Kernel parameters can be specified via `kernelParams`. If `f` has N\n    parameters, then `kernelParams` needs to be an array of N pointers.\n    Each of `kernelParams`[0] through `kernelParams`[N-1] must point to a\n    region of memory from which the actual kernel parameter will be copied.\n    The number of kernel parameters and their offsets and sizes do not need\n    to be specified as that information is retrieved directly from the\n    kernel's image.\n\n    2) Kernel parameters can also be packaged by the application into a\n    single buffer that is passed in via the `extra` parameter. This places\n    the burden on the application of knowing each kernel parameter's size\n    and alignment/padding within the buffer. Here is an example of using\n    the `extra` parameter in this manner: size_targBufferSize;\n    charargBuffer[256];  //populateargBufferandargBufferSize\n    void*config[]={ CU_LAUNCH_PARAM_BUFFER_POINTER,argBuffer,\n    CU_LAUNCH_PARAM_BUFFER_SIZE,&argBufferSize, CU_LAUNCH_PARAM_END };\n    status=cuLaunchKernel(f,gx,gy,gz,bx,by,bz,sh,s,NULL,config);\n\n    The `extra` parameter exists to allow cuLaunchKernel to take additional\n    less commonly used arguments. `extra` specifies a list of names of\n    extra settings and their corresponding values. Each extra setting name\n    is immediately follo""wed by the corresponding value. The list must be\n    terminated with either NULL or CU_LAUNCH_PARAM_END.\n\n    CU_LAUNCH_PARAM_END, which indicates the end of the `extra` array;\n    CU_LAUNCH_PARAM_BUFFER_POINTER, which specifies that the next value in\n    `extra` will be a pointer to a buffer containing all the kernel\n    parameters for launching kernel `f`; CU_LAUNCH_PARAM_BUFFER_SIZE, which\n    specifies that the next value in `extra` will be a pointer to a size_t\n    containing the size of the buffer specified with\n    CU_LAUNCH_PARAM_BUFFER_POINTER;\n\n    The error CUDA_ERROR_INVALID_VALUE will be returned if kernel\n    parameters are specified with both `kernelParams` and `extra` (i.e.\n    both `kernelParams` and `extra` are non-NULL).\n\n    Calling cuLaunchKernel() invalidates the persistent function state set\n    through the following deprecated APIs: cuFuncSetBlockShape(),\n    cuFuncSetSharedSize(), cuParamSetSize(), cuParamSeti(), cuParamSetf(),\n    cuParamSetv().\n\n    Note that to use cuLaunchKernel(), the kernel `f` must either have been\n    compiled with toolchain version 3.2 or later so that it will contain\n    kernel parameter information, or have no kernel parameters. If either\n    of these conditions is not met, then cuLaunchKernel() will return\n    CUDA_ERROR_INVALID_IMAGE.\n\n    Parameters\n    ----------\n    f : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    hStream : CUstream\n        Stream identifier\n    kernelParams : Any\n        Ar""ray of pointers to kernel parameters\n    extra : void_ptr\n        Extra options\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_IMAGE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_LAUNCH_FAILED\n        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES\n        CUDA_ERROR_LAUNCH_TIMEOUT\n        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuFuncSetCacheConfig\n    cuFuncGetAttribute\n    cudaLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_421cuLaunchKernel = {"cuLaunchKernel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_421cuLaunchKernel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_420cuLaunchKernel};
static PyObject *__pyx_pw_4cuda_4cuda_421cuLaunchKernel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f = 0;
  unsigned int __pyx_v_gridDimX;
  unsigned int __pyx_v_gridDimY;
  unsigned int __pyx_v_gridDimZ;
  unsigned int __pyx_v_blockDimX;
  unsigned int __pyx_v_blockDimY;
  unsigned int __pyx_v_blockDimZ;
  unsigned int __pyx_v_sharedMemBytes;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  PyObject *__pyx_v_kernelParams = 0;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_extra;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunchKernel (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_gridDimX_2,&__pyx_n_s_gridDimY_2,&__pyx_n_s_gridDimZ_2,&__pyx_n_s_blockDimX_2,&__pyx_n_s_blockDimY_2,&__pyx_n_s_blockDimZ_2,&__pyx_n_s_sharedMemBytes_2,&__pyx_n_s_hStream_2,&__pyx_n_s_kernelParams_2,&__pyx_n_s_extra_2,0};
    PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gridDimX_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 1); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gridDimY_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 2); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gridDimZ_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 3); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockDimX_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 4); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockDimY_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 5); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockDimZ_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 6); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sharedMemBytes_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 7); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 8); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kernelParams_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 9); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extra_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, 10); __PYX_ERR(0, 20888, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLaunchKernel") < 0)) __PYX_ERR(0, 20888, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
    }
    __pyx_v_f = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_gridDimX = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_gridDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_gridDimY = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_gridDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_gridDimZ = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_gridDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_blockDimX = __Pyx_PyInt_As_unsigned_int(values[4]); if (unlikely((__pyx_v_blockDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_blockDimY = __Pyx_PyInt_As_unsigned_int(values[5]); if (unlikely((__pyx_v_blockDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_blockDimZ = __Pyx_PyInt_As_unsigned_int(values[6]); if (unlikely((__pyx_v_blockDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_sharedMemBytes = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_sharedMemBytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[8]);
    __pyx_v_kernelParams = values[9];
    __pyx_v_extra = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[10]); if (unlikely((__pyx_v_extra == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 20888, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLaunchKernel", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 20888, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchKernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "f", 0))) __PYX_ERR(0, 20888, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 20888, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_420cuLaunchKernel(__pyx_self, __pyx_v_f, __pyx_v_gridDimX, __pyx_v_gridDimY, __pyx_v_gridDimZ, __pyx_v_blockDimX, __pyx_v_blockDimY, __pyx_v_blockDimZ, __pyx_v_sharedMemBytes, __pyx_v_hStream, __pyx_v_kernelParams, __pyx_v_extra);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_420cuLaunchKernel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, unsigned int __pyx_v_gridDimX, unsigned int __pyx_v_gridDimY, unsigned int __pyx_v_gridDimZ, unsigned int __pyx_v_blockDimX, unsigned int __pyx_v_blockDimY, unsigned int __pyx_v_blockDimZ, unsigned int __pyx_v_sharedMemBytes, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_kernelParams, __pyx_t_4cuda_4cuda_void_ptr __pyx_v_extra) {
  PyObject *__pyx_v_ckernelParams = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__735)
  __Pyx_RefNannySetupContext("cuLaunchKernel", 0);
  __Pyx_TraceCall("cuLaunchKernel", __pyx_f[0], 20888, 0, __PYX_ERR(0, 20888, __pyx_L1_error));

  /* "cuda/cuda.pyx":20998
 *     cudaLaunchKernel
 *     """
 *     ckernelParams = utils.HelperKernelParams(kernelParams)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLaunchKernel(f._ptr[0], gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, hStream._ptr[0], <void**><void_ptr>ckernelParams.ckernelParams, <void**>extra)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams), __pyx_v_kernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ckernelParams = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20999
 *     """
 *     ckernelParams = utils.HelperKernelParams(kernelParams)
 *     err = ccuda.cuLaunchKernel(f._ptr[0], gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, hStream._ptr[0], <void**><void_ptr>ckernelParams.ckernelParams, <void**>extra)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ckernelParams, __pyx_n_s_ckernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 20999, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuLaunchKernel((__pyx_v_f->_ptr[0]), __pyx_v_gridDimX, __pyx_v_gridDimY, __pyx_v_gridDimZ, __pyx_v_blockDimX, __pyx_v_blockDimY, __pyx_v_blockDimZ, __pyx_v_sharedMemBytes, (__pyx_v_hStream->_ptr[0]), ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2)), ((void **)__pyx_v_extra)); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 20999, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":21000
 *     ckernelParams = utils.HelperKernelParams(kernelParams)
 *     err = ccuda.cuLaunchKernel(f._ptr[0], gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, hStream._ptr[0], <void**><void_ptr>ckernelParams.ckernelParams, <void**>extra)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 21000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":20888
 * 
 * @cython.embedsignature(True)
 * def cuLaunchKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams, void_ptr extra):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuLaunchKernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ckernelParams);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21003
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function where thread blocks can cooperate and synchronize as they execute.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_423cuLaunchCooperativeKernel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_422cuLaunchCooperativeKernel[] = "cuLaunchCooperativeKernel(CUfunction f: CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, CUstream hStream: CUstream, kernelParams)\n Launches a CUDA function where thread blocks can cooperate and synchronize as they execute.\n\n    Invokes the kernel `f` on a `gridDimX` x `gridDimY` x `gridDimZ` grid\n    of blocks. Each block contains `blockDimX` x `blockDimY` x `blockDimZ`\n    threads.\n\n    `sharedMemBytes` sets the amount of dynamic shared memory that will be\n    available to each thread block.\n\n    The device on which this kernel is invoked must have a non-zero value\n    for the device attribute CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH.\n\n    The total number of blocks launched cannot exceed the maximum number of\n    blocks per multiprocessor as returned by\n    cuOccupancyMaxActiveBlocksPerMultiprocessor (or\n    cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags) times the number\n    of multiprocessors as specified by the device attribute\n    CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT.\n\n    The kernel cannot make use of CUDA dynamic parallelism.\n\n    Kernel parameters must be specified via `kernelParams`. If `f` has N\n    parameters, then `kernelParams` needs to be an array of N pointers.\n    Each of `kernelParams`[0] through `kernelParams`[N-1] must point to a\n    region of memory from which the actual kernel parameter will be copied.\n    The number of kernel parameters and their offsets and sizes do not need\n    to be specified as that information is retrieved directly from the\n    kernel's image.\n\n    Calling cuLaunchCooperativeKernel() sets persistent function state that\n    is the same as function state set through cuLaunchKernel API\n\n    When the kernel `f` is launched via cuLaunchCooperativeKernel(), the\n    previous block shape, shared size and parameter info associated with\n    `f` is overwritte""n.\n\n    Note that to use cuLaunchCooperativeKernel(), the kernel `f` must\n    either have been compiled with toolchain version 3.2 or later so that\n    it will contain kernel parameter information, or have no kernel\n    parameters. If either of these conditions is not met, then\n    cuLaunchCooperativeKernel() will return CUDA_ERROR_INVALID_IMAGE.\n\n    Parameters\n    ----------\n    f : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    hStream : CUstream\n        Stream identifier\n    kernelParams : Any\n        Array of pointers to kernel parameters\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_IMAGE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_LAUNCH_FAILED\n        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES\n        CUDA_ERROR_LAUNCH_TIMEOUT\n        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING\n        CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuFuncSetCacheConfig\n    cuFuncGetAttribute\n    cuLaunchCooperativeKernelMultiDevice\n    cudaLaunchCooperativeKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_423cuLaunchCooperativeKernel = {"cuLaunchCooperativeKernel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_423cuLaunchCooperativeKernel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_422cuLaunchCooperativeKernel};
static PyObject *__pyx_pw_4cuda_4cuda_423cuLaunchCooperativeKernel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f = 0;
  unsigned int __pyx_v_gridDimX;
  unsigned int __pyx_v_gridDimY;
  unsigned int __pyx_v_gridDimZ;
  unsigned int __pyx_v_blockDimX;
  unsigned int __pyx_v_blockDimY;
  unsigned int __pyx_v_blockDimZ;
  unsigned int __pyx_v_sharedMemBytes;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  PyObject *__pyx_v_kernelParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunchCooperativeKernel (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_gridDimX_2,&__pyx_n_s_gridDimY_2,&__pyx_n_s_gridDimZ_2,&__pyx_n_s_blockDimX_2,&__pyx_n_s_blockDimY_2,&__pyx_n_s_blockDimZ_2,&__pyx_n_s_sharedMemBytes_2,&__pyx_n_s_hStream_2,&__pyx_n_s_kernelParams_2,0};
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gridDimX_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 1); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gridDimY_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 2); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gridDimZ_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 3); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockDimX_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 4); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockDimY_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 5); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockDimZ_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 6); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sharedMemBytes_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 7); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 8); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kernelParams_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, 9); __PYX_ERR(0, 21003, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLaunchCooperativeKernel") < 0)) __PYX_ERR(0, 21003, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_f = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_gridDimX = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_gridDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_gridDimY = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_gridDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_gridDimZ = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_gridDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_blockDimX = __Pyx_PyInt_As_unsigned_int(values[4]); if (unlikely((__pyx_v_blockDimX == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_blockDimY = __Pyx_PyInt_As_unsigned_int(values[5]); if (unlikely((__pyx_v_blockDimY == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_blockDimZ = __Pyx_PyInt_As_unsigned_int(values[6]); if (unlikely((__pyx_v_blockDimZ == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_sharedMemBytes = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_sharedMemBytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21003, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[8]);
    __pyx_v_kernelParams = values[9];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernel", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21003, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchCooperativeKernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "f", 0))) __PYX_ERR(0, 21003, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 21003, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_422cuLaunchCooperativeKernel(__pyx_self, __pyx_v_f, __pyx_v_gridDimX, __pyx_v_gridDimY, __pyx_v_gridDimZ, __pyx_v_blockDimX, __pyx_v_blockDimY, __pyx_v_blockDimZ, __pyx_v_sharedMemBytes, __pyx_v_hStream, __pyx_v_kernelParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_422cuLaunchCooperativeKernel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, unsigned int __pyx_v_gridDimX, unsigned int __pyx_v_gridDimY, unsigned int __pyx_v_gridDimZ, unsigned int __pyx_v_blockDimX, unsigned int __pyx_v_blockDimY, unsigned int __pyx_v_blockDimZ, unsigned int __pyx_v_sharedMemBytes, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, PyObject *__pyx_v_kernelParams) {
  PyObject *__pyx_v_ckernelParams = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__736)
  __Pyx_RefNannySetupContext("cuLaunchCooperativeKernel", 0);
  __Pyx_TraceCall("cuLaunchCooperativeKernel", __pyx_f[0], 21003, 0, __PYX_ERR(0, 21003, __pyx_L1_error));

  /* "cuda/cuda.pyx":21097
 *     cudaLaunchCooperativeKernel
 *     """
 *     ckernelParams = utils.HelperKernelParams(kernelParams)             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLaunchCooperativeKernel(f._ptr[0], gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, hStream._ptr[0], <void**><void_ptr>ckernelParams.ckernelParams)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams), __pyx_v_kernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ckernelParams = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21098
 *     """
 *     ckernelParams = utils.HelperKernelParams(kernelParams)
 *     err = ccuda.cuLaunchCooperativeKernel(f._ptr[0], gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, hStream._ptr[0], <void**><void_ptr>ckernelParams.ckernelParams)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ckernelParams, __pyx_n_s_ckernelParams); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 21098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuLaunchCooperativeKernel((__pyx_v_f->_ptr[0]), __pyx_v_gridDimX, __pyx_v_gridDimY, __pyx_v_gridDimZ, __pyx_v_blockDimX, __pyx_v_blockDimY, __pyx_v_blockDimZ, __pyx_v_sharedMemBytes, (__pyx_v_hStream->_ptr[0]), ((void **)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2))); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21098, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":21099
 *     ckernelParams = utils.HelperKernelParams(kernelParams)
 *     err = ccuda.cuLaunchCooperativeKernel(f._ptr[0], gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, hStream._ptr[0], <void**><void_ptr>ckernelParams.ckernelParams)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 21099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21003
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function where thread blocks can cooperate and synchronize as they execute.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuLaunchCooperativeKernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ckernelParams);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21102
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernelMultiDevice(launchParamsList : List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_425cuLaunchCooperativeKernelMultiDevice(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_424cuLaunchCooperativeKernelMultiDevice[] = "cuLaunchCooperativeKernelMultiDevice(launchParamsList: List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags)\n Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.\n\n    DeprecatedThis function is deprecated as of CUDA 11.3.\n\n    Invokes kernels as specified in the `launchParamsList` array where each\n    element of the array specifies all the parameters required to perform a\n    single kernel launch. These kernels can cooperate and synchronize as\n    they execute. The size of the array is specified by `numDevices`.\n\n    No two kernels can be launched on the same device. All the devices\n    targeted by this multi-device launch must be identical. All devices\n    must have a non-zero value for the device attribute\n    CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH.\n\n    All kernels launched must be identical with respect to the compiled\n    code. Note that any device, constant or managed variables present in\n    the module that owns the kernel launched on each device, are\n    independently instantiated on every device. It is the application's\n    responsiblity to ensure these variables are initialized and used\n    appropriately.\n\n    The size of the grids as specified in blocks, the size of the blocks\n    themselves and the amount of shared memory used by each thread block\n    must also match across all launched kernels.\n\n    The streams used to launch these kernels must have been created via\n    either cuStreamCreate or cuStreamCreateWithPriority. The NULL stream or\n    CU_STREAM_LEGACY or CU_STREAM_PER_THREAD cannot be used.\n\n    The total number of blocks launched per kernel cannot exceed the\n    maximum number of blocks per multiprocessor as returned by\n    cuOccupancyMaxActiveBlocksPerMultiprocessor (or\n    cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags) times the number\n    of multiprocessors as specified by the device attribute\n    CU_DEVICE_ATT""RIBUTE_MULTIPROCESSOR_COUNT. Since the total number of\n    blocks launched per device has to match across all devices, the maximum\n    number of blocks that can be launched per device will be limited by the\n    device with the least number of multiprocessors.\n\n    The kernels cannot make use of CUDA dynamic parallelism.\n\n    The CUDA_LAUNCH_PARAMS structure is defined as:\n    typedefstructCUDA_LAUNCH_PARAMS_st { CUfunctionfunction;\n    unsignedintgridDimX; unsignedintgridDimY; unsignedintgridDimZ;\n    unsignedintblockDimX; unsignedintblockDimY; unsignedintblockDimZ;\n    unsignedintsharedMemBytes; CUstreamhStream; void**kernelParams;\n    }CUDA_LAUNCH_PARAMS; where: CUDA_LAUNCH_PARAMS::function specifies the\n    kernel to be launched. All functions must be identical with respect to\n    the compiled code. CUDA_LAUNCH_PARAMS::gridDimX is the width of the\n    grid in blocks. This must match across all kernels launched.\n    CUDA_LAUNCH_PARAMS::gridDimY is the height of the grid in blocks. This\n    must match across all kernels launched. CUDA_LAUNCH_PARAMS::gridDimZ is\n    the depth of the grid in blocks. This must match across all kernels\n    launched. CUDA_LAUNCH_PARAMS::blockDimX is the X dimension of each\n    thread block. This must match across all kernels launched.\n    CUDA_LAUNCH_PARAMS::blockDimX is the Y dimension of each thread block.\n    This must match across all kernels launched.\n    CUDA_LAUNCH_PARAMS::blockDimZ is the Z dimension of each thread block.\n    This must match across all kernels launched.\n    CUDA_LAUNCH_PARAMS::sharedMemBytes is the dynamic shared-memory size\n    per thread block in bytes. This must match across all kernels launched.\n    CUDA_LAUNCH_PARAMS::hStream is the handle to the stream to perform the\n    launch in. This cannot be the NULL stream or CU_STREAM_LEGACY or\n    CU_STREAM_PER_THREAD. The CUDA context associated with this stream must\n    match that associated with CUDA_LAUNCH_PARAMS::function.\n    CU""DA_LAUNCH_PARAMS::kernelParams is an array of pointers to kernel\n    parameters. If CUDA_LAUNCH_PARAMS::function has N parameters, then\n    CUDA_LAUNCH_PARAMS::kernelParams needs to be an array of N pointers.\n    Each of CUDA_LAUNCH_PARAMS::kernelParams[0] through\n    CUDA_LAUNCH_PARAMS::kernelParams[N-1] must point to a region of memory\n    from which the actual kernel parameter will be copied. The number of\n    kernel parameters and their offsets and sizes do not need to be\n    specified as that information is retrieved directly from the kernel's\n    image.\n\n    By default, the kernel won't begin execution on any GPU until all prior\n    work in all the specified streams has completed. This behavior can be\n    overridden by specifying the flag\n    CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC. When this flag\n    is specified, each kernel will only wait for prior work in the stream\n    corresponding to that GPU to complete before it begins execution.\n\n    Similarly, by default, any subsequent work pushed in any of the\n    specified streams will not begin execution until the kernels on all\n    GPUs have completed. This behavior can be overridden by specifying the\n    flag CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC. When\n    this flag is specified, any subsequent work pushed in any of the\n    specified streams will only wait for the kernel launched on the GPU\n    corresponding to that stream to complete before it begins execution.\n\n    Calling cuLaunchCooperativeKernelMultiDevice() sets persistent function\n    state that is the same as function state set through cuLaunchKernel API\n    when called individually for each element in `launchParamsList`.\n\n    When kernels are launched via cuLaunchCooperativeKernelMultiDevice(),\n    the previous block shape, shared size and parameter info associated\n    with each CUDA_LAUNCH_PARAMS::function in `launchParamsList` is\n    overwritten.\n\n    Note that to use cuLaunchCoope""rativeKernelMultiDevice(), the kernels\n    must either have been compiled with toolchain version 3.2 or later so\n    that it will contain kernel parameter information, or have no kernel\n    parameters. If either of these conditions is not met, then\n    cuLaunchCooperativeKernelMultiDevice() will return\n    CUDA_ERROR_INVALID_IMAGE.\n\n    Parameters\n    ----------\n    launchParamsList : List[CUDA_LAUNCH_PARAMS]\n        List of launch parameters, one per device\n    numDevices : unsigned int\n        Size of the `launchParamsList` array\n    flags : unsigned int\n        Flags to control launch behavior\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_IMAGE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_LAUNCH_FAILED\n        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES\n        CUDA_ERROR_LAUNCH_TIMEOUT\n        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING\n        CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n    None\n        None\n\n    See Also\n    --------\n    cuCtxGetCacheConfig\n    cuCtxSetCacheConfig\n    cuFuncSetCacheConfig\n    cuFuncGetAttribute\n    cuLaunchCooperativeKernel\n    cudaLaunchCooperativeKernelMultiDevice\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_425cuLaunchCooperativeKernelMultiDevice = {"cuLaunchCooperativeKernelMultiDevice", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_425cuLaunchCooperativeKernelMultiDevice, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_424cuLaunchCooperativeKernelMultiDevice};
static PyObject *__pyx_pw_4cuda_4cuda_425cuLaunchCooperativeKernelMultiDevice(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_launchParamsList = 0;
  unsigned int __pyx_v_numDevices;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunchCooperativeKernelMultiDevice (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_launchParamsList,&__pyx_n_s_numDevices,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_launchParamsList)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDevices)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernelMultiDevice", 1, 3, 3, 1); __PYX_ERR(0, 21102, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernelMultiDevice", 1, 3, 3, 2); __PYX_ERR(0, 21102, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLaunchCooperativeKernelMultiDevice") < 0)) __PYX_ERR(0, 21102, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_launchParamsList = values[0];
    __pyx_v_numDevices = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_numDevices == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21102, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21102, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLaunchCooperativeKernelMultiDevice", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21102, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchCooperativeKernelMultiDevice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_424cuLaunchCooperativeKernelMultiDevice(__pyx_self, __pyx_v_launchParamsList, __pyx_v_numDevices, __pyx_v_flags);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_2generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":21247
 *     """
 *     launchParamsList = [] if launchParamsList is None else launchParamsList
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_32_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_32_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 21247, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_2generator17, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuLaunchCooperativeKernelMultiDe, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 21247, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchCooperativeKernelMultiDevice.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_2generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 21247, 0, __PYX_ERR(0, 21247, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 21247, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_launchParamsList)) { __Pyx_RaiseClosureNameError("launchParamsList"); __PYX_ERR(0, 21247, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_launchParamsList)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_launchParamsList)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_launchParamsList; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_launchParamsList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21247, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 21247, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21247, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 21247, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21247, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 21247, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21102
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernelMultiDevice(launchParamsList : List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_424cuLaunchCooperativeKernelMultiDevice(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_launchParamsList, unsigned int __pyx_v_numDevices, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS *__pyx_v_claunchParamsList;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_2generator17 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__737)
  __Pyx_RefNannySetupContext("cuLaunchCooperativeKernelMultiDevice", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 21102, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuLaunchCooperativeKernelMultiDevice", __pyx_f[0], 21102, 0, __PYX_ERR(0, 21102, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_launchParamsList = __pyx_v_launchParamsList;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_launchParamsList);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_launchParamsList);

  /* "cuda/cuda.pyx":21246
 *     cudaLaunchCooperativeKernelMultiDevice
 *     """
 *     launchParamsList = [] if launchParamsList is None else launchParamsList             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_launchParamsList == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_launchParamsList);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_launchParamsList;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_launchParamsList);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_launchParamsList, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21247
 *     """
 *     launchParamsList = [] if launchParamsList is None else launchParamsList
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 21247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":21248
 *     launchParamsList = [] if launchParamsList is None else launchParamsList
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 *     if len(launchParamsList) > 0:
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__738, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 21248, __pyx_L1_error)

    /* "cuda/cuda.pyx":21247
 *     """
 *     launchParamsList = [] if launchParamsList is None else launchParamsList
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 */
  }

  /* "cuda/cuda.pyx":21249
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL             # <<<<<<<<<<<<<<
 *     if len(launchParamsList) > 0:
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 */
  __pyx_v_claunchParamsList = NULL;

  /* "cuda/cuda.pyx":21250
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 *     if len(launchParamsList) > 0:             # <<<<<<<<<<<<<<
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 *         if claunchParamsList is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_launchParamsList;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":21251
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 *     if len(launchParamsList) > 0:
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))             # <<<<<<<<<<<<<<
 *         if claunchParamsList is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(launchParamsList)) + 'x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_launchParamsList;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21251, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_claunchParamsList = ((__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS))));

    /* "cuda/cuda.pyx":21252
 *     if len(launchParamsList) > 0:
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 *         if claunchParamsList is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(launchParamsList)) + 'x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS)))
 *         for idx in range(len(launchParamsList)):
 */
    __pyx_t_4 = ((__pyx_v_claunchParamsList == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":21253
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 *         if claunchParamsList is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(launchParamsList)) + 'x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS)))             # <<<<<<<<<<<<<<
 *         for idx in range(len(launchParamsList)):
 *             memcpy(&claunchParamsList[idx], (<CUDA_LAUNCH_PARAMS>launchParamsList[idx])._ptr, sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_launchParamsList;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 21253, __pyx_L1_error)

      /* "cuda/cuda.pyx":21252
 *     if len(launchParamsList) > 0:
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 *         if claunchParamsList is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(launchParamsList)) + 'x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS)))
 *         for idx in range(len(launchParamsList)):
 */
    }

    /* "cuda/cuda.pyx":21254
 *         if claunchParamsList is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(launchParamsList)) + 'x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS)))
 *         for idx in range(len(launchParamsList)):             # <<<<<<<<<<<<<<
 *             memcpy(&claunchParamsList[idx], (<CUDA_LAUNCH_PARAMS>launchParamsList[idx])._ptr, sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 * 
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_launchParamsList;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21254, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __pyx_t_5;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_idx = __pyx_t_8;

      /* "cuda/cuda.pyx":21255
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(launchParamsList)) + 'x' + str(sizeof(ccuda.CUDA_LAUNCH_PARAMS)))
 *         for idx in range(len(launchParamsList)):
 *             memcpy(&claunchParamsList[idx], (<CUDA_LAUNCH_PARAMS>launchParamsList[idx])._ptr, sizeof(ccuda.CUDA_LAUNCH_PARAMS))             # <<<<<<<<<<<<<<
 * 
 *     if numDevices > len(launchParamsList): raise RuntimeError("List is too small: " + str(len(launchParamsList)) + " < " + str(numDevices))
 */
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_launchParamsList, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21255, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      (void)(memcpy((&(__pyx_v_claunchParamsList[__pyx_v_idx])), ((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS *)__pyx_t_6)->__pyx_base._ptr, (sizeof(__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS))));
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }

    /* "cuda/cuda.pyx":21250
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 *     if len(launchParamsList) > 0:             # <<<<<<<<<<<<<<
 *         claunchParamsList = <ccuda.CUDA_LAUNCH_PARAMS*> calloc(len(launchParamsList), sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 *         if claunchParamsList is NULL:
 */
  }

  /* "cuda/cuda.pyx":21257
 *             memcpy(&claunchParamsList[idx], (<CUDA_LAUNCH_PARAMS>launchParamsList[idx])._ptr, sizeof(ccuda.CUDA_LAUNCH_PARAMS))
 * 
 *     if numDevices > len(launchParamsList): raise RuntimeError("List is too small: " + str(len(launchParamsList)) + " < " + str(numDevices))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLaunchCooperativeKernelMultiDevice((<CUDA_LAUNCH_PARAMS>launchParamsList[0])._ptr if len(launchParamsList) == 1 else claunchParamsList, numDevices, flags)
 *     if claunchParamsList is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_launchParamsList;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDevices > __pyx_t_5) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_launchParamsList;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_numDevices); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 21257, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":21258
 * 
 *     if numDevices > len(launchParamsList): raise RuntimeError("List is too small: " + str(len(launchParamsList)) + " < " + str(numDevices))
 *     err = ccuda.cuLaunchCooperativeKernelMultiDevice((<CUDA_LAUNCH_PARAMS>launchParamsList[0])._ptr if len(launchParamsList) == 1 else claunchParamsList, numDevices, flags)             # <<<<<<<<<<<<<<
 *     if claunchParamsList is not NULL:
 *         free(claunchParamsList)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_launchParamsList;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_launchParamsList, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS *)__pyx_t_1)->__pyx_base._ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_claunchParamsList;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuLaunchCooperativeKernelMultiDevice(__pyx_t_9, __pyx_v_numDevices, __pyx_v_flags); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21258, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":21259
 *     if numDevices > len(launchParamsList): raise RuntimeError("List is too small: " + str(len(launchParamsList)) + " < " + str(numDevices))
 *     err = ccuda.cuLaunchCooperativeKernelMultiDevice((<CUDA_LAUNCH_PARAMS>launchParamsList[0])._ptr if len(launchParamsList) == 1 else claunchParamsList, numDevices, flags)
 *     if claunchParamsList is not NULL:             # <<<<<<<<<<<<<<
 *         free(claunchParamsList)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = ((__pyx_v_claunchParamsList != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":21260
 *     err = ccuda.cuLaunchCooperativeKernelMultiDevice((<CUDA_LAUNCH_PARAMS>launchParamsList[0])._ptr if len(launchParamsList) == 1 else claunchParamsList, numDevices, flags)
 *     if claunchParamsList is not NULL:
 *         free(claunchParamsList)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_claunchParamsList);

    /* "cuda/cuda.pyx":21259
 *     if numDevices > len(launchParamsList): raise RuntimeError("List is too small: " + str(len(launchParamsList)) + " < " + str(numDevices))
 *     err = ccuda.cuLaunchCooperativeKernelMultiDevice((<CUDA_LAUNCH_PARAMS>launchParamsList[0])._ptr if len(launchParamsList) == 1 else claunchParamsList, numDevices, flags)
 *     if claunchParamsList is not NULL:             # <<<<<<<<<<<<<<
 *         free(claunchParamsList)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":21261
 *     if claunchParamsList is not NULL:
 *         free(claunchParamsList)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21102
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernelMultiDevice(launchParamsList : List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuLaunchCooperativeKernelMultiDevice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_36cuLaunchCooperativeKernelMultiDevice_2generator17);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21264
 * 
 * @cython.embedsignature(True)
 * def cuLaunchHostFunc(hStream not None : CUstream, fn not None : CUhostFn, userData):             # <<<<<<<<<<<<<<
 *     """ Enqueues a host function call in a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_427cuLaunchHostFunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_426cuLaunchHostFunc[] = "cuLaunchHostFunc(CUstream hStream: CUstream, CUhostFn fn: CUhostFn, userData)\n Enqueues a host function call in a stream.\n\n    Enqueues a host function to run in a stream. The function will be\n    called after currently enqueued work and will block work added after\n    it.\n\n    The host function must not make any CUDA API calls. Attempting to use a\n    CUDA API may result in CUDA_ERROR_NOT_PERMITTED, but this is not\n    required. The host function must not perform any synchronization that\n    may depend on outstanding CUDA work not mandated to run earlier. Host\n    functions without a mandated order (such as in independent streams)\n    execute in undefined order and may be serialized.\n\n    For the purposes of Unified Memory, execution makes a number of\n    guarantees:   The stream is considered idle for the duration of the\n    function's execution. Thus, for example, the function may always use\n    memory attached to the stream it was enqueued in.    The start of\n    execution of the function has the same effect as synchronizing an event\n    recorded in the same stream immediately prior to the function. It thus\n    synchronizes streams which have been \"joined\" prior to the function.\n    Adding device work to any stream does not have the effect of making the\n    stream active until all preceding host functions and stream callbacks\n    have executed. Thus, for example, a function might use global attached\n    memory even if work has been added to another stream, if the work has\n    been ordered behind the function call with an event.    Completion of\n    the function does not cause a stream to become active except as\n    described above. The stream will remain idle if no device work follows\n    the function, and will remain idle across consecutive host functions or\n    stream callbacks without device work in between. Thus, for example,\n    stream synchronization can be done by signaling from a host function at\n    the end of the stream"".\n\n    Note that, in contrast to cuStreamAddCallback, the function will not be\n    called in the event of an error in the CUDA context.\n\n    Parameters\n    ----------\n    hStream : CUstream\n        Stream to enqueue function call in\n    fn : CUhostFn\n        The function to call once preceding stream operations are complete\n    userData : Any\n        User-specified data to be passed to the function\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_SUPPORTED\n    None\n        None\n\n    See Also\n    --------\n    cuStreamCreate\n    cuStreamQuery\n    cuStreamSynchronize\n    cuStreamWaitEvent\n    cuStreamDestroy\n    cuMemAllocManaged\n    cuStreamAttachMemAsync\n    cuStreamAddCallback\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_427cuLaunchHostFunc = {"cuLaunchHostFunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_427cuLaunchHostFunc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_426cuLaunchHostFunc};
static PyObject *__pyx_pw_4cuda_4cuda_427cuLaunchHostFunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_fn = 0;
  PyObject *__pyx_v_userData = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunchHostFunc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hStream_2,&__pyx_n_s_fn_2,&__pyx_n_s_userData_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fn_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchHostFunc", 1, 3, 3, 1); __PYX_ERR(0, 21264, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_userData_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchHostFunc", 1, 3, 3, 2); __PYX_ERR(0, 21264, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLaunchHostFunc") < 0)) __PYX_ERR(0, 21264, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[0]);
    __pyx_v_fn = ((struct __pyx_obj_4cuda_4cuda_CUhostFn *)values[1]);
    __pyx_v_userData = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLaunchHostFunc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21264, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchHostFunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 21264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fn), __pyx_ptype_4cuda_4cuda_CUhostFn, 0, "fn", 0))) __PYX_ERR(0, 21264, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_426cuLaunchHostFunc(__pyx_self, __pyx_v_hStream, __pyx_v_fn, __pyx_v_userData);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_426cuLaunchHostFunc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream, struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_fn, PyObject *__pyx_v_userData) {
  PyObject *__pyx_v_cuserData = NULL;
  void *__pyx_v_cuserData_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__739)
  __Pyx_RefNannySetupContext("cuLaunchHostFunc", 0);
  __Pyx_TraceCall("cuLaunchHostFunc", __pyx_f[0], 21264, 0, __PYX_ERR(0, 21264, __pyx_L1_error));

  /* "cuda/cuda.pyx":21332
 *     cuStreamAddCallback
 *     """
 *     cuserData = utils.HelperInputVoidPtr(userData)             # <<<<<<<<<<<<<<
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr
 *     err = ccuda.cuLaunchHostFunc(hStream._ptr[0], fn._ptr[0], cuserData_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_userData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cuserData = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21333
 *     """
 *     cuserData = utils.HelperInputVoidPtr(userData)
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuLaunchHostFunc(hStream._ptr[0], fn._ptr[0], cuserData_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cuserData, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 21333, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cuserData_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":21334
 *     cuserData = utils.HelperInputVoidPtr(userData)
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr
 *     err = ccuda.cuLaunchHostFunc(hStream._ptr[0], fn._ptr[0], cuserData_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuLaunchHostFunc((__pyx_v_hStream->_ptr[0]), (__pyx_v_fn->_ptr[0]), __pyx_v_cuserData_ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21334, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":21335
 *     cdef void* cuserData_ptr = <void*><void_ptr>cuserData.cptr
 *     err = ccuda.cuLaunchHostFunc(hStream._ptr[0], fn._ptr[0], cuserData_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 21335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21264
 * 
 * @cython.embedsignature(True)
 * def cuLaunchHostFunc(hStream not None : CUstream, fn not None : CUhostFn, userData):             # <<<<<<<<<<<<<<
 *     """ Enqueues a host function call in a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuLaunchHostFunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cuserData);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21338
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetBlockShape(hfunc not None : CUfunction, int x, int y, int z):             # <<<<<<<<<<<<<<
 *     """ Sets the block-dimensions for the function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_429cuFuncSetBlockShape(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_428cuFuncSetBlockShape[] = "cuFuncSetBlockShape(CUfunction hfunc: CUfunction, int x, int y, int z)\n Sets the block-dimensions for the function.\n\n    Deprecated\n\n    Specifies the `x`, `y`, and `z` dimensions of the thread blocks that\n    are created when the kernel given by `hfunc` is launched.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to specify dimensions of\n    x : int\n        X dimension\n    y : int\n        Y dimension\n    z : int\n        Z dimension\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetSharedSize\n    cuFuncSetCacheConfig\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSeti\n    cuParamSetf\n    cuParamSetv\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_429cuFuncSetBlockShape = {"cuFuncSetBlockShape", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_429cuFuncSetBlockShape, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_428cuFuncSetBlockShape};
static PyObject *__pyx_pw_4cuda_4cuda_429cuFuncSetBlockShape(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  int __pyx_v_x;
  int __pyx_v_y;
  int __pyx_v_z;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncSetBlockShape (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_z,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetBlockShape", 1, 4, 4, 1); __PYX_ERR(0, 21338, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetBlockShape", 1, 4, 4, 2); __PYX_ERR(0, 21338, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetBlockShape", 1, 4, 4, 3); __PYX_ERR(0, 21338, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFuncSetBlockShape") < 0)) __PYX_ERR(0, 21338, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_x = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21338, __pyx_L3_error)
    __pyx_v_y = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_y == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21338, __pyx_L3_error)
    __pyx_v_z = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_z == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21338, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFuncSetBlockShape", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21338, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetBlockShape", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21338, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_428cuFuncSetBlockShape(__pyx_self, __pyx_v_hfunc, __pyx_v_x, __pyx_v_y, __pyx_v_z);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_428cuFuncSetBlockShape(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_x, int __pyx_v_y, int __pyx_v_z) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__740)
  __Pyx_RefNannySetupContext("cuFuncSetBlockShape", 0);
  __Pyx_TraceCall("cuFuncSetBlockShape", __pyx_f[0], 21338, 0, __PYX_ERR(0, 21338, __pyx_L1_error));

  /* "cuda/cuda.pyx":21383
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuFuncSetBlockShape(hfunc._ptr[0], x, y, z)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuFuncSetBlockShape((__pyx_v_hfunc->_ptr[0]), __pyx_v_x, __pyx_v_y, __pyx_v_z); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21383, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21384
 *     """
 *     err = ccuda.cuFuncSetBlockShape(hfunc._ptr[0], x, y, z)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21338
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetBlockShape(hfunc not None : CUfunction, int x, int y, int z):             # <<<<<<<<<<<<<<
 *     """ Sets the block-dimensions for the function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetBlockShape", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21387
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the dynamic shared-memory size for the function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_431cuFuncSetSharedSize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_430cuFuncSetSharedSize[] = "cuFuncSetSharedSize(CUfunction hfunc: CUfunction, unsigned int numbytes)\n Sets the dynamic shared-memory size for the function.\n\n    Deprecated\n\n    Sets through `numbytes` the amount of dynamic shared memory that will\n    be available to each thread block when the kernel given by `hfunc` is\n    launched.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to specify dynamic shared-memory size for\n    numbytes : unsigned int\n        Dynamic shared-memory size per thread in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetCacheConfig\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSeti\n    cuParamSetf\n    cuParamSetv\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_431cuFuncSetSharedSize = {"cuFuncSetSharedSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_431cuFuncSetSharedSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_430cuFuncSetSharedSize};
static PyObject *__pyx_pw_4cuda_4cuda_431cuFuncSetSharedSize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  unsigned int __pyx_v_numbytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuFuncSetSharedSize (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_numbytes,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numbytes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuFuncSetSharedSize", 1, 2, 2, 1); __PYX_ERR(0, 21387, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuFuncSetSharedSize") < 0)) __PYX_ERR(0, 21387, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_numbytes = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_numbytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21387, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuFuncSetSharedSize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21387, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetSharedSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21387, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_430cuFuncSetSharedSize(__pyx_self, __pyx_v_hfunc, __pyx_v_numbytes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_430cuFuncSetSharedSize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, unsigned int __pyx_v_numbytes) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__741)
  __Pyx_RefNannySetupContext("cuFuncSetSharedSize", 0);
  __Pyx_TraceCall("cuFuncSetSharedSize", __pyx_f[0], 21387, 0, __PYX_ERR(0, 21387, __pyx_L1_error));

  /* "cuda/cuda.pyx":21429
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuFuncSetSharedSize(hfunc._ptr[0], numbytes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuFuncSetSharedSize((__pyx_v_hfunc->_ptr[0]), __pyx_v_numbytes); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21429, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21430
 *     """
 *     err = ccuda.cuFuncSetSharedSize(hfunc._ptr[0], numbytes)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21387
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the dynamic shared-memory size for the function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuFuncSetSharedSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21433
 * 
 * @cython.embedsignature(True)
 * def cuParamSetSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the parameter size for the function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_433cuParamSetSize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_432cuParamSetSize[] = "cuParamSetSize(CUfunction hfunc: CUfunction, unsigned int numbytes)\n Sets the parameter size for the function.\n\n    Deprecated\n\n    Sets through `numbytes` the total size in bytes needed by the function\n    parameters of the kernel corresponding to `hfunc`.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to set parameter size for\n    numbytes : unsigned int\n        Size of parameter list in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetf\n    cuParamSeti\n    cuParamSetv\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_433cuParamSetSize = {"cuParamSetSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_433cuParamSetSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_432cuParamSetSize};
static PyObject *__pyx_pw_4cuda_4cuda_433cuParamSetSize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  unsigned int __pyx_v_numbytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuParamSetSize (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_numbytes,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numbytes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetSize", 1, 2, 2, 1); __PYX_ERR(0, 21433, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuParamSetSize") < 0)) __PYX_ERR(0, 21433, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_numbytes = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_numbytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21433, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuParamSetSize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21433, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuParamSetSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21433, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_432cuParamSetSize(__pyx_self, __pyx_v_hfunc, __pyx_v_numbytes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_432cuParamSetSize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, unsigned int __pyx_v_numbytes) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__742)
  __Pyx_RefNannySetupContext("cuParamSetSize", 0);
  __Pyx_TraceCall("cuParamSetSize", __pyx_f[0], 21433, 0, __PYX_ERR(0, 21433, __pyx_L1_error));

  /* "cuda/cuda.pyx":21472
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuParamSetSize(hfunc._ptr[0], numbytes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuParamSetSize((__pyx_v_hfunc->_ptr[0]), __pyx_v_numbytes); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21472, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21473
 *     """
 *     err = ccuda.cuParamSetSize(hfunc._ptr[0], numbytes)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21433
 * 
 * @cython.embedsignature(True)
 * def cuParamSetSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the parameter size for the function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuParamSetSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21476
 * 
 * @cython.embedsignature(True)
 * def cuParamSeti(hfunc not None : CUfunction, int offset, unsigned int value):             # <<<<<<<<<<<<<<
 *     """ Adds an integer parameter to the function's argument list.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_435cuParamSeti(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_434cuParamSeti[] = "cuParamSeti(CUfunction hfunc: CUfunction, int offset, unsigned int value)\n Adds an integer parameter to the function's argument list.\n\n    Deprecated\n\n    Sets an integer parameter that will be specified the next time the\n    kernel corresponding to `hfunc` will be invoked. `offset` is a byte\n    offset.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to add parameter to\n    offset : int\n        Offset to add parameter to argument list\n    value : unsigned int\n        Value of parameter\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSetf\n    cuParamSetv\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_435cuParamSeti = {"cuParamSeti", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_435cuParamSeti, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_434cuParamSeti};
static PyObject *__pyx_pw_4cuda_4cuda_435cuParamSeti(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  int __pyx_v_offset;
  unsigned int __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuParamSeti (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_offset_2,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSeti", 1, 3, 3, 1); __PYX_ERR(0, 21476, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSeti", 1, 3, 3, 2); __PYX_ERR(0, 21476, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuParamSeti") < 0)) __PYX_ERR(0, 21476, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_offset = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21476, __pyx_L3_error)
    __pyx_v_value = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_value == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21476, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuParamSeti", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21476, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuParamSeti", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21476, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_434cuParamSeti(__pyx_self, __pyx_v_hfunc, __pyx_v_offset, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_434cuParamSeti(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_offset, unsigned int __pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__743)
  __Pyx_RefNannySetupContext("cuParamSeti", 0);
  __Pyx_TraceCall("cuParamSeti", __pyx_f[0], 21476, 0, __PYX_ERR(0, 21476, __pyx_L1_error));

  /* "cuda/cuda.pyx":21518
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuParamSeti(hfunc._ptr[0], offset, value)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuParamSeti((__pyx_v_hfunc->_ptr[0]), __pyx_v_offset, __pyx_v_value); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21518, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21519
 *     """
 *     err = ccuda.cuParamSeti(hfunc._ptr[0], offset, value)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21476
 * 
 * @cython.embedsignature(True)
 * def cuParamSeti(hfunc not None : CUfunction, int offset, unsigned int value):             # <<<<<<<<<<<<<<
 *     """ Adds an integer parameter to the function's argument list.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuParamSeti", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21522
 * 
 * @cython.embedsignature(True)
 * def cuParamSetf(hfunc not None : CUfunction, int offset, float value):             # <<<<<<<<<<<<<<
 *     """ Adds a floating-point parameter to the function's argument list.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_437cuParamSetf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_436cuParamSetf[] = "cuParamSetf(CUfunction hfunc: CUfunction, int offset, float value)\n Adds a floating-point parameter to the function's argument list.\n\n    Deprecated\n\n    Sets a floating-point parameter that will be specified the next time\n    the kernel corresponding to `hfunc` will be invoked. `offset` is a byte\n    offset.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to add parameter to\n    offset : int\n        Offset to add parameter to argument list\n    value : float\n        Value of parameter\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSeti\n    cuParamSetv\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_437cuParamSetf = {"cuParamSetf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_437cuParamSetf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_436cuParamSetf};
static PyObject *__pyx_pw_4cuda_4cuda_437cuParamSetf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  int __pyx_v_offset;
  float __pyx_v_value;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuParamSetf (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_offset_2,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetf", 1, 3, 3, 1); __PYX_ERR(0, 21522, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetf", 1, 3, 3, 2); __PYX_ERR(0, 21522, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuParamSetf") < 0)) __PYX_ERR(0, 21522, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_offset = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21522, __pyx_L3_error)
    __pyx_v_value = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 21522, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuParamSetf", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21522, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuParamSetf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21522, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_436cuParamSetf(__pyx_self, __pyx_v_hfunc, __pyx_v_offset, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_436cuParamSetf(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_offset, float __pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__744)
  __Pyx_RefNannySetupContext("cuParamSetf", 0);
  __Pyx_TraceCall("cuParamSetf", __pyx_f[0], 21522, 0, __PYX_ERR(0, 21522, __pyx_L1_error));

  /* "cuda/cuda.pyx":21564
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuParamSetf(hfunc._ptr[0], offset, value)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuParamSetf((__pyx_v_hfunc->_ptr[0]), __pyx_v_offset, __pyx_v_value); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21564, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21565
 *     """
 *     err = ccuda.cuParamSetf(hfunc._ptr[0], offset, value)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21522
 * 
 * @cython.embedsignature(True)
 * def cuParamSetf(hfunc not None : CUfunction, int offset, float value):             # <<<<<<<<<<<<<<
 *     """ Adds a floating-point parameter to the function's argument list.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuParamSetf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21568
 * 
 * @cython.embedsignature(True)
 * def cuParamSetv(hfunc not None : CUfunction, int offset, ptr, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Adds arbitrary data to the function's argument list.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_439cuParamSetv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_438cuParamSetv[] = "cuParamSetv(CUfunction hfunc: CUfunction, int offset, ptr, unsigned int numbytes)\n Adds arbitrary data to the function's argument list.\n\n    Deprecated\n\n    Copies an arbitrary amount of data (specified in `numbytes`) from `ptr`\n    into the parameter space of the kernel corresponding to `hfunc`.\n    `offset` is a byte offset.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to add data to\n    offset : int\n        Offset to add data to argument list\n    ptr : Any\n        Pointer to arbitrary data\n    numbytes : unsigned int\n        Size of data to copy in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSetf\n    cuParamSeti\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_439cuParamSetv = {"cuParamSetv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_439cuParamSetv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_438cuParamSetv};
static PyObject *__pyx_pw_4cuda_4cuda_439cuParamSetv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  int __pyx_v_offset;
  PyObject *__pyx_v_ptr = 0;
  unsigned int __pyx_v_numbytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuParamSetv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_offset_2,&__pyx_n_s_ptr_2,&__pyx_n_s_numbytes,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetv", 1, 4, 4, 1); __PYX_ERR(0, 21568, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetv", 1, 4, 4, 2); __PYX_ERR(0, 21568, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numbytes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetv", 1, 4, 4, 3); __PYX_ERR(0, 21568, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuParamSetv") < 0)) __PYX_ERR(0, 21568, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_offset = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21568, __pyx_L3_error)
    __pyx_v_ptr = values[2];
    __pyx_v_numbytes = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_numbytes == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21568, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuParamSetv", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21568, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuParamSetv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21568, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_438cuParamSetv(__pyx_self, __pyx_v_hfunc, __pyx_v_offset, __pyx_v_ptr, __pyx_v_numbytes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_438cuParamSetv(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_offset, PyObject *__pyx_v_ptr, unsigned int __pyx_v_numbytes) {
  PyObject *__pyx_v_cptr = NULL;
  void *__pyx_v_cptr_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__745)
  __Pyx_RefNannySetupContext("cuParamSetv", 0);
  __Pyx_TraceCall("cuParamSetv", __pyx_f[0], 21568, 0, __PYX_ERR(0, 21568, __pyx_L1_error));

  /* "cuda/cuda.pyx":21612
 *     cuLaunchKernel
 *     """
 *     cptr = utils.HelperInputVoidPtr(ptr)             # <<<<<<<<<<<<<<
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 *     err = ccuda.cuParamSetv(hfunc._ptr[0], offset, cptr_ptr, numbytes)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cptr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21613
 *     """
 *     cptr = utils.HelperInputVoidPtr(ptr)
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuParamSetv(hfunc._ptr[0], offset, cptr_ptr, numbytes)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cptr, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 21613, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cptr_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":21614
 *     cptr = utils.HelperInputVoidPtr(ptr)
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 *     err = ccuda.cuParamSetv(hfunc._ptr[0], offset, cptr_ptr, numbytes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuParamSetv((__pyx_v_hfunc->_ptr[0]), __pyx_v_offset, __pyx_v_cptr_ptr, __pyx_v_numbytes); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21614, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":21615
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 *     err = ccuda.cuParamSetv(hfunc._ptr[0], offset, cptr_ptr, numbytes)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 21615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21568
 * 
 * @cython.embedsignature(True)
 * def cuParamSetv(hfunc not None : CUfunction, int offset, ptr, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Adds arbitrary data to the function's argument list.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuParamSetv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21618
 * 
 * @cython.embedsignature(True)
 * def cuLaunch(f not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_441cuLaunch(PyObject *__pyx_self, PyObject *__pyx_v_f); /*proto*/
static char __pyx_doc_4cuda_4cuda_440cuLaunch[] = "cuLaunch(CUfunction f: CUfunction)\n Launches a CUDA function.\n\n    Deprecated\n\n    Invokes the kernel `f` on a 1 x 1 x 1 grid of blocks. The block\n    contains the number of threads specified by a previous call to\n    cuFuncSetBlockShape().\n\n    The block shape, dynamic shared memory size, and parameter information\n    must be set using cuFuncSetBlockShape(), cuFuncSetSharedSize(),\n    cuParamSetSize(), cuParamSeti(), cuParamSetf(), and cuParamSetv() prior\n    to calling this function.\n\n    Launching a function via cuLaunchKernel() invalidates the function's\n    block shape, dynamic shared memory size, and parameter information.\n    After launching via cuLaunchKernel, this state must be re-initialized\n    prior to calling this function. Failure to do so results in undefined\n    behavior.\n\n    Parameters\n    ----------\n    f : CUfunction\n        Kernel to launch\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_LAUNCH_FAILED\n        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES\n        CUDA_ERROR_LAUNCH_TIMEOUT\n        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSetf\n    cuParamSeti\n    cuParamSetv\n    cuLaunchGrid\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_441cuLaunch = {"cuLaunch", (PyCFunction)__pyx_pw_4cuda_4cuda_441cuLaunch, METH_O, __pyx_doc_4cuda_4cuda_440cuLaunch};
static PyObject *__pyx_pw_4cuda_4cuda_441cuLaunch(PyObject *__pyx_self, PyObject *__pyx_v_f) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunch (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "f", 0))) __PYX_ERR(0, 21618, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_440cuLaunch(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUfunction *)__pyx_v_f));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_440cuLaunch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__746)
  __Pyx_RefNannySetupContext("cuLaunch", 0);
  __Pyx_TraceCall("cuLaunch", __pyx_f[0], 21618, 0, __PYX_ERR(0, 21618, __pyx_L1_error));

  /* "cuda/cuda.pyx":21672
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuLaunch(f._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuLaunch((__pyx_v_f->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21672, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21673
 *     """
 *     err = ccuda.cuLaunch(f._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21618
 * 
 * @cython.embedsignature(True)
 * def cuLaunch(f not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuLaunch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21676
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGrid(f not None : CUfunction, int grid_width, int grid_height):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_443cuLaunchGrid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_442cuLaunchGrid[] = "cuLaunchGrid(CUfunction f: CUfunction, int grid_width, int grid_height)\n Launches a CUDA function.\n\n    Deprecated\n\n    Invokes the kernel `f` on a `grid_width` x `grid_height` grid of\n    blocks. Each block contains the number of threads specified by a\n    previous call to cuFuncSetBlockShape().\n\n    The block shape, dynamic shared memory size, and parameter information\n    must be set using cuFuncSetBlockShape(), cuFuncSetSharedSize(),\n    cuParamSetSize(), cuParamSeti(), cuParamSetf(), and cuParamSetv() prior\n    to calling this function.\n\n    Launching a function via cuLaunchKernel() invalidates the function's\n    block shape, dynamic shared memory size, and parameter information.\n    After launching via cuLaunchKernel, this state must be re-initialized\n    prior to calling this function. Failure to do so results in undefined\n    behavior.\n\n    Parameters\n    ----------\n    f : CUfunction\n        Kernel to launch\n    grid_width : int\n        Width of grid in blocks\n    grid_height : int\n        Height of grid in blocks\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_LAUNCH_FAILED\n        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES\n        CUDA_ERROR_LAUNCH_TIMEOUT\n        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSetf\n    cuParamSeti\n    cuParamSetv\n    cuLaunch\n    cuLaunchGridAsync\n    cuLaunchKernel\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_443cuLaunchGrid = {"cuLaunchGrid", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_443cuLaunchGrid, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_442cuLaunchGrid};
static PyObject *__pyx_pw_4cuda_4cuda_443cuLaunchGrid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f = 0;
  int __pyx_v_grid_width;
  int __pyx_v_grid_height;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunchGrid (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_grid_width,&__pyx_n_s_grid_height,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_width)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchGrid", 1, 3, 3, 1); __PYX_ERR(0, 21676, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_height)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchGrid", 1, 3, 3, 2); __PYX_ERR(0, 21676, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLaunchGrid") < 0)) __PYX_ERR(0, 21676, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_f = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_grid_width = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_grid_width == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21676, __pyx_L3_error)
    __pyx_v_grid_height = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_grid_height == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21676, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLaunchGrid", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21676, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchGrid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "f", 0))) __PYX_ERR(0, 21676, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_442cuLaunchGrid(__pyx_self, __pyx_v_f, __pyx_v_grid_width, __pyx_v_grid_height);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_442cuLaunchGrid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, int __pyx_v_grid_width, int __pyx_v_grid_height) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__747)
  __Pyx_RefNannySetupContext("cuLaunchGrid", 0);
  __Pyx_TraceCall("cuLaunchGrid", __pyx_f[0], 21676, 0, __PYX_ERR(0, 21676, __pyx_L1_error));

  /* "cuda/cuda.pyx":21734
 *     cuLaunchKernel
 *     """
 *     err = ccuda.cuLaunchGrid(f._ptr[0], grid_width, grid_height)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuLaunchGrid((__pyx_v_f->_ptr[0]), __pyx_v_grid_width, __pyx_v_grid_height); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21734, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21735
 *     """
 *     err = ccuda.cuLaunchGrid(f._ptr[0], grid_width, grid_height)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21676
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGrid(f not None : CUfunction, int grid_width, int grid_height):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuLaunchGrid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21738
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGridAsync(f not None : CUfunction, int grid_width, int grid_height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_445cuLaunchGridAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_444cuLaunchGridAsync[] = "cuLaunchGridAsync(CUfunction f: CUfunction, int grid_width, int grid_height, CUstream hStream: CUstream)\n Launches a CUDA function.\n\n    Deprecated\n\n    Invokes the kernel `f` on a `grid_width` x `grid_height` grid of\n    blocks. Each block contains the number of threads specified by a\n    previous call to cuFuncSetBlockShape().\n\n    The block shape, dynamic shared memory size, and parameter information\n    must be set using cuFuncSetBlockShape(), cuFuncSetSharedSize(),\n    cuParamSetSize(), cuParamSeti(), cuParamSetf(), and cuParamSetv() prior\n    to calling this function.\n\n    Launching a function via cuLaunchKernel() invalidates the function's\n    block shape, dynamic shared memory size, and parameter information.\n    After launching via cuLaunchKernel, this state must be re-initialized\n    prior to calling this function. Failure to do so results in undefined\n    behavior.\n\n    Parameters\n    ----------\n    f : CUfunction\n        Kernel to launch\n    grid_width : int\n        Width of grid in blocks\n    grid_height : int\n        Height of grid in blocks\n    hStream : CUstream\n        Stream identifier\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_LAUNCH_FAILED\n        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES\n        CUDA_ERROR_LAUNCH_TIMEOUT\n        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING\n        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED\n    None\n        None\n\n    See Also\n    --------\n    cuFuncSetBlockShape\n    cuFuncSetSharedSize\n    cuFuncGetAttribute\n    cuParamSetSize\n    cuParamSetf\n    cuParamSeti\n    cuParamSetv\n    cuLaunch\n    cuLaunchGrid\n    cuLaunchKernel\n\n    Notes\n    -----\n    In certain cases where cubins are created with no ABI (i.e., using `ptxas` `None`abi-compile `no`), this function may seri""alize kernel launches. The CUDA driver retains asynchronous behavior by growing the per-thread stack as needed per launch and not shrinking it afterwards.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_445cuLaunchGridAsync = {"cuLaunchGridAsync", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_445cuLaunchGridAsync, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_444cuLaunchGridAsync};
static PyObject *__pyx_pw_4cuda_4cuda_445cuLaunchGridAsync(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f = 0;
  int __pyx_v_grid_width;
  int __pyx_v_grid_height;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuLaunchGridAsync (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_grid_width,&__pyx_n_s_grid_height,&__pyx_n_s_hStream_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_width)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchGridAsync", 1, 4, 4, 1); __PYX_ERR(0, 21738, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_height)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchGridAsync", 1, 4, 4, 2); __PYX_ERR(0, 21738, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuLaunchGridAsync", 1, 4, 4, 3); __PYX_ERR(0, 21738, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuLaunchGridAsync") < 0)) __PYX_ERR(0, 21738, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_f = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_grid_width = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_grid_width == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21738, __pyx_L3_error)
    __pyx_v_grid_height = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_grid_height == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21738, __pyx_L3_error)
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuLaunchGridAsync", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21738, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuLaunchGridAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "f", 0))) __PYX_ERR(0, 21738, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 21738, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_444cuLaunchGridAsync(__pyx_self, __pyx_v_f, __pyx_v_grid_width, __pyx_v_grid_height, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_444cuLaunchGridAsync(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_f, int __pyx_v_grid_width, int __pyx_v_grid_height, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__748)
  __Pyx_RefNannySetupContext("cuLaunchGridAsync", 0);
  __Pyx_TraceCall("cuLaunchGridAsync", __pyx_f[0], 21738, 0, __PYX_ERR(0, 21738, __pyx_L1_error));

  /* "cuda/cuda.pyx":21804
 * 
 *     """
 *     err = ccuda.cuLaunchGridAsync(f._ptr[0], grid_width, grid_height, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuLaunchGridAsync((__pyx_v_f->_ptr[0]), __pyx_v_grid_width, __pyx_v_grid_height, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21804, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21805
 *     """
 *     err = ccuda.cuLaunchGridAsync(f._ptr[0], grid_width, grid_height, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21738
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGridAsync(f not None : CUfunction, int grid_width, int grid_height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuLaunchGridAsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21808
 * 
 * @cython.embedsignature(True)
 * def cuParamSetTexRef(hfunc not None : CUfunction, int texunit, hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Adds a texture-reference to the function's argument list.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_447cuParamSetTexRef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_446cuParamSetTexRef[] = "cuParamSetTexRef(CUfunction hfunc: CUfunction, int texunit, CUtexref hTexRef: CUtexref)\n Adds a texture-reference to the function's argument list.\n\n    Deprecated\n\n    Makes the CUDA array or linear memory bound to the texture reference\n    `hTexRef` available to a device program as a texture. In this version\n    of CUDA, the texture-reference must be obtained via cuModuleGetTexRef()\n    and the `texunit` parameter must be set to CU_PARAM_TR_DEFAULT.\n\n    Parameters\n    ----------\n    hfunc : CUfunction\n        Kernel to add texture-reference to\n    texunit : int\n        Texture unit (must be CU_PARAM_TR_DEFAULT)\n    hTexRef : CUtexref\n        Texture-reference to add to argument list\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_447cuParamSetTexRef = {"cuParamSetTexRef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_447cuParamSetTexRef, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_446cuParamSetTexRef};
static PyObject *__pyx_pw_4cuda_4cuda_447cuParamSetTexRef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc = 0;
  int __pyx_v_texunit;
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuParamSetTexRef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hfunc,&__pyx_n_s_texunit,&__pyx_n_s_hTexRef,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hfunc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_texunit)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetTexRef", 1, 3, 3, 1); __PYX_ERR(0, 21808, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuParamSetTexRef", 1, 3, 3, 2); __PYX_ERR(0, 21808, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuParamSetTexRef") < 0)) __PYX_ERR(0, 21808, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hfunc = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_texunit = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_texunit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21808, __pyx_L3_error)
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuParamSetTexRef", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21808, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuParamSetTexRef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hfunc), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "hfunc", 0))) __PYX_ERR(0, 21808, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 21808, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_446cuParamSetTexRef(__pyx_self, __pyx_v_hfunc, __pyx_v_texunit, __pyx_v_hTexRef);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_446cuParamSetTexRef(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_hfunc, int __pyx_v_texunit, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__749)
  __Pyx_RefNannySetupContext("cuParamSetTexRef", 0);
  __Pyx_TraceCall("cuParamSetTexRef", __pyx_f[0], 21808, 0, __PYX_ERR(0, 21808, __pyx_L1_error));

  /* "cuda/cuda.pyx":21838
 *         None
 *     """
 *     err = ccuda.cuParamSetTexRef(hfunc._ptr[0], texunit, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuParamSetTexRef((__pyx_v_hfunc->_ptr[0]), __pyx_v_texunit, (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21838, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":21839
 *     """
 *     err = ccuda.cuParamSetTexRef(hfunc._ptr[0], texunit, hTexRef._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21808
 * 
 * @cython.embedsignature(True)
 * def cuParamSetTexRef(hfunc not None : CUfunction, int texunit, hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Adds a texture-reference to the function's argument list.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuParamSetTexRef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21842
 * 
 * @cython.embedsignature(True)
 * def cuGraphCreate(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Creates a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_449cuGraphCreate(PyObject *__pyx_self, PyObject *__pyx_arg_flags); /*proto*/
static char __pyx_doc_4cuda_4cuda_448cuGraphCreate[] = "cuGraphCreate(unsigned int flags)\n Creates a graph.\n\n    Creates an empty graph, which is returned via `phGraph`.\n\n    Parameters\n    ----------\n    flags : unsigned int\n        Graph creation flags, must be 0\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    phGraph : CUgraph\n        Returns newly created graph\n\n    See Also\n    --------\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddHostNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    cuGraphInstantiate\n    cuGraphDestroy\n    cuGraphGetNodes\n    cuGraphGetRootNodes\n    cuGraphGetEdges\n    cuGraphClone\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_449cuGraphCreate = {"cuGraphCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_449cuGraphCreate, METH_O, __pyx_doc_4cuda_4cuda_448cuGraphCreate};
static PyObject *__pyx_pw_4cuda_4cuda_449cuGraphCreate(PyObject *__pyx_self, PyObject *__pyx_arg_flags) {
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphCreate (wrapper)", 0);
  assert(__pyx_arg_flags); {
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(__pyx_arg_flags); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 21842, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cuda_4cuda_448cuGraphCreate(__pyx_self, ((unsigned int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_448cuGraphCreate(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_phGraph = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__750)
  __Pyx_RefNannySetupContext("cuGraphCreate", 0);
  __Pyx_TraceCall("cuGraphCreate", __pyx_f[0], 21842, 0, __PYX_ERR(0, 21842, __pyx_L1_error));

  /* "cuda/cuda.pyx":21878
 *     cuGraphClone
 *     """
 *     cdef CUgraph phGraph = CUgraph()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphCreate(phGraph._ptr, flags)
 *     return (CUresult(err), phGraph)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21879
 *     """
 *     cdef CUgraph phGraph = CUgraph()
 *     err = ccuda.cuGraphCreate(phGraph._ptr, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraph)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphCreate(__pyx_v_phGraph->_ptr, __pyx_v_flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21879, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":21880
 *     cdef CUgraph phGraph = CUgraph()
 *     err = ccuda.cuGraphCreate(phGraph._ptr, flags)
 *     return (CUresult(err), phGraph)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraph));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraph));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phGraph));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21842
 * 
 * @cython.embedsignature(True)
 * def cuGraphCreate(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Creates a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraph);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21883
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddKernelNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a kernel execution node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_451cuGraphAddKernelNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_450cuGraphAddKernelNode[] = "cuGraphAddKernelNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_KERNEL_NODE_PARAMS nodeParams: CUDA_KERNEL_NODE_PARAMS)\n Creates a kernel execution node and adds it to a graph.\n\n    Creates a new kernel execution node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and\n    arguments specified in `nodeParams`. It is possible for\n    `numDependencies` to be 0, in which case the node will be placed at the\n    root of the graph. `dependencies` may not have any duplicate entries. A\n    handle to the new node will be returned in `phGraphNode`.\n\n    The CUDA_KERNEL_NODE_PARAMS structure is defined as:\n\n    typedefstructCUDA_KERNEL_NODE_PARAMS_st{ CUfunctionfunc;\n    unsignedintgridDimX; unsignedintgridDimY; unsignedintgridDimZ;\n    unsignedintblockDimX; unsignedintblockDimY; unsignedintblockDimZ;\n    unsignedintsharedMemBytes; void**kernelParams; void**extra;\n    }CUDA_KERNEL_NODE_PARAMS;\n\n    When the graph is launched, the node will invoke kernel `func` on a\n    (`gridDimX` x `gridDimY` x `gridDimZ`) grid of blocks. Each block\n    contains (`blockDimX` x `blockDimY` x `blockDimZ`) threads.\n\n    `sharedMemBytes` sets the amount of dynamic shared memory that will be\n    available to each thread block.\n\n    Kernel parameters to `func` can be specified in one of two ways:\n\n    1) Kernel parameters can be specified via `kernelParams`. If the kernel\n    has N parameters, then `kernelParams` needs to be an array of N\n    pointers. Each pointer, from `kernelParams`[0] to `kernelParams`[N-1],\n    points to the region of memory from which the actual parameter will be\n    copied. The number of kernel parameters and their offsets and sizes do\n    not need to be specified as that information is retrieved directly from\n    the kernel's image.\n\n    2) Kernel parameters for non-cooperative kernels can also be packaged\n    by the application into a single buffer th""at is passed in via `extra`.\n    This places the burden on the application of knowing each kernel\n    parameter's size and alignment/padding within the buffer. The `extra`\n    parameter exists to allow this function to take additional less\n    commonly used arguments. `extra` specifies a list of names of extra\n    settings and their corresponding values. Each extra setting name is\n    immediately followed by the corresponding value. The list must be\n    terminated with either NULL or CU_LAUNCH_PARAM_END.\n\n    CU_LAUNCH_PARAM_END, which indicates the end of the `extra` array;\n    CU_LAUNCH_PARAM_BUFFER_POINTER, which specifies that the next value in\n    `extra` will be a pointer to a buffer containing all the kernel\n    parameters for launching kernel `func`; CU_LAUNCH_PARAM_BUFFER_SIZE,\n    which specifies that the next value in `extra` will be a pointer to a\n    size_t containing the size of the buffer specified with\n    CU_LAUNCH_PARAM_BUFFER_POINTER;\n\n    The error CUDA_ERROR_INVALID_VALUE will be returned if kernel\n    parameters are specified with both `kernelParams` and `extra` (i.e.\n    both `kernelParams` and `extra` are non-NULL). CUDA_ERROR_INVALID_VALUE\n    will be returned if `extra` is used for a cooperative kernel.\n\n    The `kernelParams` or `extra` array, as well as the argument values it\n    points to, are copied during this call.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    nodeParams : CUDA_KERNEL_NODE_PARAMS\n        Parameters for the GPU execution node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuLaunchKernel\n   "" cuLaunchCooperativeKernel\n    cuGraphKernelNodeGetParams\n    cuGraphKernelNodeSetParams\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddHostNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n\n    Notes\n    -----\n    Kernels launched using graphs must not use texture and surface references. Reading or writing through any texture or surface reference is undefined behavior. This restriction does not apply to texture and surface objects.\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_451cuGraphAddKernelNode = {"cuGraphAddKernelNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_451cuGraphAddKernelNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_450cuGraphAddKernelNode};
static PyObject *__pyx_pw_4cuda_4cuda_451cuGraphAddKernelNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddKernelNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_nodeParams,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddKernelNode", 1, 4, 4, 1); __PYX_ERR(0, 21883, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddKernelNode", 1, 4, 4, 2); __PYX_ERR(0, 21883, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddKernelNode", 1, 4, 4, 3); __PYX_ERR(0, 21883, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddKernelNode") < 0)) __PYX_ERR(0, 21883, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 21883, __pyx_L3_error)
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddKernelNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 21883, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddKernelNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 21883, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 21883, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_450cuGraphAddKernelNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddKernelNode_2generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":21985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_20cuGraphAddKernelNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_34_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_34_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 21985, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_20cuGraphAddKernelNode_2generator18, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddKernelNode_locals_gene, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 21985, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddKernelNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddKernelNode_2generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 21985, 0, __PYX_ERR(0, 21985, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 21985, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 21985, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21985, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 21985, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 21985, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 21985, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":21883
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddKernelNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a kernel execution node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_450cuGraphAddKernelNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddKernelNode_2generator18 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__751)
  __Pyx_RefNannySetupContext("cuGraphAddKernelNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 21883, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddKernelNode", __pyx_f[0], 21883, 0, __PYX_ERR(0, 21883, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":21984
 * 
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21984, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_20cuGraphAddKernelNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 21985, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":21986
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 21986, __pyx_L1_error)

    /* "cuda/cuda.pyx":21985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":21987
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21988
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":21989
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21989, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":21990
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21990, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":21991
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":21992
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 21992, __pyx_L1_error)

      /* "cuda/cuda.pyx":21991
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":21994
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21994, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":21995
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21995, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":21989
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":21997
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddKernelNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21997, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 21997, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":21998
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddKernelNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21998, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 21998, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":21999
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddKernelNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 21999, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21999, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddKernelNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 21999, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":22000
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddKernelNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22001
 *     err = ccuda.cuGraphAddKernelNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22000
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddKernelNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22002
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":21883
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddKernelNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a kernel execution node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddKernelNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_20cuGraphAddKernelNode_2generator18);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22005
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a kernel node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_453cuGraphKernelNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_452cuGraphKernelNodeGetParams[] = "cuGraphKernelNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns a kernel node's parameters.\n\n    Returns the parameters of kernel node `hNode` in `nodeParams`. The\n    `kernelParams` or `extra` array returned in `nodeParams`, as well as\n    the argument values it points to, are owned by the node. This memory\n    remains valid until the node is destroyed or its parameters are\n    modified, and should not be modified directly. Use\n    cuGraphKernelNodeSetParams to update the parameters of this node.\n\n    The params will contain either `kernelParams` or `extra`, according to\n    which of these was most recently set on the node.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    nodeParams : CUDA_KERNEL_NODE_PARAMS\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuLaunchKernel\n    cuGraphAddKernelNode\n    cuGraphKernelNodeSetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_453cuGraphKernelNodeGetParams = {"cuGraphKernelNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_453cuGraphKernelNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_452cuGraphKernelNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_453cuGraphKernelNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphKernelNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22005, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_452cuGraphKernelNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_452cuGraphKernelNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__752)
  __Pyx_RefNannySetupContext("cuGraphKernelNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphKernelNodeGetParams", __pyx_f[0], 22005, 0, __PYX_ERR(0, 22005, __pyx_L1_error));

  /* "cuda/cuda.pyx":22039
 *     cuGraphKernelNodeSetParams
 *     """
 *     cdef CUDA_KERNEL_NODE_PARAMS nodeParams = CUDA_KERNEL_NODE_PARAMS()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphKernelNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22040
 *     """
 *     cdef CUDA_KERNEL_NODE_PARAMS nodeParams = CUDA_KERNEL_NODE_PARAMS()
 *     err = ccuda.cuGraphKernelNodeGetParams(hNode._ptr[0], nodeParams._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), nodeParams)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphKernelNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_nodeParams->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22040, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22041
 *     cdef CUDA_KERNEL_NODE_PARAMS nodeParams = CUDA_KERNEL_NODE_PARAMS()
 *     err = ccuda.cuGraphKernelNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_nodeParams));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_nodeParams));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_nodeParams));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22005
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a kernel node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_nodeParams);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22044
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a kernel node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_455cuGraphKernelNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_454cuGraphKernelNodeSetParams[] = "cuGraphKernelNodeSetParams(CUgraphNode hNode: CUgraphNode, CUDA_KERNEL_NODE_PARAMS nodeParams: CUDA_KERNEL_NODE_PARAMS)\n Sets a kernel node's parameters.\n\n    Sets the parameters of kernel node `hNode` to `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the parameters for\n    nodeParams : CUDA_KERNEL_NODE_PARAMS\n        Parameters to copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    None\n        None\n\n    See Also\n    --------\n    cuLaunchKernel\n    cuGraphAddKernelNode\n    cuGraphKernelNodeGetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_455cuGraphKernelNodeSetParams = {"cuGraphKernelNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_455cuGraphKernelNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_454cuGraphKernelNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_455cuGraphKernelNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphKernelNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeSetParams", 1, 2, 2, 1); __PYX_ERR(0, 22044, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphKernelNodeSetParams") < 0)) __PYX_ERR(0, 22044, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeSetParams", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22044, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22044, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 22044, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_454cuGraphKernelNodeSetParams(__pyx_self, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_454cuGraphKernelNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__753)
  __Pyx_RefNannySetupContext("cuGraphKernelNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphKernelNodeSetParams", __pyx_f[0], 22044, 0, __PYX_ERR(0, 22044, __pyx_L1_error));

  /* "cuda/cuda.pyx":22072
 *     cuGraphKernelNodeGetParams
 *     """
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphKernelNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22072, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 22072, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":22073
 *     """
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphKernelNodeSetParams(hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphKernelNodeSetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22073, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":22074
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphKernelNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22044
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a kernel node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22077
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemcpyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memcpy node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_457cuGraphAddMemcpyNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_456cuGraphAddMemcpyNode[] = "cuGraphAddMemcpyNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_MEMCPY3D copyParams: CUDA_MEMCPY3D, CUcontext ctx: CUcontext)\n Creates a memcpy node and adds it to a graph.\n\n    Creates a new memcpy node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies`. It is\n    possible for `numDependencies` to be 0, in which case the node will be\n    placed at the root of the graph. `dependencies` may not have any\n    duplicate entries. A handle to the new node will be returned in\n    `phGraphNode`.\n\n    When the graph is launched, the node will perform the memcpy described\n    by `copyParams`. See cuMemcpy3D() for a description of the structure\n    and its restrictions.\n\n    Memcpy nodes have some additional restrictions with regards to managed\n    memory, if the system contains at least one device which has a zero\n    value for the device attribute\n    CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS. If one or more of the\n    operands refer to managed memory, then using the memory type\n    CU_MEMORYTYPE_UNIFIED is disallowed for those operand(s). The managed\n    memory will be treated as residing on either the host or the device,\n    depending on which memory type is specified.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    copyParams : CUDA_MEMCPY3D\n        Parameters for the memory copy\n    ctx : CUcontext\n        Context on which to run the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuMemcpy3D\n    cuGraphMemcpyNodeGetParams\n    cuGraphMemcpyNodeSetParam""s\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddHostNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_457cuGraphAddMemcpyNode = {"cuGraphAddMemcpyNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_457cuGraphAddMemcpyNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_456cuGraphAddMemcpyNode};
static PyObject *__pyx_pw_4cuda_4cuda_457cuGraphAddMemcpyNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_copyParams = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddMemcpyNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_copyParams,&__pyx_n_s_ctx,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemcpyNode", 1, 5, 5, 1); __PYX_ERR(0, 22077, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemcpyNode", 1, 5, 5, 2); __PYX_ERR(0, 22077, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_copyParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemcpyNode", 1, 5, 5, 3); __PYX_ERR(0, 22077, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemcpyNode", 1, 5, 5, 4); __PYX_ERR(0, 22077, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddMemcpyNode") < 0)) __PYX_ERR(0, 22077, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22077, __pyx_L3_error)
    __pyx_v_copyParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *)values[3]);
    __pyx_v_ctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[4]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddMemcpyNode", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22077, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemcpyNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22077, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_copyParams), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D, 1, "copyParams", 0))) __PYX_ERR(0, 22077, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 22077, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_456cuGraphAddMemcpyNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_copyParams, __pyx_v_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddMemcpyNode_2generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22137
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_20cuGraphAddMemcpyNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_36_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_36_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22137, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_20cuGraphAddMemcpyNode_2generator19, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddMemcpyNode_locals_gene, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22137, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemcpyNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddMemcpyNode_2generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22137, 0, __PYX_ERR(0, 22137, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22137, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22137, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22137, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22137, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22137, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22137, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22077
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemcpyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memcpy node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_456cuGraphAddMemcpyNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_copyParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *__pyx_v_ccopyParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddMemcpyNode_2generator19 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__754)
  __Pyx_RefNannySetupContext("cuGraphAddMemcpyNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22077, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddMemcpyNode", __pyx_f[0], 22077, 0, __PYX_ERR(0, 22077, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22136
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22137
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_20cuGraphAddMemcpyNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22138
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22138, __pyx_L1_error)

    /* "cuda/cuda.pyx":22137
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22139
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22140
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22141
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22142
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22142, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22143
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22144
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22144, __pyx_L1_error)

      /* "cuda/cuda.pyx":22143
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22146
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22146, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22147
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22147, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22141
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22149
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL
 *     err = ccuda.cuGraphAddMemcpyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, ccopyParams_ptr, ctx._ptr[0])
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22149, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22149, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22150
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddMemcpyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, ccopyParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_copyParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22150, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 22150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_copyParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_ccopyParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":22151
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL
 *     err = ccuda.cuGraphAddMemcpyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, ccopyParams_ptr, ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddMemcpyNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_ccopyParams_ptr, (__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22151, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":22152
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL
 *     err = ccuda.cuGraphAddMemcpyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, ccopyParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22153
 *     err = ccuda.cuGraphAddMemcpyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, ccopyParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22152
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL
 *     err = ccuda.cuGraphAddMemcpyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, ccopyParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22154
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22077
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemcpyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memcpy node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemcpyNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_20cuGraphAddMemcpyNode_2generator19);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22157
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memcpy node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_459cuGraphMemcpyNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_458cuGraphMemcpyNodeGetParams[] = "cuGraphMemcpyNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns a memcpy node's parameters.\n\n    Returns the parameters of memcpy node `hNode` in `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    nodeParams : CUDA_MEMCPY3D\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuMemcpy3D\n    cuGraphAddMemcpyNode\n    cuGraphMemcpyNodeSetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_459cuGraphMemcpyNodeGetParams = {"cuGraphMemcpyNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_459cuGraphMemcpyNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_458cuGraphMemcpyNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_459cuGraphMemcpyNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphMemcpyNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22157, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_458cuGraphMemcpyNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_458cuGraphMemcpyNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_nodeParams = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__755)
  __Pyx_RefNannySetupContext("cuGraphMemcpyNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphMemcpyNodeGetParams", __pyx_f[0], 22157, 0, __PYX_ERR(0, 22157, __pyx_L1_error));

  /* "cuda/cuda.pyx":22183
 *     cuGraphMemcpyNodeSetParams
 *     """
 *     cdef CUDA_MEMCPY3D nodeParams = CUDA_MEMCPY3D()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphMemcpyNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22184
 *     """
 *     cdef CUDA_MEMCPY3D nodeParams = CUDA_MEMCPY3D()
 *     err = ccuda.cuGraphMemcpyNodeGetParams(hNode._ptr[0], nodeParams._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), nodeParams)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphMemcpyNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_nodeParams->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22184, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22185
 *     cdef CUDA_MEMCPY3D nodeParams = CUDA_MEMCPY3D()
 *     err = ccuda.cuGraphMemcpyNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_nodeParams));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_nodeParams));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_nodeParams));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22157
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memcpy node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemcpyNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_nodeParams);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22188
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Sets a memcpy node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_461cuGraphMemcpyNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_460cuGraphMemcpyNodeSetParams[] = "cuGraphMemcpyNodeSetParams(CUgraphNode hNode: CUgraphNode, CUDA_MEMCPY3D nodeParams: CUDA_MEMCPY3D)\n Sets a memcpy node's parameters.\n\n    Sets the parameters of memcpy node `hNode` to `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the parameters for\n    nodeParams : CUDA_MEMCPY3D\n        Parameters to copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemcpy3D\n    cuGraphAddMemcpyNode\n    cuGraphMemcpyNodeGetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_461cuGraphMemcpyNodeSetParams = {"cuGraphMemcpyNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_461cuGraphMemcpyNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_460cuGraphMemcpyNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_461cuGraphMemcpyNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphMemcpyNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphMemcpyNodeSetParams", 1, 2, 2, 1); __PYX_ERR(0, 22188, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphMemcpyNodeSetParams") < 0)) __PYX_ERR(0, 22188, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphMemcpyNodeSetParams", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22188, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemcpyNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22188, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D, 1, "nodeParams", 0))) __PYX_ERR(0, 22188, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_460cuGraphMemcpyNodeSetParams(__pyx_self, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_460cuGraphMemcpyNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__756)
  __Pyx_RefNannySetupContext("cuGraphMemcpyNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphMemcpyNodeSetParams", __pyx_f[0], 22188, 0, __PYX_ERR(0, 22188, __pyx_L1_error));

  /* "cuda/cuda.pyx":22216
 *     cuGraphMemcpyNodeGetParams
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphMemcpyNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22216, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 22216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":22217
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphMemcpyNodeSetParams(hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphMemcpyNodeSetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22217, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":22218
 *     cdef ccuda.CUDA_MEMCPY3D* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphMemcpyNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22188
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Sets a memcpy node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemcpyNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22221
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemsetNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memset node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_463cuGraphAddMemsetNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_462cuGraphAddMemsetNode[] = "cuGraphAddMemsetNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_MEMSET_NODE_PARAMS memsetParams: CUDA_MEMSET_NODE_PARAMS, CUcontext ctx: CUcontext)\n Creates a memset node and adds it to a graph.\n\n    Creates a new memset node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies`. It is\n    possible for `numDependencies` to be 0, in which case the node will be\n    placed at the root of the graph. `dependencies` may not have any\n    duplicate entries. A handle to the new node will be returned in\n    `phGraphNode`.\n\n    The element size must be 1, 2, or 4 bytes. When the graph is launched,\n    the node will perform the memset described by `memsetParams`.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    memsetParams : CUDA_MEMSET_NODE_PARAMS\n        Parameters for the memory set\n    ctx : CUcontext\n        Context on which to run the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_CONTEXT\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuMemsetD2D32\n    cuGraphMemsetNodeGetParams\n    cuGraphMemsetNodeSetParams\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddHostNode\n    cuGraphAddMemcpyNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_463cuGraphAddMemsetNode = {"cuGraphAddMemsetNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_463cuGraphAddMemsetNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_462cuGraphAddMemsetNode};
static PyObject *__pyx_pw_4cuda_4cuda_463cuGraphAddMemsetNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_memsetParams = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddMemsetNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_memsetParams,&__pyx_n_s_ctx,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemsetNode", 1, 5, 5, 1); __PYX_ERR(0, 22221, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemsetNode", 1, 5, 5, 2); __PYX_ERR(0, 22221, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memsetParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemsetNode", 1, 5, 5, 3); __PYX_ERR(0, 22221, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemsetNode", 1, 5, 5, 4); __PYX_ERR(0, 22221, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddMemsetNode") < 0)) __PYX_ERR(0, 22221, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22221, __pyx_L3_error)
    __pyx_v_memsetParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *)values[3]);
    __pyx_v_ctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[4]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddMemsetNode", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22221, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemsetNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22221, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memsetParams), __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS, 1, "memsetParams", 0))) __PYX_ERR(0, 22221, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 22221, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_462cuGraphAddMemsetNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_memsetParams, __pyx_v_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddMemsetNode_2generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22272
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_20cuGraphAddMemsetNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_38_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_38_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22272, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_20cuGraphAddMemsetNode_2generator20, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddMemsetNode_locals_gene, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22272, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemsetNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddMemsetNode_2generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22272, 0, __PYX_ERR(0, 22272, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22272, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22272, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22272, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22272, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22272, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22272, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22272, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22272, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22272, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22221
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemsetNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memset node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_462cuGraphAddMemsetNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_memsetParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_cmemsetParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_20cuGraphAddMemsetNode_2generator20 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__757)
  __Pyx_RefNannySetupContext("cuGraphAddMemsetNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22221, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddMemsetNode", __pyx_f[0], 22221, 0, __PYX_ERR(0, 22221, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22271
 *     cuGraphAddMemcpyNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22272
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_20cuGraphAddMemsetNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22272, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22273
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22273, __pyx_L1_error)

    /* "cuda/cuda.pyx":22272
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22274
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22275
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22276
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22277
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22277, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22278
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22279
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22279, __pyx_L1_error)

      /* "cuda/cuda.pyx":22278
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22281
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22281, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22282
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22282, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22276
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22284
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL
 *     err = ccuda.cuGraphAddMemsetNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cmemsetParams_ptr, ctx._ptr[0])
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22284, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22285
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddMemsetNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cmemsetParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_memsetParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22285, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 22285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_memsetParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_cmemsetParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":22286
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL
 *     err = ccuda.cuGraphAddMemsetNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cmemsetParams_ptr, ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddMemsetNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_cmemsetParams_ptr, (__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22286, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":22287
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL
 *     err = ccuda.cuGraphAddMemsetNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cmemsetParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22288
 *     err = ccuda.cuGraphAddMemsetNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cmemsetParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22287
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL
 *     err = ccuda.cuGraphAddMemsetNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cmemsetParams_ptr, ctx._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22289
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22221
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemsetNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memset node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemsetNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_20cuGraphAddMemsetNode_2generator20);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22292
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memset node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_465cuGraphMemsetNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_464cuGraphMemsetNodeGetParams[] = "cuGraphMemsetNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns a memset node's parameters.\n\n    Returns the parameters of memset node `hNode` in `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    nodeParams : CUDA_MEMSET_NODE_PARAMS\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuMemsetD2D32\n    cuGraphAddMemsetNode\n    cuGraphMemsetNodeSetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_465cuGraphMemsetNodeGetParams = {"cuGraphMemsetNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_465cuGraphMemsetNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_464cuGraphMemsetNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_465cuGraphMemsetNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphMemsetNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22292, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_464cuGraphMemsetNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_464cuGraphMemsetNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_nodeParams = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__758)
  __Pyx_RefNannySetupContext("cuGraphMemsetNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphMemsetNodeGetParams", __pyx_f[0], 22292, 0, __PYX_ERR(0, 22292, __pyx_L1_error));

  /* "cuda/cuda.pyx":22318
 *     cuGraphMemsetNodeSetParams
 *     """
 *     cdef CUDA_MEMSET_NODE_PARAMS nodeParams = CUDA_MEMSET_NODE_PARAMS()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphMemsetNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22319
 *     """
 *     cdef CUDA_MEMSET_NODE_PARAMS nodeParams = CUDA_MEMSET_NODE_PARAMS()
 *     err = ccuda.cuGraphMemsetNodeGetParams(hNode._ptr[0], nodeParams._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), nodeParams)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphMemsetNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_nodeParams->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22319, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22320
 *     cdef CUDA_MEMSET_NODE_PARAMS nodeParams = CUDA_MEMSET_NODE_PARAMS()
 *     err = ccuda.cuGraphMemsetNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_nodeParams));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_nodeParams));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_nodeParams));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22292
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memset node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemsetNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_nodeParams);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22323
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMSET_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a memset node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_467cuGraphMemsetNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_466cuGraphMemsetNodeSetParams[] = "cuGraphMemsetNodeSetParams(CUgraphNode hNode: CUgraphNode, CUDA_MEMSET_NODE_PARAMS nodeParams: CUDA_MEMSET_NODE_PARAMS)\n Sets a memset node's parameters.\n\n    Sets the parameters of memset node `hNode` to `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the parameters for\n    nodeParams : CUDA_MEMSET_NODE_PARAMS\n        Parameters to copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuMemsetD2D32\n    cuGraphAddMemsetNode\n    cuGraphMemsetNodeGetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_467cuGraphMemsetNodeSetParams = {"cuGraphMemsetNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_467cuGraphMemsetNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_466cuGraphMemsetNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_467cuGraphMemsetNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphMemsetNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphMemsetNodeSetParams", 1, 2, 2, 1); __PYX_ERR(0, 22323, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphMemsetNodeSetParams") < 0)) __PYX_ERR(0, 22323, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphMemsetNodeSetParams", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22323, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemsetNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22323, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 22323, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_466cuGraphMemsetNodeSetParams(__pyx_self, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_466cuGraphMemsetNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__759)
  __Pyx_RefNannySetupContext("cuGraphMemsetNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphMemsetNodeSetParams", __pyx_f[0], 22323, 0, __PYX_ERR(0, 22323, __pyx_L1_error));

  /* "cuda/cuda.pyx":22351
 *     cuGraphMemsetNodeGetParams
 *     """
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphMemsetNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22351, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 22351, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":22352
 *     """
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphMemsetNodeSetParams(hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphMemsetNodeSetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22352, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":22353
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphMemsetNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22323
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMSET_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a memset node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemsetNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22356
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddHostNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a host execution node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_469cuGraphAddHostNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_468cuGraphAddHostNode[] = "cuGraphAddHostNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_HOST_NODE_PARAMS nodeParams: CUDA_HOST_NODE_PARAMS)\n Creates a host execution node and adds it to a graph.\n\n    Creates a new CPU execution node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and\n    arguments specified in `nodeParams`. It is possible for\n    `numDependencies` to be 0, in which case the node will be placed at the\n    root of the graph. `dependencies` may not have any duplicate entries. A\n    handle to the new node will be returned in `phGraphNode`.\n\n    When the graph is launched, the node will invoke the specified CPU\n    function. Host nodes are not supported under MPS with pre-Volta GPUs.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    nodeParams : CUDA_HOST_NODE_PARAMS\n        Parameters for the host node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuLaunchHostFunc\n    cuGraphHostNodeGetParams\n    cuGraphHostNodeSetParams\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_469cuGraphAddHostNode = {"cuGraphAddHostNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_469cuGraphAddHostNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_468cuGraphAddHostNode};
static PyObject *__pyx_pw_4cuda_4cuda_469cuGraphAddHostNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddHostNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_nodeParams,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddHostNode", 1, 4, 4, 1); __PYX_ERR(0, 22356, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddHostNode", 1, 4, 4, 2); __PYX_ERR(0, 22356, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddHostNode", 1, 4, 4, 3); __PYX_ERR(0, 22356, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddHostNode") < 0)) __PYX_ERR(0, 22356, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22356, __pyx_L3_error)
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddHostNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22356, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddHostNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22356, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 22356, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_468cuGraphAddHostNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_18cuGraphAddHostNode_2generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22405
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_18cuGraphAddHostNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_40_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_40_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22405, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_18cuGraphAddHostNode_2generator21, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddHostNode_locals_genexp, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22405, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddHostNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_18cuGraphAddHostNode_2generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22405, 0, __PYX_ERR(0, 22405, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22405, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22405, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22405, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22405, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22405, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22405, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22405, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22405, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22356
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddHostNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a host execution node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_468cuGraphAddHostNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_18cuGraphAddHostNode_2generator21 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__760)
  __Pyx_RefNannySetupContext("cuGraphAddHostNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22356, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddHostNode", __pyx_f[0], 22356, 0, __PYX_ERR(0, 22356, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22404
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22405
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_18cuGraphAddHostNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22406
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22406, __pyx_L1_error)

    /* "cuda/cuda.pyx":22405
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22407
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22408
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22409
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22409, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22410
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22410, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22411
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22412
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22412, __pyx_L1_error)

      /* "cuda/cuda.pyx":22411
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22414
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22414, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22415
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22415, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22409
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22417
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddHostNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22417, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22418
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddHostNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22418, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 22418, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":22419
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddHostNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddHostNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22419, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":22420
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddHostNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22421
 *     err = ccuda.cuGraphAddHostNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22420
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddHostNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22422
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22356
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddHostNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a host execution node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddHostNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_18cuGraphAddHostNode_2generator21);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22425
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a host node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_471cuGraphHostNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_470cuGraphHostNodeGetParams[] = "cuGraphHostNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns a host node's parameters.\n\n    Returns the parameters of host node `hNode` in `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    nodeParams : CUDA_HOST_NODE_PARAMS\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuLaunchHostFunc\n    cuGraphAddHostNode\n    cuGraphHostNodeSetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_471cuGraphHostNodeGetParams = {"cuGraphHostNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_471cuGraphHostNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_470cuGraphHostNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_471cuGraphHostNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphHostNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22425, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_470cuGraphHostNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_470cuGraphHostNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__761)
  __Pyx_RefNannySetupContext("cuGraphHostNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphHostNodeGetParams", __pyx_f[0], 22425, 0, __PYX_ERR(0, 22425, __pyx_L1_error));

  /* "cuda/cuda.pyx":22451
 *     cuGraphHostNodeSetParams
 *     """
 *     cdef CUDA_HOST_NODE_PARAMS nodeParams = CUDA_HOST_NODE_PARAMS()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphHostNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22452
 *     """
 *     cdef CUDA_HOST_NODE_PARAMS nodeParams = CUDA_HOST_NODE_PARAMS()
 *     err = ccuda.cuGraphHostNodeGetParams(hNode._ptr[0], nodeParams._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), nodeParams)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphHostNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_nodeParams->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22452, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22453
 *     cdef CUDA_HOST_NODE_PARAMS nodeParams = CUDA_HOST_NODE_PARAMS()
 *     err = ccuda.cuGraphHostNodeGetParams(hNode._ptr[0], nodeParams._ptr)
 *     return (CUresult(err), nodeParams)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_nodeParams));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_nodeParams));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_nodeParams));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22425
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a host node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphHostNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_nodeParams);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22456
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a host node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_473cuGraphHostNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_472cuGraphHostNodeSetParams[] = "cuGraphHostNodeSetParams(CUgraphNode hNode: CUgraphNode, CUDA_HOST_NODE_PARAMS nodeParams: CUDA_HOST_NODE_PARAMS)\n Sets a host node's parameters.\n\n    Sets the parameters of host node `hNode` to `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the parameters for\n    nodeParams : CUDA_HOST_NODE_PARAMS\n        Parameters to copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuLaunchHostFunc\n    cuGraphAddHostNode\n    cuGraphHostNodeGetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_473cuGraphHostNodeSetParams = {"cuGraphHostNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_473cuGraphHostNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_472cuGraphHostNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_473cuGraphHostNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphHostNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphHostNodeSetParams", 1, 2, 2, 1); __PYX_ERR(0, 22456, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphHostNodeSetParams") < 0)) __PYX_ERR(0, 22456, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphHostNodeSetParams", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22456, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphHostNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22456, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 22456, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_472cuGraphHostNodeSetParams(__pyx_self, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_472cuGraphHostNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__762)
  __Pyx_RefNannySetupContext("cuGraphHostNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphHostNodeSetParams", __pyx_f[0], 22456, 0, __PYX_ERR(0, 22456, __pyx_L1_error));

  /* "cuda/cuda.pyx":22484
 *     cuGraphHostNodeGetParams
 *     """
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphHostNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22484, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 22484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":22485
 *     """
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphHostNodeSetParams(hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphHostNodeSetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22485, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":22486
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphHostNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22456
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a host node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphHostNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22489
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddChildGraphNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Creates a child graph node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_475cuGraphAddChildGraphNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_474cuGraphAddChildGraphNode[] = "cuGraphAddChildGraphNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUgraph childGraph: CUgraph)\n Creates a child graph node and adds it to a graph.\n\n    Creates a new node which executes an embedded graph, and adds it to\n    `hGraph` with `numDependencies` dependencies specified via\n    `dependencies`. It is possible for `numDependencies` to be 0, in which\n    case the node will be placed at the root of the graph. `dependencies`\n    may not have any duplicate entries. A handle to the new node will be\n    returned in `phGraphNode`.\n\n    If `hGraph` contains allocation or free nodes, this call will return an\n    error.\n\n    The node executes an embedded child graph. The child graph is cloned in\n    this call.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    childGraph : CUgraph\n        The graph to clone into this node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphChildGraphNodeGetGraph\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddHostNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    cuGraphClone\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_475cuGraphAddChildGraphNode = {"cuGraphAddChildGraphNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_475cuGraphAddChildGraphNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_474cuGraphAddChildGraphNode};
static PyObject *__pyx_pw_4cuda_4cuda_475cuGraphAddChildGraphNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_childGraph = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddChildGraphNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_childGraph,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddChildGraphNode", 1, 4, 4, 1); __PYX_ERR(0, 22489, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddChildGraphNode", 1, 4, 4, 2); __PYX_ERR(0, 22489, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_childGraph)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddChildGraphNode", 1, 4, 4, 3); __PYX_ERR(0, 22489, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddChildGraphNode") < 0)) __PYX_ERR(0, 22489, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22489, __pyx_L3_error)
    __pyx_v_childGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddChildGraphNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22489, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddChildGraphNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22489, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_childGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "childGraph", 0))) __PYX_ERR(0, 22489, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_474cuGraphAddChildGraphNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_childGraph);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_24cuGraphAddChildGraphNode_2generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22539
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_24cuGraphAddChildGraphNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_42_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_42_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22539, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_24cuGraphAddChildGraphNode_2generator22, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddChildGraphNode_locals, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22539, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddChildGraphNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_24cuGraphAddChildGraphNode_2generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22539, 0, __PYX_ERR(0, 22539, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22539, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22539, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22539, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22539, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22539, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22539, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22539, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22539, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22489
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddChildGraphNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Creates a child graph node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_474cuGraphAddChildGraphNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_childGraph) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_24cuGraphAddChildGraphNode_2generator22 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__763)
  __Pyx_RefNannySetupContext("cuGraphAddChildGraphNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22489, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddChildGraphNode", __pyx_f[0], 22489, 0, __PYX_ERR(0, 22489, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22538
 *     cuGraphClone
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22538, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22539
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_24cuGraphAddChildGraphNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22539, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22540
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22540, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22540, __pyx_L1_error)

    /* "cuda/cuda.pyx":22539
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22541
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22542
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22543
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22544
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22544, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22545
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22546
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22546, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22546, __pyx_L1_error)

      /* "cuda/cuda.pyx":22545
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22548
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22548, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22549
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22549, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22543
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22551
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddChildGraphNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, childGraph._ptr[0])
 *     if cdependencies is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22551, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22551, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22552
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddChildGraphNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, childGraph._ptr[0])             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22552, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdependencies;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuGraphAddChildGraphNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_v_numDependencies, (__pyx_v_childGraph->_ptr[0])); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22552, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":22553
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddChildGraphNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, childGraph._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22554
 *     err = ccuda.cuGraphAddChildGraphNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, childGraph._ptr[0])
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22553
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddChildGraphNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, childGraph._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22555
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22489
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddChildGraphNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Creates a child graph node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddChildGraphNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_24cuGraphAddChildGraphNode_2generator22);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22558
 * 
 * @cython.embedsignature(True)
 * def cuGraphChildGraphNodeGetGraph(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Gets a handle to the embedded graph of a child graph node.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_477cuGraphChildGraphNodeGetGraph(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_476cuGraphChildGraphNodeGetGraph[] = "cuGraphChildGraphNodeGetGraph(CUgraphNode hNode: CUgraphNode)\n Gets a handle to the embedded graph of a child graph node.\n\n    Gets a handle to the embedded graph in a child graph node. This call\n    does not clone the graph. Changes to the graph will be reflected in the\n    node, and the node retains ownership of the graph.\n\n    Allocation and free nodes cannot be added to the returned graph.\n    Attempting to do so will return an error.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the embedded graph for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraph : CUgraph\n        Location to store a handle to the graph\n\n    See Also\n    --------\n    cuGraphAddChildGraphNode\n    cuGraphNodeFindInClone\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_477cuGraphChildGraphNodeGetGraph = {"cuGraphChildGraphNodeGetGraph", (PyCFunction)__pyx_pw_4cuda_4cuda_477cuGraphChildGraphNodeGetGraph, METH_O, __pyx_doc_4cuda_4cuda_476cuGraphChildGraphNodeGetGraph};
static PyObject *__pyx_pw_4cuda_4cuda_477cuGraphChildGraphNodeGetGraph(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphChildGraphNodeGetGraph (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22558, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_476cuGraphChildGraphNodeGetGraph(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_476cuGraphChildGraphNodeGetGraph(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_phGraph = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__764)
  __Pyx_RefNannySetupContext("cuGraphChildGraphNodeGetGraph", 0);
  __Pyx_TraceCall("cuGraphChildGraphNodeGetGraph", __pyx_f[0], 22558, 0, __PYX_ERR(0, 22558, __pyx_L1_error));

  /* "cuda/cuda.pyx":22588
 *     cuGraphNodeFindInClone
 *     """
 *     cdef CUgraph phGraph = CUgraph()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphChildGraphNodeGetGraph(hNode._ptr[0], phGraph._ptr)
 *     return (CUresult(err), phGraph)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22589
 *     """
 *     cdef CUgraph phGraph = CUgraph()
 *     err = ccuda.cuGraphChildGraphNodeGetGraph(hNode._ptr[0], phGraph._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraph)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphChildGraphNodeGetGraph((__pyx_v_hNode->_ptr[0]), __pyx_v_phGraph->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22589, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22590
 *     cdef CUgraph phGraph = CUgraph()
 *     err = ccuda.cuGraphChildGraphNodeGetGraph(hNode._ptr[0], phGraph._ptr)
 *     return (CUresult(err), phGraph)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraph));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraph));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phGraph));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22558
 * 
 * @cython.embedsignature(True)
 * def cuGraphChildGraphNodeGetGraph(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Gets a handle to the embedded graph of a child graph node.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphChildGraphNodeGetGraph", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraph);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22593
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEmptyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Creates an empty node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_479cuGraphAddEmptyNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_478cuGraphAddEmptyNode[] = "cuGraphAddEmptyNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies)\n Creates an empty node and adds it to a graph.\n\n    Creates a new node which performs no operation, and adds it to `hGraph`\n    with `numDependencies` dependencies specified via `dependencies`. It is\n    possible for `numDependencies` to be 0, in which case the node will be\n    placed at the root of the graph. `dependencies` may not have any\n    duplicate entries. A handle to the new node will be returned in\n    `phGraphNode`.\n\n    An empty node performs no operation during execution, but can be used\n    for transitive ordering. For example, a phased execution graph with 2\n    groups of n nodes with a barrier between them can be represented using\n    an empty node and 2*n dependency edges, rather than no empty node and\n    n^2 dependency edges.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddKernelNode\n    cuGraphAddHostNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_479cuGraphAddEmptyNode = {"cuGraphAddEmptyNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_479cuGraphAddEmptyNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_478cuGraphAddEmptyNode};
static PyObject *__pyx_pw_4cuda_4cuda_479cuGraphAddEmptyNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddEmptyNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEmptyNode", 1, 3, 3, 1); __PYX_ERR(0, 22593, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEmptyNode", 1, 3, 3, 2); __PYX_ERR(0, 22593, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddEmptyNode") < 0)) __PYX_ERR(0, 22593, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22593, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddEmptyNode", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22593, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEmptyNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22593, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_478cuGraphAddEmptyNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_19cuGraphAddEmptyNode_2generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22639
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_19cuGraphAddEmptyNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_44_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_44_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22639, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_19cuGraphAddEmptyNode_2generator23, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddEmptyNode_locals_genex, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22639, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEmptyNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_19cuGraphAddEmptyNode_2generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22639, 0, __PYX_ERR(0, 22639, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22639, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22639, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22639, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22639, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22639, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22639, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22639, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22639, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22593
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEmptyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Creates an empty node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_478cuGraphAddEmptyNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_19cuGraphAddEmptyNode_2generator23 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__765)
  __Pyx_RefNannySetupContext("cuGraphAddEmptyNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22593, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddEmptyNode", __pyx_f[0], 22593, 0, __PYX_ERR(0, 22593, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22638
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22639
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_19cuGraphAddEmptyNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22639, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22640
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22640, __pyx_L1_error)

    /* "cuda/cuda.pyx":22639
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22641
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22642
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22643
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22643, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22644
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22644, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22645
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22646
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22646, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22646, __pyx_L1_error)

      /* "cuda/cuda.pyx":22645
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22648
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22648, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22649
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22649, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22643
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22651
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddEmptyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies)
 *     if cdependencies is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22651, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22652
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEmptyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22652, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdependencies;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuGraphAddEmptyNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_v_numDependencies); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22652, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":22653
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEmptyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22654
 *     err = ccuda.cuGraphAddEmptyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22653
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEmptyNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22655
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22593
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEmptyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Creates an empty node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEmptyNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_19cuGraphAddEmptyNode_2generator23);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22658
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventRecordNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event record node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_481cuGraphAddEventRecordNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_480cuGraphAddEventRecordNode[] = "cuGraphAddEventRecordNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUevent event: CUevent)\n Creates an event record node and adds it to a graph.\n\n    Creates a new event record node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and event\n    specified in `event`. It is possible for `numDependencies` to be 0, in\n    which case the node will be placed at the root of the graph.\n    `dependencies` may not have any duplicate entries. A handle to the new\n    node will be returned in `phGraphNode`.\n\n    Each launch of the graph will record `event` to capture execution of\n    the node's dependencies.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    event : CUevent\n        Event for the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphAddEventWaitNode\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_481cuGraphAddEventRecordNode = {"cuGraphAddEventRecordNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_481cuGraphAddEventRecordNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_480cuGraphAddEventRecordNode};
static PyObject *__pyx_pw_4cuda_4cuda_481cuGraphAddEventRecordNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddEventRecordNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_event,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEventRecordNode", 1, 4, 4, 1); __PYX_ERR(0, 22658, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEventRecordNode", 1, 4, 4, 2); __PYX_ERR(0, 22658, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEventRecordNode", 1, 4, 4, 3); __PYX_ERR(0, 22658, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddEventRecordNode") < 0)) __PYX_ERR(0, 22658, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22658, __pyx_L3_error)
    __pyx_v_event = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddEventRecordNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22658, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEventRecordNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22658, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 22658, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_480cuGraphAddEventRecordNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_25cuGraphAddEventRecordNode_2generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22707
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_25cuGraphAddEventRecordNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_46_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_46_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22707, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_25cuGraphAddEventRecordNode_2generator24, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddEventRecordNode_locals, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22707, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEventRecordNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_25cuGraphAddEventRecordNode_2generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22707, 0, __PYX_ERR(0, 22707, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22707, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22707, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22707, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22707, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22707, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22707, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22658
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventRecordNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event record node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_480cuGraphAddEventRecordNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_25cuGraphAddEventRecordNode_2generator24 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__766)
  __Pyx_RefNannySetupContext("cuGraphAddEventRecordNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22658, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddEventRecordNode", __pyx_f[0], 22658, 0, __PYX_ERR(0, 22658, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22706
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22707
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_25cuGraphAddEventRecordNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22708
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22708, __pyx_L1_error)

    /* "cuda/cuda.pyx":22707
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22709
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22710
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22711
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22711, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22712
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22712, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22713
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22714
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22714, __pyx_L1_error)

      /* "cuda/cuda.pyx":22713
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22716
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22716, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22717
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22717, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22711
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22719
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddEventRecordNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22719, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22719, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22720
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEventRecordNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22720, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22720, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdependencies;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuGraphAddEventRecordNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_v_numDependencies, (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22720, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":22721
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEventRecordNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22722
 *     err = ccuda.cuGraphAddEventRecordNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22721
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEventRecordNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22723
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22658
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventRecordNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event record node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEventRecordNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_25cuGraphAddEventRecordNode_2generator24);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22726
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event record node.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_483cuGraphEventRecordNodeGetEvent(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_482cuGraphEventRecordNodeGetEvent[] = "cuGraphEventRecordNodeGetEvent(CUgraphNode hNode: CUgraphNode)\n Returns the event associated with an event record node.\n\n    Returns the event of event record node `hNode` in `event_out`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the event for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    event_out : CUevent\n        Pointer to return the event\n\n    See Also\n    --------\n    cuGraphAddEventRecordNode\n    cuGraphEventRecordNodeSetEvent\n    cuGraphEventWaitNodeGetEvent\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_483cuGraphEventRecordNodeGetEvent = {"cuGraphEventRecordNodeGetEvent", (PyCFunction)__pyx_pw_4cuda_4cuda_483cuGraphEventRecordNodeGetEvent, METH_O, __pyx_doc_4cuda_4cuda_482cuGraphEventRecordNodeGetEvent};
static PyObject *__pyx_pw_4cuda_4cuda_483cuGraphEventRecordNodeGetEvent(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphEventRecordNodeGetEvent (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22726, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_482cuGraphEventRecordNodeGetEvent(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_482cuGraphEventRecordNodeGetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__767)
  __Pyx_RefNannySetupContext("cuGraphEventRecordNodeGetEvent", 0);
  __Pyx_TraceCall("cuGraphEventRecordNodeGetEvent", __pyx_f[0], 22726, 0, __PYX_ERR(0, 22726, __pyx_L1_error));

  /* "cuda/cuda.pyx":22754
 *     cuStreamWaitEvent
 *     """
 *     cdef CUevent event_out = CUevent()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphEventRecordNodeGetEvent(hNode._ptr[0], event_out._ptr)
 *     return (CUresult(err), event_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUevent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_event_out = ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22755
 *     """
 *     cdef CUevent event_out = CUevent()
 *     err = ccuda.cuGraphEventRecordNodeGetEvent(hNode._ptr[0], event_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), event_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphEventRecordNodeGetEvent((__pyx_v_hNode->_ptr[0]), __pyx_v_event_out->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22755, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22756
 *     cdef CUevent event_out = CUevent()
 *     err = ccuda.cuGraphEventRecordNodeGetEvent(hNode._ptr[0], event_out._ptr)
 *     return (CUresult(err), event_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_event_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_event_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_event_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22726
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event record node.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphEventRecordNodeGetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_event_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22759
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event record node's event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_485cuGraphEventRecordNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_484cuGraphEventRecordNodeSetEvent[] = "cuGraphEventRecordNodeSetEvent(CUgraphNode hNode: CUgraphNode, CUevent event: CUevent)\n Sets an event record node's event.\n\n    Sets the event of event record node `hNode` to `event`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the event for\n    event : CUevent\n        Event to use\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddEventRecordNode\n    cuGraphEventRecordNodeGetEvent\n    cuGraphEventWaitNodeSetEvent\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_485cuGraphEventRecordNodeSetEvent = {"cuGraphEventRecordNodeSetEvent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_485cuGraphEventRecordNodeSetEvent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_484cuGraphEventRecordNodeSetEvent};
static PyObject *__pyx_pw_4cuda_4cuda_485cuGraphEventRecordNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphEventRecordNodeSetEvent (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_event,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphEventRecordNodeSetEvent", 1, 2, 2, 1); __PYX_ERR(0, 22759, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphEventRecordNodeSetEvent") < 0)) __PYX_ERR(0, 22759, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_event = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphEventRecordNodeSetEvent", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22759, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphEventRecordNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22759, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 22759, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_484cuGraphEventRecordNodeSetEvent(__pyx_self, __pyx_v_hNode, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_484cuGraphEventRecordNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__768)
  __Pyx_RefNannySetupContext("cuGraphEventRecordNodeSetEvent", 0);
  __Pyx_TraceCall("cuGraphEventRecordNodeSetEvent", __pyx_f[0], 22759, 0, __PYX_ERR(0, 22759, __pyx_L1_error));

  /* "cuda/cuda.pyx":22789
 *     cuStreamWaitEvent
 *     """
 *     err = ccuda.cuGraphEventRecordNodeSetEvent(hNode._ptr[0], event._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphEventRecordNodeSetEvent((__pyx_v_hNode->_ptr[0]), (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22789, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":22790
 *     """
 *     err = ccuda.cuGraphEventRecordNodeSetEvent(hNode._ptr[0], event._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22759
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event record node's event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphEventRecordNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22793
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event wait node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_487cuGraphAddEventWaitNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_486cuGraphAddEventWaitNode[] = "cuGraphAddEventWaitNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUevent event: CUevent)\n Creates an event wait node and adds it to a graph.\n\n    Creates a new event wait node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and event\n    specified in `event`. It is possible for `numDependencies` to be 0, in\n    which case the node will be placed at the root of the graph.\n    `dependencies` may not have any duplicate entries. A handle to the new\n    node will be returned in `phGraphNode`.\n\n    The graph node will wait for all work captured in `event`. See\n    cuEventRecord() for details on what is captured by an event. `event`\n    may be from a different context or device than the launch stream.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    event : CUevent\n        Event for the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphAddEventRecordNode\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_487cuGraphAddEventWaitNode = {"cuGraphAddEventWaitNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_487cuGraphAddEventWaitNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_486cuGraphAddEventWaitNode};
static PyObject *__pyx_pw_4cuda_4cuda_487cuGraphAddEventWaitNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddEventWaitNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_event,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEventWaitNode", 1, 4, 4, 1); __PYX_ERR(0, 22793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEventWaitNode", 1, 4, 4, 2); __PYX_ERR(0, 22793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddEventWaitNode", 1, 4, 4, 3); __PYX_ERR(0, 22793, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddEventWaitNode") < 0)) __PYX_ERR(0, 22793, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22793, __pyx_L3_error)
    __pyx_v_event = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddEventWaitNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22793, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEventWaitNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22793, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 22793, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_486cuGraphAddEventWaitNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_23cuGraphAddEventWaitNode_2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22843
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_23cuGraphAddEventWaitNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_48_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_48_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22843, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_23cuGraphAddEventWaitNode_2generator25, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddEventWaitNode_locals_g, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22843, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEventWaitNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_23cuGraphAddEventWaitNode_2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22843, 0, __PYX_ERR(0, 22843, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22843, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22843, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22843, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22843, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22843, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22843, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22843, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22843, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22793
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event wait node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_486cuGraphAddEventWaitNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_23cuGraphAddEventWaitNode_2generator25 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__769)
  __Pyx_RefNannySetupContext("cuGraphAddEventWaitNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22793, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddEventWaitNode", __pyx_f[0], 22793, 0, __PYX_ERR(0, 22793, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22842
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22843
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_23cuGraphAddEventWaitNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22843, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22844
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22844, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22844, __pyx_L1_error)

    /* "cuda/cuda.pyx":22843
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22845
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22846
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22847
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22847, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22848
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22848, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22849
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22850
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22850, __pyx_L1_error)

      /* "cuda/cuda.pyx":22849
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22852
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22852, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22853
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22853, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22847
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22855
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddEventWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22855, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22855, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22856
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEventWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22856, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdependencies;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuGraphAddEventWaitNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_v_numDependencies, (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22856, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":22857
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEventWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22858
 *     err = ccuda.cuGraphAddEventWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":22857
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddEventWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, event._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":22859
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22793
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event wait node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddEventWaitNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_23cuGraphAddEventWaitNode_2generator25);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22862
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event wait node.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_489cuGraphEventWaitNodeGetEvent(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_488cuGraphEventWaitNodeGetEvent[] = "cuGraphEventWaitNodeGetEvent(CUgraphNode hNode: CUgraphNode)\n Returns the event associated with an event wait node.\n\n    Returns the event of event wait node `hNode` in `event_out`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the event for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    event_out : CUevent\n        Pointer to return the event\n\n    See Also\n    --------\n    cuGraphAddEventWaitNode\n    cuGraphEventWaitNodeSetEvent\n    cuGraphEventRecordNodeGetEvent\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_489cuGraphEventWaitNodeGetEvent = {"cuGraphEventWaitNodeGetEvent", (PyCFunction)__pyx_pw_4cuda_4cuda_489cuGraphEventWaitNodeGetEvent, METH_O, __pyx_doc_4cuda_4cuda_488cuGraphEventWaitNodeGetEvent};
static PyObject *__pyx_pw_4cuda_4cuda_489cuGraphEventWaitNodeGetEvent(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphEventWaitNodeGetEvent (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22862, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_488cuGraphEventWaitNodeGetEvent(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_488cuGraphEventWaitNodeGetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__770)
  __Pyx_RefNannySetupContext("cuGraphEventWaitNodeGetEvent", 0);
  __Pyx_TraceCall("cuGraphEventWaitNodeGetEvent", __pyx_f[0], 22862, 0, __PYX_ERR(0, 22862, __pyx_L1_error));

  /* "cuda/cuda.pyx":22890
 *     cuStreamWaitEvent
 *     """
 *     cdef CUevent event_out = CUevent()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphEventWaitNodeGetEvent(hNode._ptr[0], event_out._ptr)
 *     return (CUresult(err), event_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUevent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_event_out = ((struct __pyx_obj_4cuda_4cuda_CUevent *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22891
 *     """
 *     cdef CUevent event_out = CUevent()
 *     err = ccuda.cuGraphEventWaitNodeGetEvent(hNode._ptr[0], event_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), event_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphEventWaitNodeGetEvent((__pyx_v_hNode->_ptr[0]), __pyx_v_event_out->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22891, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":22892
 *     cdef CUevent event_out = CUevent()
 *     err = ccuda.cuGraphEventWaitNodeGetEvent(hNode._ptr[0], event_out._ptr)
 *     return (CUresult(err), event_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_event_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_event_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_event_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22862
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event wait node.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphEventWaitNodeGetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_event_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22895
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event wait node's event.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_491cuGraphEventWaitNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_490cuGraphEventWaitNodeSetEvent[] = "cuGraphEventWaitNodeSetEvent(CUgraphNode hNode: CUgraphNode, CUevent event: CUevent)\n Sets an event wait node's event.\n\n    Sets the event of event wait node `hNode` to `event`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the event for\n    event : CUevent\n        Event to use\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddEventWaitNode\n    cuGraphEventWaitNodeGetEvent\n    cuGraphEventRecordNodeSetEvent\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_491cuGraphEventWaitNodeSetEvent = {"cuGraphEventWaitNodeSetEvent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_491cuGraphEventWaitNodeSetEvent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_490cuGraphEventWaitNodeSetEvent};
static PyObject *__pyx_pw_4cuda_4cuda_491cuGraphEventWaitNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphEventWaitNodeSetEvent (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_event,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphEventWaitNodeSetEvent", 1, 2, 2, 1); __PYX_ERR(0, 22895, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphEventWaitNodeSetEvent") < 0)) __PYX_ERR(0, 22895, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_event = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphEventWaitNodeSetEvent", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22895, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphEventWaitNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 22895, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 22895, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_490cuGraphEventWaitNodeSetEvent(__pyx_self, __pyx_v_hNode, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_490cuGraphEventWaitNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__771)
  __Pyx_RefNannySetupContext("cuGraphEventWaitNodeSetEvent", 0);
  __Pyx_TraceCall("cuGraphEventWaitNodeSetEvent", __pyx_f[0], 22895, 0, __PYX_ERR(0, 22895, __pyx_L1_error));

  /* "cuda/cuda.pyx":22925
 *     cuStreamWaitEvent
 *     """
 *     err = ccuda.cuGraphEventWaitNodeSetEvent(hNode._ptr[0], event._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphEventWaitNodeSetEvent((__pyx_v_hNode->_ptr[0]), (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22925, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":22926
 *     """
 *     err = ccuda.cuGraphEventWaitNodeSetEvent(hNode._ptr[0], event._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22895
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event wait node's event.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphEventWaitNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22929
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresSignalNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore signal node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_493cuGraphAddExternalSemaphoresSignalNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_492cuGraphAddExternalSemaphoresSignalNode[] = "cuGraphAddExternalSemaphoresSignalNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_EXT_SEM_SIGNAL_NODE_PARAMS nodeParams: CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)\n Creates an external semaphore signal node and adds it to a graph.\n\n    Creates a new external semaphore signal node and adds it to `hGraph`\n    with `numDependencies` dependencies specified via `dependencies` and\n    arguments specified in `nodeParams`. It is possible for\n    `numDependencies` to be 0, in which case the node will be placed at the\n    root of the graph. `dependencies` may not have any duplicate entries. A\n    handle to the new node will be returned in `phGraphNode`.\n\n    Performs a signal operation on a set of externally allocated semaphore\n    objects when the node is launched. The operation(s) will occur after\n    all of the node's dependencies have completed.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS\n        Parameters for the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphExternalSemaphoresSignalNodeGetParams\n    cuGraphExternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphAddExternalSemaphoresWaitNode\n    cuImportExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddEventRecordNode\n    cuGraphAddEventWaitNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cu""GraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_493cuGraphAddExternalSemaphoresSignalNode = {"cuGraphAddExternalSemaphoresSignalNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_493cuGraphAddExternalSemaphoresSignalNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_492cuGraphAddExternalSemaphoresSignalNode};
static PyObject *__pyx_pw_4cuda_4cuda_493cuGraphAddExternalSemaphoresSignalNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddExternalSemaphoresSignalNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_nodeParams,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresSignalNode", 1, 4, 4, 1); __PYX_ERR(0, 22929, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresSignalNode", 1, 4, 4, 2); __PYX_ERR(0, 22929, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresSignalNode", 1, 4, 4, 3); __PYX_ERR(0, 22929, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddExternalSemaphoresSignalNode") < 0)) __PYX_ERR(0, 22929, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 22929, __pyx_L3_error)
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresSignalNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22929, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddExternalSemaphoresSignalNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 22929, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 22929, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_492cuGraphAddExternalSemaphoresSignalNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":22985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_50_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_50_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22985, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_2generator26, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddExternalSemaphoresSign, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 22985, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddExternalSemaphoresSignalNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 22985, 0, __PYX_ERR(0, 22985, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 22985, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 22985, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22985, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22985, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 22985, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 22985, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":22929
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresSignalNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore signal node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_492cuGraphAddExternalSemaphoresSignalNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_2generator26 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__772)
  __Pyx_RefNannySetupContext("cuGraphAddExternalSemaphoresSignalNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 22929, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddExternalSemaphoresSignalNode", __pyx_f[0], 22929, 0, __PYX_ERR(0, 22929, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":22984
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22984, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 22985, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":22986
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 22986, __pyx_L1_error)

    /* "cuda/cuda.pyx":22985
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":22987
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22988
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":22989
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22989, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":22990
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22990, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":22991
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":22992
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22992, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 22992, __pyx_L1_error)

      /* "cuda/cuda.pyx":22991
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":22994
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22994, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":22995
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22995, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":22989
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":22997
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresSignalNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22997, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 22997, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":22998
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddExternalSemaphoresSignalNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22998, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 22998, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":22999
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresSignalNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22999, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22999, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddExternalSemaphoresSignalNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 22999, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":23000
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresSignalNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23001
 *     err = ccuda.cuGraphAddExternalSemaphoresSignalNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":23000
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresSignalNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":23002
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":22929
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresSignalNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore signal node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddExternalSemaphoresSignalNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_38cuGraphAddExternalSemaphoresSignalNode_2generator26);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23005
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore signal node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_495cuGraphExternalSemaphoresSignalNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_494cuGraphExternalSemaphoresSignalNodeGetParams[] = "cuGraphExternalSemaphoresSignalNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns an external semaphore signal node's parameters.\n\n    Returns the parameters of an external semaphore signal node `hNode` in\n    `params_out`. The `extSemArray` and `paramsArray` returned in\n    `params_out`, are owned by the node. This memory remains valid until\n    the node is destroyed or its parameters are modified, and should not be\n    modified directly. Use cuGraphExternalSemaphoresSignalNodeSetParams to\n    update the parameters of this node.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    params_out : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuLaunchKernel\n    cuGraphAddExternalSemaphoresSignalNode\n    cuGraphExternalSemaphoresSignalNodeSetParams\n    cuGraphAddExternalSemaphoresWaitNode\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_495cuGraphExternalSemaphoresSignalNodeGetParams = {"cuGraphExternalSemaphoresSignalNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_495cuGraphExternalSemaphoresSignalNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_494cuGraphExternalSemaphoresSignalNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_495cuGraphExternalSemaphoresSignalNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresSignalNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23005, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_494cuGraphExternalSemaphoresSignalNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_494cuGraphExternalSemaphoresSignalNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_params_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__773)
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresSignalNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphExternalSemaphoresSignalNodeGetParams", __pyx_f[0], 23005, 0, __PYX_ERR(0, 23005, __pyx_L1_error));

  /* "cuda/cuda.pyx":23039
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     cdef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS params_out = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExternalSemaphoresSignalNodeGetParams(hNode._ptr[0], params_out._ptr)
 *     return (CUresult(err), params_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_params_out = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23040
 *     """
 *     cdef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS params_out = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS()
 *     err = ccuda.cuGraphExternalSemaphoresSignalNodeGetParams(hNode._ptr[0], params_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), params_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresSignalNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_params_out->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23040, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":23041
 *     cdef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS params_out = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS()
 *     err = ccuda.cuGraphExternalSemaphoresSignalNodeGetParams(hNode._ptr[0], params_out._ptr)
 *     return (CUresult(err), params_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23041, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_params_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_params_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_params_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23005
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore signal node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExternalSemaphoresSignalNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_params_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23044
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore signal node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_497cuGraphExternalSemaphoresSignalNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_496cuGraphExternalSemaphoresSignalNodeSetParams[] = "cuGraphExternalSemaphoresSignalNodeSetParams(CUgraphNode hNode: CUgraphNode, CUDA_EXT_SEM_SIGNAL_NODE_PARAMS nodeParams: CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)\n Sets an external semaphore signal node's parameters.\n\n    Sets the parameters of an external semaphore signal node `hNode` to\n    `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the parameters for\n    nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS\n        Parameters to copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddExternalSemaphoresSignalNode\n    cuGraphExternalSemaphoresSignalNodeSetParams\n    cuGraphAddExternalSemaphoresWaitNode\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_497cuGraphExternalSemaphoresSignalNodeSetParams = {"cuGraphExternalSemaphoresSignalNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_497cuGraphExternalSemaphoresSignalNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_496cuGraphExternalSemaphoresSignalNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_497cuGraphExternalSemaphoresSignalNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresSignalNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExternalSemaphoresSignalNodeSetParams", 1, 2, 2, 1); __PYX_ERR(0, 23044, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExternalSemaphoresSignalNodeSetParams") < 0)) __PYX_ERR(0, 23044, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExternalSemaphoresSignalNodeSetParams", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23044, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExternalSemaphoresSignalNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23044, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 23044, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_496cuGraphExternalSemaphoresSignalNodeSetParams(__pyx_self, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_496cuGraphExternalSemaphoresSignalNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__774)
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresSignalNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExternalSemaphoresSignalNodeSetParams", __pyx_f[0], 23044, 0, __PYX_ERR(0, 23044, __pyx_L1_error));

  /* "cuda/cuda.pyx":23075
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExternalSemaphoresSignalNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23075, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 23075, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":23076
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExternalSemaphoresSignalNodeSetParams(hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresSignalNodeSetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23076, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":23077
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExternalSemaphoresSignalNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23044
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore signal node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExternalSemaphoresSignalNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23080
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore wait node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_499cuGraphAddExternalSemaphoresWaitNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_498cuGraphAddExternalSemaphoresWaitNode[] = "cuGraphAddExternalSemaphoresWaitNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_EXT_SEM_WAIT_NODE_PARAMS nodeParams: CUDA_EXT_SEM_WAIT_NODE_PARAMS)\n Creates an external semaphore wait node and adds it to a graph.\n\n    Creates a new external semaphore wait node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and\n    arguments specified in `nodeParams`. It is possible for\n    `numDependencies` to be 0, in which case the node will be placed at the\n    root of the graph. `dependencies` may not have any duplicate entries. A\n    handle to the new node will be returned in `phGraphNode`.\n\n    Performs a wait operation on a set of externally allocated semaphore\n    objects when the node is launched. The node's dependencies will not be\n    launched until the wait operation has completed.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS\n        Parameters for the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphExternalSemaphoresWaitNodeGetParams\n    cuGraphExternalSemaphoresWaitNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphAddExternalSemaphoresSignalNode\n    cuImportExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddEventRecordNode\n    cuGraphAddEventWaitNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddMemcpy""Node\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_499cuGraphAddExternalSemaphoresWaitNode = {"cuGraphAddExternalSemaphoresWaitNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_499cuGraphAddExternalSemaphoresWaitNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_498cuGraphAddExternalSemaphoresWaitNode};
static PyObject *__pyx_pw_4cuda_4cuda_499cuGraphAddExternalSemaphoresWaitNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddExternalSemaphoresWaitNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_nodeParams,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresWaitNode", 1, 4, 4, 1); __PYX_ERR(0, 23080, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresWaitNode", 1, 4, 4, 2); __PYX_ERR(0, 23080, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresWaitNode", 1, 4, 4, 3); __PYX_ERR(0, 23080, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddExternalSemaphoresWaitNode") < 0)) __PYX_ERR(0, 23080, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23080, __pyx_L3_error)
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddExternalSemaphoresWaitNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23080, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddExternalSemaphoresWaitNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23080, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 23080, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_498cuGraphAddExternalSemaphoresWaitNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":23136
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_52_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_52_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23136, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_2generator27, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddExternalSemaphoresWait, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 23136, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddExternalSemaphoresWaitNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 23136, 0, __PYX_ERR(0, 23136, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 23136, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 23136, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23136, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 23136, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 23136, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 23136, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23080
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore wait node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_498cuGraphAddExternalSemaphoresWaitNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_2generator27 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__775)
  __Pyx_RefNannySetupContext("cuGraphAddExternalSemaphoresWaitNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23080, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddExternalSemaphoresWaitNode", __pyx_f[0], 23080, 0, __PYX_ERR(0, 23080, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":23135
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23136
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23136, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":23137
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 23137, __pyx_L1_error)

    /* "cuda/cuda.pyx":23136
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":23138
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23139
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":23140
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23141
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23141, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23142
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":23143
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 23143, __pyx_L1_error)

      /* "cuda/cuda.pyx":23142
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":23145
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23145, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":23146
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23146, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":23140
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":23148
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 23148, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":23149
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddExternalSemaphoresWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23149, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 23149, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":23150
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddExternalSemaphoresWaitNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23150, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":23151
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23152
 *     err = ccuda.cuGraphAddExternalSemaphoresWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":23151
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddExternalSemaphoresWaitNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":23153
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23080
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore wait node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddExternalSemaphoresWaitNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_36cuGraphAddExternalSemaphoresWaitNode_2generator27);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23156
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore wait node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_501cuGraphExternalSemaphoresWaitNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_500cuGraphExternalSemaphoresWaitNodeGetParams[] = "cuGraphExternalSemaphoresWaitNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns an external semaphore wait node's parameters.\n\n    Returns the parameters of an external semaphore wait node `hNode` in\n    `params_out`. The `extSemArray` and `paramsArray` returned in\n    `params_out`, are owned by the node. This memory remains valid until\n    the node is destroyed or its parameters are modified, and should not be\n    modified directly. Use cuGraphExternalSemaphoresSignalNodeSetParams to\n    update the parameters of this node.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    params_out : CUDA_EXT_SEM_WAIT_NODE_PARAMS\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuLaunchKernel\n    cuGraphAddExternalSemaphoresWaitNode\n    cuGraphExternalSemaphoresWaitNodeSetParams\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_501cuGraphExternalSemaphoresWaitNodeGetParams = {"cuGraphExternalSemaphoresWaitNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_501cuGraphExternalSemaphoresWaitNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_500cuGraphExternalSemaphoresWaitNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_501cuGraphExternalSemaphoresWaitNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresWaitNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23156, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_500cuGraphExternalSemaphoresWaitNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_500cuGraphExternalSemaphoresWaitNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_params_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__776)
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresWaitNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphExternalSemaphoresWaitNodeGetParams", __pyx_f[0], 23156, 0, __PYX_ERR(0, 23156, __pyx_L1_error));

  /* "cuda/cuda.pyx":23189
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     cdef CUDA_EXT_SEM_WAIT_NODE_PARAMS params_out = CUDA_EXT_SEM_WAIT_NODE_PARAMS()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExternalSemaphoresWaitNodeGetParams(hNode._ptr[0], params_out._ptr)
 *     return (CUresult(err), params_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_params_out = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23190
 *     """
 *     cdef CUDA_EXT_SEM_WAIT_NODE_PARAMS params_out = CUDA_EXT_SEM_WAIT_NODE_PARAMS()
 *     err = ccuda.cuGraphExternalSemaphoresWaitNodeGetParams(hNode._ptr[0], params_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), params_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresWaitNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_params_out->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23190, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":23191
 *     cdef CUDA_EXT_SEM_WAIT_NODE_PARAMS params_out = CUDA_EXT_SEM_WAIT_NODE_PARAMS()
 *     err = ccuda.cuGraphExternalSemaphoresWaitNodeGetParams(hNode._ptr[0], params_out._ptr)
 *     return (CUresult(err), params_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_params_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_params_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_params_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23156
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore wait node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExternalSemaphoresWaitNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_params_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23194
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore wait node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_503cuGraphExternalSemaphoresWaitNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_502cuGraphExternalSemaphoresWaitNodeSetParams[] = "cuGraphExternalSemaphoresWaitNodeSetParams(CUgraphNode hNode: CUgraphNode, CUDA_EXT_SEM_WAIT_NODE_PARAMS nodeParams: CUDA_EXT_SEM_WAIT_NODE_PARAMS)\n Sets an external semaphore wait node's parameters.\n\n    Sets the parameters of an external semaphore wait node `hNode` to\n    `nodeParams`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to set the parameters for\n    nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS\n        Parameters to copy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_OUT_OF_MEMORY\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddExternalSemaphoresWaitNode\n    cuGraphExternalSemaphoresWaitNodeSetParams\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_503cuGraphExternalSemaphoresWaitNodeSetParams = {"cuGraphExternalSemaphoresWaitNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_503cuGraphExternalSemaphoresWaitNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_502cuGraphExternalSemaphoresWaitNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_503cuGraphExternalSemaphoresWaitNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresWaitNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExternalSemaphoresWaitNodeSetParams", 1, 2, 2, 1); __PYX_ERR(0, 23194, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExternalSemaphoresWaitNodeSetParams") < 0)) __PYX_ERR(0, 23194, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExternalSemaphoresWaitNodeSetParams", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23194, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExternalSemaphoresWaitNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23194, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 23194, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_502cuGraphExternalSemaphoresWaitNodeSetParams(__pyx_self, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_502cuGraphExternalSemaphoresWaitNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__777)
  __Pyx_RefNannySetupContext("cuGraphExternalSemaphoresWaitNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExternalSemaphoresWaitNodeSetParams", __pyx_f[0], 23194, 0, __PYX_ERR(0, 23194, __pyx_L1_error));

  /* "cuda/cuda.pyx":23224
 *     cuWaitExternalSemaphoresAsync
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExternalSemaphoresWaitNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23224, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 23224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":23225
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExternalSemaphoresWaitNodeSetParams(hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresWaitNodeSetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23225, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":23226
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExternalSemaphoresWaitNodeSetParams(hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23194
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore wait node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExternalSemaphoresWaitNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23229
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemAllocNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an allocation node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_505cuGraphAddMemAllocNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_504cuGraphAddMemAllocNode[] = "cuGraphAddMemAllocNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUDA_MEM_ALLOC_NODE_PARAMS nodeParams: CUDA_MEM_ALLOC_NODE_PARAMS)\n Creates an allocation node and adds it to a graph.\n\n    Creates a new allocation node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and\n    arguments specified in `nodeParams`. It is possible for\n    `numDependencies` to be 0, in which case the node will be placed at the\n    root of the graph. `dependencies` may not have any duplicate entries. A\n    handle to the new node will be returned in `phGraphNode`.\n\n    If the allocation is freed in the same graph, by creating a free node\n    using cuGraphAddMemFreeNode, the allocation can be accessed by nodes\n    ordered after the allocation node but before the free node. These\n    allocations cannot be freed outside the owning graph, and they can only\n    be freed once in the owning graph.\n\n    If the allocation is not freed in the same graph, then it can be\n    accessed not only by nodes in the graph which are ordered after the\n    allocation node, but also by stream operations ordered after the\n    graph's execution but before the allocation is freed.\n\n    Allocations which are not freed in the same graph can be freed by:\n    passing the allocation to cuMemFreeAsync or cuMemFree; launching a\n    graph with a free node for that allocation; or specifying\n    CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH during instantiation,\n    which makes each launch behave as though it called cuMemFreeAsync for\n    every unfreed allocation.\n\n    It is not possible to free an allocation in both the owning graph and\n    another graph. If the allocation is freed in the same graph, a free\n    node cannot be added to another graph. If the allocation is freed in\n    another graph, a free node can no longer be added to the owning graph.\n\n    The following restrictions apply to graphs which con""tain allocation\n    and/or memory free nodes: Nodes and edges of the graph cannot be\n    deleted. The graph cannot be used in a child node. Only one\n    instantiation of the graph may exist at any point in time. The graph\n    cannot be cloned.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS\n        Parameters for the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphAddMemFreeNode\n    cuGraphMemAllocNodeGetParams\n    cuDeviceGraphMemTrim\n    cuDeviceGetGraphMemAttribute\n    cuDeviceSetGraphMemAttribute\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddEventRecordNode\n    cuGraphAddEventWaitNode\n    cuGraphAddExternalSemaphoresSignalNode\n    cuGraphAddExternalSemaphoresWaitNode\n    cuGraphAddKernelNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_505cuGraphAddMemAllocNode = {"cuGraphAddMemAllocNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_505cuGraphAddMemAllocNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_504cuGraphAddMemAllocNode};
static PyObject *__pyx_pw_4cuda_4cuda_505cuGraphAddMemAllocNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddMemAllocNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_nodeParams,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemAllocNode", 1, 4, 4, 1); __PYX_ERR(0, 23229, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemAllocNode", 1, 4, 4, 2); __PYX_ERR(0, 23229, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemAllocNode", 1, 4, 4, 3); __PYX_ERR(0, 23229, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddMemAllocNode") < 0)) __PYX_ERR(0, 23229, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23229, __pyx_L3_error)
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddMemAllocNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23229, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemAllocNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23229, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 23229, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_504cuGraphAddMemAllocNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddMemAllocNode_2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":23312
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_22cuGraphAddMemAllocNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_54_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_54_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23312, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_22cuGraphAddMemAllocNode_2generator28, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddMemAllocNode_locals_ge, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 23312, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemAllocNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddMemAllocNode_2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 23312, 0, __PYX_ERR(0, 23312, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 23312, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 23312, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23312, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 23312, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 23312, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 23312, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23229
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemAllocNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an allocation node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_504cuGraphAddMemAllocNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS *__pyx_v_nodeParams) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddMemAllocNode_2generator28 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__778)
  __Pyx_RefNannySetupContext("cuGraphAddMemAllocNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23229, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddMemAllocNode", __pyx_f[0], 23229, 0, __PYX_ERR(0, 23229, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":23311
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23312
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_22cuGraphAddMemAllocNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":23313
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 23313, __pyx_L1_error)

    /* "cuda/cuda.pyx":23312
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":23314
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23315
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":23316
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23317
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23317, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23318
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":23319
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 23319, __pyx_L1_error)

      /* "cuda/cuda.pyx":23318
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":23321
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23321, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":23322
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23322, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":23316
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":23324
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_MEM_ALLOC_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddMemAllocNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23324, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 23324, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":23325
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_MEM_ALLOC_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddMemAllocNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23325, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 23325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_9 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_9 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_9;

  /* "cuda/cuda.pyx":23326
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     cdef ccuda.CUDA_MEM_ALLOC_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddMemAllocNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cdependencies;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddMemAllocNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_10, __pyx_v_numDependencies, __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23326, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":23327
 *     cdef ccuda.CUDA_MEM_ALLOC_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddMemAllocNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23328
 *     err = ccuda.cuGraphAddMemAllocNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":23327
 *     cdef ccuda.CUDA_MEM_ALLOC_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphAddMemAllocNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, cnodeParams_ptr)
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":23329
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23229
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemAllocNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an allocation node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemAllocNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_22cuGraphAddMemAllocNode_2generator28);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23332
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemAllocNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory alloc node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_507cuGraphMemAllocNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_506cuGraphMemAllocNodeGetParams[] = "cuGraphMemAllocNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns a memory alloc node's parameters.\n\n    Returns the parameters of a memory alloc node `hNode` in `params_out`.\n    The `poolProps` and `accessDescs` returned in `params_out`, are owned\n    by the node. This memory remains valid until the node is destroyed. The\n    returned parameters must not be modified.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    params_out : CUDA_MEM_ALLOC_NODE_PARAMS\n        Pointer to return the parameters\n\n    See Also\n    --------\n    cuGraphAddMemAllocNode\n    cuGraphMemFreeNodeGetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_507cuGraphMemAllocNodeGetParams = {"cuGraphMemAllocNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_507cuGraphMemAllocNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_506cuGraphMemAllocNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_507cuGraphMemAllocNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphMemAllocNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23332, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_506cuGraphMemAllocNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_506cuGraphMemAllocNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS *__pyx_v_params_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__779)
  __Pyx_RefNannySetupContext("cuGraphMemAllocNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphMemAllocNodeGetParams", __pyx_f[0], 23332, 0, __PYX_ERR(0, 23332, __pyx_L1_error));

  /* "cuda/cuda.pyx":23360
 *     cuGraphMemFreeNodeGetParams
 *     """
 *     cdef CUDA_MEM_ALLOC_NODE_PARAMS params_out = CUDA_MEM_ALLOC_NODE_PARAMS()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphMemAllocNodeGetParams(hNode._ptr[0], params_out._ptr)
 *     return (CUresult(err), params_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_params_out = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23361
 *     """
 *     cdef CUDA_MEM_ALLOC_NODE_PARAMS params_out = CUDA_MEM_ALLOC_NODE_PARAMS()
 *     err = ccuda.cuGraphMemAllocNodeGetParams(hNode._ptr[0], params_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), params_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphMemAllocNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_params_out->__pyx_base._ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23361, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":23362
 *     cdef CUDA_MEM_ALLOC_NODE_PARAMS params_out = CUDA_MEM_ALLOC_NODE_PARAMS()
 *     err = ccuda.cuGraphMemAllocNodeGetParams(hNode._ptr[0], params_out._ptr)
 *     return (CUresult(err), params_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_params_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_params_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_params_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23332
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemAllocNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory alloc node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemAllocNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_params_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23365
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemFreeNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Creates a memory free node and adds it to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_509cuGraphAddMemFreeNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_508cuGraphAddMemFreeNode[] = "cuGraphAddMemFreeNode(CUgraph hGraph: CUgraph, dependencies: List[CUgraphNode], size_t numDependencies, CUdeviceptr dptr: CUdeviceptr)\n Creates a memory free node and adds it to a graph.\n\n    Creates a new memory free node and adds it to `hGraph` with\n    `numDependencies` dependencies specified via `dependencies` and\n    arguments specified in `nodeParams`. It is possible for\n    `numDependencies` to be 0, in which case the node will be placed at the\n    root of the graph. `dependencies` may not have any duplicate entries. A\n    handle to the new node will be returned in `phGraphNode`.\n\n    The following restrictions apply to graphs which contain allocation\n    and/or memory free nodes: Nodes and edges of the graph cannot be\n    deleted. The graph cannot be used in a child node. Only one\n    instantiation of the graph may exist at any point in time. The graph\n    cannot be cloned.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which to add the node\n    dependencies : List[CUgraphNode]\n        Dependencies of the node\n    numDependencies : size_t\n        Number of dependencies\n    dptr : CUdeviceptr\n        Address of memory to free\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphNode : CUgraphNode\n        Returns newly created node\n\n    See Also\n    --------\n    cuGraphAddMemAllocNode\n    cuGraphMemFreeNodeGetParams\n    cuDeviceGraphMemTrim\n    cuDeviceGetGraphMemAttribute\n    cuDeviceSetGraphMemAttribute\n    cuMemAllocAsync\n    cuMemFreeAsync\n    cuGraphCreate\n    cuGraphDestroyNode\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddEventRecordNode\n    cuGraphAddEventWaitNode\n    cuGraphAddExternalSemaphoresSignalNode\n    cuGraphAddExternalSemaphoresWaitNode\n    cuGraphAddKernelNode\n    cuGraphAddMemcpyNode\n    cuGrap""hAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_509cuGraphAddMemFreeNode = {"cuGraphAddMemFreeNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_509cuGraphAddMemFreeNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_508cuGraphAddMemFreeNode};
static PyObject *__pyx_pw_4cuda_4cuda_509cuGraphAddMemFreeNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_dependencies = 0;
  size_t __pyx_v_numDependencies;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddMemFreeNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_dependencies,&__pyx_n_s_numDependencies,&__pyx_n_s_dptr_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemFreeNode", 1, 4, 4, 1); __PYX_ERR(0, 23365, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemFreeNode", 1, 4, 4, 2); __PYX_ERR(0, 23365, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddMemFreeNode", 1, 4, 4, 3); __PYX_ERR(0, 23365, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddMemFreeNode") < 0)) __PYX_ERR(0, 23365, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_dependencies = values[1];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23365, __pyx_L3_error)
    __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddMemFreeNode", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23365, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemFreeNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23365, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 23365, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_508cuGraphAddMemFreeNode(__pyx_self, __pyx_v_hGraph, __pyx_v_dependencies, __pyx_v_numDependencies, __pyx_v_dptr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_21cuGraphAddMemFreeNode_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":23425
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */

static PyObject *__pyx_pf_4cuda_4cuda_21cuGraphAddMemFreeNode_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_56_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_56_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23425, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_21cuGraphAddMemFreeNode_2generator29, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddMemFreeNode_locals_gen, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 23425, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemFreeNode.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_21cuGraphAddMemFreeNode_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 23425, 0, __PYX_ERR(0, 23425, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 23425, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) { __Pyx_RaiseClosureNameError("dependencies"); __PYX_ERR(0, 23425, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23425, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 23425, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 23425, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 23425, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23365
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemFreeNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Creates a memory free node and adds it to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_508cuGraphAddMemFreeNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_dependencies, size_t __pyx_v_numDependencies, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *__pyx_cur_scope;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phGraphNode = 0;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_21cuGraphAddMemFreeNode_2generator29 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__780)
  __Pyx_RefNannySetupContext("cuGraphAddMemFreeNode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23365, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddMemFreeNode", __pyx_f[0], 23365, 0, __PYX_ERR(0, 23365, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_dependencies = __pyx_v_dependencies;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dependencies);

  /* "cuda/cuda.pyx":23424
 *     cuGraphAddMemsetNode
 *     """
 *     dependencies = [] if dependencies is None else dependencies             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_dependencies == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dependencies);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dependencies);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dependencies, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23425
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_21cuGraphAddMemFreeNode_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":23426
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__698, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 23426, __pyx_L1_error)

    /* "cuda/cuda.pyx":23425
 *     """
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 */
  }

  /* "cuda/cuda.pyx":23427
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_phGraphNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23428
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":23429
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23430
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23430, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23431
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_4 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cuda/cuda.pyx":23432
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(dependencies)):
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 23432, __pyx_L1_error)

      /* "cuda/cuda.pyx":23431
 *     if len(dependencies) > 0:
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":23434
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(dependencies)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(dependencies)):             # <<<<<<<<<<<<<<
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23434, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":23435
 *         else:
 *             for idx in range(len(dependencies)):
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23435, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cdependencies[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":23429
 *     cdef CUgraphNode phGraphNode = CUgraphNode()
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*> calloc(len(dependencies), sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":23437
 *                 cdependencies[idx] = (<CUgraphNode>dependencies[idx])._ptr[0]
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphAddMemFreeNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, dptr._ptr[0])
 *     if cdependencies is not NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = ((__pyx_v_numDependencies > ((size_t)__pyx_t_5)) != 0);
  if (unlikely(__pyx_t_4)) {
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_dependencies;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_List_is_too_small, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_kp_u__564); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 23437, __pyx_L1_error)
  }

  /* "cuda/cuda.pyx":23438
 * 
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddMemFreeNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, dptr._ptr[0])             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_dependencies;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 23438, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_dependencies, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1)->_ptr;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cdependencies;
  }
  __pyx_t_10 = __pyx_f_4cuda_5ccuda_cuGraphAddMemFreeNode(__pyx_v_phGraphNode->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_v_numDependencies, (__pyx_v_dptr->_ptr[0])); if (unlikely(__pyx_t_10 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23438, __pyx_L1_error)
  __pyx_v_err = __pyx_t_10;

  /* "cuda/cuda.pyx":23439
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddMemFreeNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, dptr._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  __pyx_t_4 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_4) {

    /* "cuda/cuda.pyx":23440
 *     err = ccuda.cuGraphAddMemFreeNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, dptr._ptr[0])
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphNode)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":23439
 *     if numDependencies > <size_t>len(dependencies): raise RuntimeError("List is too small: " + str(len(dependencies)) + " < " + str(numDependencies))
 *     err = ccuda.cuGraphAddMemFreeNode(phGraphNode._ptr, hGraph._ptr[0], (<CUgraphNode>dependencies[0])._ptr if len(dependencies) == 1 else cdependencies, numDependencies, dptr._ptr[0])
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)
 */
  }

  /* "cuda/cuda.pyx":23441
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), phGraphNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 23441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphNode));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_phGraphNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23365
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemFreeNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Creates a memory free node and adds it to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddMemFreeNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphNode);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_21cuGraphAddMemFreeNode_2generator29);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23444
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemFreeNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory free node's parameters.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_511cuGraphMemFreeNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_510cuGraphMemFreeNodeGetParams[] = "cuGraphMemFreeNodeGetParams(CUgraphNode hNode: CUgraphNode)\n Returns a memory free node's parameters.\n\n    Returns the address of a memory free node `hNode` in `dptr_out`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to get the parameters for\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    dptr_out : CUdeviceptr\n        Pointer to return the device address\n\n    See Also\n    --------\n    cuGraphAddMemFreeNode\n    cuGraphMemAllocNodeGetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_511cuGraphMemFreeNodeGetParams = {"cuGraphMemFreeNodeGetParams", (PyCFunction)__pyx_pw_4cuda_4cuda_511cuGraphMemFreeNodeGetParams, METH_O, __pyx_doc_4cuda_4cuda_510cuGraphMemFreeNodeGetParams};
static PyObject *__pyx_pw_4cuda_4cuda_511cuGraphMemFreeNodeGetParams(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphMemFreeNodeGetParams (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23444, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_510cuGraphMemFreeNodeGetParams(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_510cuGraphMemFreeNodeGetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__781)
  __Pyx_RefNannySetupContext("cuGraphMemFreeNodeGetParams", 0);
  __Pyx_TraceCall("cuGraphMemFreeNodeGetParams", __pyx_f[0], 23444, 0, __PYX_ERR(0, 23444, __pyx_L1_error));

  /* "cuda/cuda.pyx":23469
 *     cuGraphMemAllocNodeGetParams
 *     """
 *     cdef CUdeviceptr dptr_out = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphMemFreeNodeGetParams(hNode._ptr[0], dptr_out._ptr)
 *     return (CUresult(err), dptr_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_dptr_out = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23470
 *     """
 *     cdef CUdeviceptr dptr_out = CUdeviceptr()
 *     err = ccuda.cuGraphMemFreeNodeGetParams(hNode._ptr[0], dptr_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dptr_out)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphMemFreeNodeGetParams((__pyx_v_hNode->_ptr[0]), __pyx_v_dptr_out->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23470, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":23471
 *     cdef CUdeviceptr dptr_out = CUdeviceptr()
 *     err = ccuda.cuGraphMemFreeNodeGetParams(hNode._ptr[0], dptr_out._ptr)
 *     return (CUresult(err), dptr_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_dptr_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_dptr_out));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dptr_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23444
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemFreeNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory free node's parameters.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphMemFreeNodeGetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_dptr_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23474
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGraphMemTrim(device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Free unused memory that was cached on the specified device for use with graphs back to the OS.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_513cuDeviceGraphMemTrim(PyObject *__pyx_self, PyObject *__pyx_v_device); /*proto*/
static char __pyx_doc_4cuda_4cuda_512cuDeviceGraphMemTrim[] = "cuDeviceGraphMemTrim(CUdevice device: CUdevice)\n Free unused memory that was cached on the specified device for use with graphs back to the OS.\n\n    Blocks which are not in use by a graph that is either currently\n    executing or scheduled to execute are freed back to the operating\n    system.\n\n    Parameters\n    ----------\n    device : CUdevice\n        The device for which cached memory should be freed.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_DEVICE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddMemAllocNode\n    cuGraphAddMemFreeNode\n    cuDeviceSetGraphMemAttribute\n    cuDeviceGetGraphMemAttribute\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_513cuDeviceGraphMemTrim = {"cuDeviceGraphMemTrim", (PyCFunction)__pyx_pw_4cuda_4cuda_513cuDeviceGraphMemTrim, METH_O, __pyx_doc_4cuda_4cuda_512cuDeviceGraphMemTrim};
static PyObject *__pyx_pw_4cuda_4cuda_513cuDeviceGraphMemTrim(PyObject *__pyx_self, PyObject *__pyx_v_device) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGraphMemTrim (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_device), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "device", 0))) __PYX_ERR(0, 23474, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_512cuDeviceGraphMemTrim(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUdevice *)__pyx_v_device));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_512cuDeviceGraphMemTrim(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__782)
  __Pyx_RefNannySetupContext("cuDeviceGraphMemTrim", 0);
  __Pyx_TraceCall("cuDeviceGraphMemTrim", __pyx_f[0], 23474, 0, __PYX_ERR(0, 23474, __pyx_L1_error));

  /* "cuda/cuda.pyx":23501
 *     cuDeviceGetGraphMemAttribute
 *     """
 *     err = ccuda.cuDeviceGraphMemTrim(device._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceGraphMemTrim((__pyx_v_device->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23501, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":23502
 *     """
 *     err = ccuda.cuDeviceGraphMemTrim(device._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23474
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGraphMemTrim(device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Free unused memory that was cached on the specified device for use with graphs back to the OS.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGraphMemTrim", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23505
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute):             # <<<<<<<<<<<<<<
 *     """ Query asynchronous allocation attributes related to graphs.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_515cuDeviceGetGraphMemAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_514cuDeviceGetGraphMemAttribute[] = "cuDeviceGetGraphMemAttribute(CUdevice device: CUdevice, attr: CUgraphMem_attribute)\n Query asynchronous allocation attributes related to graphs.\n\n    Valid attributes are:\n\n    CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT: Amount of memory, in bytes,\n    currently associated with graphs CU_GRAPH_MEM_ATTR_USED_MEM_HIGH: High\n    watermark of memory, in bytes, associated with graphs since the last\n    time it was reset. High watermark can only be reset to zero.\n    CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT: Amount of memory, in bytes,\n    currently allocated for use by the CUDA graphs asynchronous allocator.\n    CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH: High watermark of memory, in\n    bytes, currently allocated for use by the CUDA graphs asynchronous\n    allocator.\n\n    Parameters\n    ----------\n    device : CUdevice\n        Specifies the scope of the query\n    attr : CUgraphMem_attribute\n        attribute to get\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_DEVICE\n    value : Any\n        retrieved value\n\n    See Also\n    --------\n    cuDeviceSetGraphMemAttribute\n    cuGraphAddMemAllocNode\n    cuGraphAddMemFreeNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_515cuDeviceGetGraphMemAttribute = {"cuDeviceGetGraphMemAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_515cuDeviceGetGraphMemAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_514cuDeviceGetGraphMemAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_515cuDeviceGetGraphMemAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device = 0;
  PyObject *__pyx_v_attr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetGraphMemAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_attr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetGraphMemAttribute", 1, 2, 2, 1); __PYX_ERR(0, 23505, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetGraphMemAttribute") < 0)) __PYX_ERR(0, 23505, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_device = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[0]);
    __pyx_v_attr = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetGraphMemAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23505, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetGraphMemAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_device), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "device", 0))) __PYX_ERR(0, 23505, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 23505, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_514cuDeviceGetGraphMemAttribute(__pyx_self, __pyx_v_device, __pyx_v_attr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_514cuDeviceGetGraphMemAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device, PyObject *__pyx_v_attr) {
  __pyx_t_4cuda_5ccuda_CUgraphMem_attribute __pyx_v_cattr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute *__pyx_v_cvalue = 0;
  void *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUgraphMem_attribute __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__783)
  __Pyx_RefNannySetupContext("cuDeviceGetGraphMemAttribute", 0);
  __Pyx_TraceCall("cuDeviceGetGraphMemAttribute", __pyx_f[0], 23505, 0, __PYX_ERR(0, 23505, __pyx_L1_error));

  /* "cuda/cuda.pyx":23541
 *     cuGraphAddMemFreeNode
 *     """
 *     cdef ccuda.CUgraphMem_attribute cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, 0, is_getter=True)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 23541, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":23542
 *     """
 *     cdef ccuda.CUgraphMem_attribute cattr = attr.value
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, 0, is_getter=True)             # <<<<<<<<<<<<<<
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuDeviceGetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_attr);
  __Pyx_GIVEREF(__pyx_v_attr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_attr);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_is_getter, Py_True) < 0) __PYX_ERR(0, 23542, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUgraphMem_attribute), __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cvalue = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":23543
 *     cdef ccuda.CUgraphMem_attribute cattr = attr.value
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, 0, is_getter=True)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err), cvalue.pyObj())
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_cptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 23543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_cvalue_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_5));

  /* "cuda/cuda.pyx":23544
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, 0, is_getter=True)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuDeviceGetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), cvalue.pyObj())
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuDeviceGetGraphMemAttribute((__pyx_v_device->_ptr[0]), __pyx_v_cattr, __pyx_v_cvalue_ptr); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23544, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":23545
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuDeviceGetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err), cvalue.pyObj())             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_pyObj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23505
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute):             # <<<<<<<<<<<<<<
 *     """ Query asynchronous allocation attributes related to graphs.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetGraphMemAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23548
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Set asynchronous allocation attributes related to graphs.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_517cuDeviceSetGraphMemAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_516cuDeviceSetGraphMemAttribute[] = "cuDeviceSetGraphMemAttribute(CUdevice device: CUdevice, attr: CUgraphMem_attribute, value)\n Set asynchronous allocation attributes related to graphs.\n\n    Valid attributes are:\n\n    CU_GRAPH_MEM_ATTR_USED_MEM_HIGH: High watermark of memory, in bytes,\n    associated with graphs since the last time it was reset. High watermark\n    can only be reset to zero. CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH: High\n    watermark of memory, in bytes, currently allocated for use by the CUDA\n    graphs asynchronous allocator.\n\n    Parameters\n    ----------\n    device : CUdevice\n        Specifies the scope of the query\n    attr : CUgraphMem_attribute\n        attribute to get\n    value : Any\n        pointer to value to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_DEVICE\n    None\n        None\n\n    See Also\n    --------\n    cuDeviceGetGraphMemAttribute\n    cuGraphAddMemAllocNode\n    cuGraphAddMemFreeNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_517cuDeviceSetGraphMemAttribute = {"cuDeviceSetGraphMemAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_517cuDeviceSetGraphMemAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_516cuDeviceSetGraphMemAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_517cuDeviceSetGraphMemAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_value = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceSetGraphMemAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_attr,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceSetGraphMemAttribute", 1, 3, 3, 1); __PYX_ERR(0, 23548, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceSetGraphMemAttribute", 1, 3, 3, 2); __PYX_ERR(0, 23548, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceSetGraphMemAttribute") < 0)) __PYX_ERR(0, 23548, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_device = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[0]);
    __pyx_v_attr = values[1];
    __pyx_v_value = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceSetGraphMemAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23548, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceSetGraphMemAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_device), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "device", 0))) __PYX_ERR(0, 23548, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 23548, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_516cuDeviceSetGraphMemAttribute(__pyx_self, __pyx_v_device, __pyx_v_attr, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_516cuDeviceSetGraphMemAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_device, PyObject *__pyx_v_attr, PyObject *__pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUgraphMem_attribute __pyx_v_cattr;
  struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute *__pyx_v_cvalue = 0;
  void *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUgraphMem_attribute __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__784)
  __Pyx_RefNannySetupContext("cuDeviceSetGraphMemAttribute", 0);
  __Pyx_TraceCall("cuDeviceSetGraphMemAttribute", __pyx_f[0], 23548, 0, __PYX_ERR(0, 23548, __pyx_L1_error));

  /* "cuda/cuda.pyx":23582
 *     cuGraphAddMemFreeNode
 *     """
 *     cdef ccuda.CUgraphMem_attribute cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 23582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":23583
 *     """
 *     cdef ccuda.CUgraphMem_attribute cattr = attr.value
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, value, is_getter=False)             # <<<<<<<<<<<<<<
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuDeviceSetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_attr);
  __Pyx_GIVEREF(__pyx_v_attr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_attr);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_value);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_is_getter, Py_False) < 0) __PYX_ERR(0, 23583, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperCUgraphMem_attribute), __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_cvalue = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":23584
 *     cdef ccuda.CUgraphMem_attribute cattr = attr.value
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceSetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cvalue), __pyx_n_s_cptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 23584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_cvalue_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_5));

  /* "cuda/cuda.pyx":23585
 *     cdef utils.HelperCUgraphMem_attribute cvalue = utils.HelperCUgraphMem_attribute(attr, value, is_getter=False)
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuDeviceSetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuDeviceSetGraphMemAttribute((__pyx_v_device->_ptr[0]), __pyx_v_cattr, __pyx_v_cvalue_ptr); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23585, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":23586
 *     cdef void* cvalue_ptr = <void*><void_ptr>cvalue.cptr
 *     err = ccuda.cuDeviceSetGraphMemAttribute(device._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23548
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Set asynchronous allocation attributes related to graphs.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceSetGraphMemAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23589
 * 
 * @cython.embedsignature(True)
 * def cuGraphClone(originalGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Clones a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_519cuGraphClone(PyObject *__pyx_self, PyObject *__pyx_v_originalGraph); /*proto*/
static char __pyx_doc_4cuda_4cuda_518cuGraphClone[] = "cuGraphClone(CUgraph originalGraph: CUgraph)\n Clones a graph.\n\n    This function creates a copy of `originalGraph` and returns it in\n    `phGraphClone`. All parameters are copied into the cloned graph. The\n    original graph may be modified after this call without affecting the\n    clone.\n\n    Child graph nodes in the original graph are recursively copied into the\n    clone.\n\n    Parameters\n    ----------\n    originalGraph : CUgraph\n        Graph to clone\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OUT_OF_MEMORY\n    phGraphClone : CUgraph\n        Returns newly created cloned graph\n\n    See Also\n    --------\n    cuGraphCreate\n    cuGraphNodeFindInClone\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_519cuGraphClone = {"cuGraphClone", (PyCFunction)__pyx_pw_4cuda_4cuda_519cuGraphClone, METH_O, __pyx_doc_4cuda_4cuda_518cuGraphClone};
static PyObject *__pyx_pw_4cuda_4cuda_519cuGraphClone(PyObject *__pyx_self, PyObject *__pyx_v_originalGraph) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphClone (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_originalGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "originalGraph", 0))) __PYX_ERR(0, 23589, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_518cuGraphClone(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_originalGraph));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_518cuGraphClone(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_originalGraph) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_phGraphClone = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__785)
  __Pyx_RefNannySetupContext("cuGraphClone", 0);
  __Pyx_TraceCall("cuGraphClone", __pyx_f[0], 23589, 0, __PYX_ERR(0, 23589, __pyx_L1_error));

  /* "cuda/cuda.pyx":23619
 *     cuGraphNodeFindInClone
 *     """
 *     cdef CUgraph phGraphClone = CUgraph()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphClone(phGraphClone._ptr, originalGraph._ptr[0])
 *     return (CUresult(err), phGraphClone)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phGraphClone = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23620
 *     """
 *     cdef CUgraph phGraphClone = CUgraph()
 *     err = ccuda.cuGraphClone(phGraphClone._ptr, originalGraph._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphClone)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphClone(__pyx_v_phGraphClone->_ptr, (__pyx_v_originalGraph->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23620, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":23621
 *     cdef CUgraph phGraphClone = CUgraph()
 *     err = ccuda.cuGraphClone(phGraphClone._ptr, originalGraph._ptr[0])
 *     return (CUresult(err), phGraphClone)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphClone));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphClone));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phGraphClone));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23589
 * 
 * @cython.embedsignature(True)
 * def cuGraphClone(originalGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Clones a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphClone", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphClone);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23624
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeFindInClone(hOriginalNode not None : CUgraphNode, hClonedGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Finds a cloned version of a node.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_521cuGraphNodeFindInClone(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_520cuGraphNodeFindInClone[] = "cuGraphNodeFindInClone(CUgraphNode hOriginalNode: CUgraphNode, CUgraph hClonedGraph: CUgraph)\n Finds a cloned version of a node.\n\n    This function returns the node in `hClonedGraph` corresponding to\n    `hOriginalNode` in the original graph.\n\n    `hClonedGraph` must have been cloned from `hOriginalGraph` via\n    cuGraphClone. `hOriginalNode` must have been in `hOriginalGraph` at the\n    time of the call to cuGraphClone, and the corresponding cloned node in\n    `hClonedGraph` must not have been removed. The cloned node is then\n    returned via `phClonedNode`.\n\n    Parameters\n    ----------\n    hOriginalNode : CUgraphNode\n        Handle to the original node\n    hClonedGraph : CUgraph\n        Cloned graph to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    phNode : CUgraphNode\n        Returns handle to the cloned node\n\n    See Also\n    --------\n    cuGraphClone\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_521cuGraphNodeFindInClone = {"cuGraphNodeFindInClone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_521cuGraphNodeFindInClone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_520cuGraphNodeFindInClone};
static PyObject *__pyx_pw_4cuda_4cuda_521cuGraphNodeFindInClone(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hOriginalNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hClonedGraph = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphNodeFindInClone (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hOriginalNode,&__pyx_n_s_hClonedGraph,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hOriginalNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hClonedGraph)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphNodeFindInClone", 1, 2, 2, 1); __PYX_ERR(0, 23624, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphNodeFindInClone") < 0)) __PYX_ERR(0, 23624, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hOriginalNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_hClonedGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphNodeFindInClone", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23624, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeFindInClone", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hOriginalNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hOriginalNode", 0))) __PYX_ERR(0, 23624, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hClonedGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hClonedGraph", 0))) __PYX_ERR(0, 23624, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_520cuGraphNodeFindInClone(__pyx_self, __pyx_v_hOriginalNode, __pyx_v_hClonedGraph);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_520cuGraphNodeFindInClone(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hOriginalNode, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hClonedGraph) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phNode = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__786)
  __Pyx_RefNannySetupContext("cuGraphNodeFindInClone", 0);
  __Pyx_TraceCall("cuGraphNodeFindInClone", __pyx_f[0], 23624, 0, __PYX_ERR(0, 23624, __pyx_L1_error));

  /* "cuda/cuda.pyx":23655
 *     cuGraphClone
 *     """
 *     cdef CUgraphNode phNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphNodeFindInClone(phNode._ptr, hOriginalNode._ptr[0], hClonedGraph._ptr[0])
 *     return (CUresult(err), phNode)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23656
 *     """
 *     cdef CUgraphNode phNode = CUgraphNode()
 *     err = ccuda.cuGraphNodeFindInClone(phNode._ptr, hOriginalNode._ptr[0], hClonedGraph._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phNode)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphNodeFindInClone(__pyx_v_phNode->_ptr, (__pyx_v_hOriginalNode->_ptr[0]), (__pyx_v_hClonedGraph->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23656, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":23657
 *     cdef CUgraphNode phNode = CUgraphNode()
 *     err = ccuda.cuGraphNodeFindInClone(phNode._ptr, hOriginalNode._ptr[0], hClonedGraph._ptr[0])
 *     return (CUresult(err), phNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phNode));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23624
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeFindInClone(hOriginalNode not None : CUgraphNode, hClonedGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Finds a cloned version of a node.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeFindInClone", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phNode);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23660
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetType(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a node's type.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_523cuGraphNodeGetType(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_522cuGraphNodeGetType[] = "cuGraphNodeGetType(CUgraphNode hNode: CUgraphNode)\n Returns a node's type.\n\n    Returns the node type of `hNode` in `typename`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    typename : CUgraphNodeType\n        Pointer to return the node type\n\n    See Also\n    --------\n    cuGraphGetNodes\n    cuGraphGetRootNodes\n    cuGraphChildGraphNodeGetGraph\n    cuGraphKernelNodeGetParams\n    cuGraphKernelNodeSetParams\n    cuGraphHostNodeGetParams\n    cuGraphHostNodeSetParams\n    cuGraphMemcpyNodeGetParams\n    cuGraphMemcpyNodeSetParams\n    cuGraphMemsetNodeGetParams\n    cuGraphMemsetNodeSetParams\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_523cuGraphNodeGetType = {"cuGraphNodeGetType", (PyCFunction)__pyx_pw_4cuda_4cuda_523cuGraphNodeGetType, METH_O, __pyx_doc_4cuda_4cuda_522cuGraphNodeGetType};
static PyObject *__pyx_pw_4cuda_4cuda_523cuGraphNodeGetType(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphNodeGetType (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23660, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_522cuGraphNodeGetType(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_522cuGraphNodeGetType(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  __pyx_t_4cuda_5ccuda_CUgraphNodeType __pyx_v_typename;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__787)
  __Pyx_RefNannySetupContext("cuGraphNodeGetType", 0);
  __Pyx_TraceCall("cuGraphNodeGetType", __pyx_f[0], 23660, 0, __PYX_ERR(0, 23660, __pyx_L1_error));

  /* "cuda/cuda.pyx":23695
 *     """
 *     cdef ccuda.CUgraphNodeType typename
 *     err = ccuda.cuGraphNodeGetType(hNode._ptr[0], &typename)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUgraphNodeType(typename))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphNodeGetType((__pyx_v_hNode->_ptr[0]), (&__pyx_v_typename)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23695, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":23696
 *     cdef ccuda.CUgraphNodeType typename
 *     err = ccuda.cuGraphNodeGetType(hNode._ptr[0], &typename)
 *     return (CUresult(err), CUgraphNodeType(typename))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUgraphNodeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_v_typename); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23660
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetType(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a node's type.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeGetType", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23699
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetNodes(hGraph not None : CUgraph, size_t numNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's nodes.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_525cuGraphGetNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_524cuGraphGetNodes[] = "cuGraphGetNodes(CUgraph hGraph: CUgraph, size_t numNodes=0)\n Returns a graph's nodes.\n\n    Returns a list of `hGraph's` nodes. `nodes` may be NULL, in which case\n    this function will return the number of nodes in `numNodes`. Otherwise,\n    `numNodes` entries will be filled in. If `numNodes` is higher than the\n    actual number of nodes, the remaining entries in `nodes` will be set to\n    NULL, and the number of nodes actually obtained will be returned in\n    `numNodes`.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    nodes : List[CUgraphNode]\n        Pointer to return the nodes\n    numNodes : int\n        See description\n\n    See Also\n    --------\n    cuGraphCreate\n    cuGraphGetRootNodes\n    cuGraphGetEdges\n    cuGraphNodeGetType\n    cuGraphNodeGetDependencies\n    cuGraphNodeGetDependentNodes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_525cuGraphGetNodes = {"cuGraphGetNodes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_525cuGraphGetNodes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_524cuGraphGetNodes};
static PyObject *__pyx_pw_4cuda_4cuda_525cuGraphGetNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  size_t __pyx_v_numNodes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphGetNodes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_numNodes,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numNodes);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphGetNodes") < 0)) __PYX_ERR(0, 23699, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    if (values[1]) {
      __pyx_v_numNodes = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_numNodes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23699, __pyx_L3_error)
    } else {
      __pyx_v_numNodes = ((size_t)((size_t)0));
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphGetNodes", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23699, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphGetNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23699, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_524cuGraphGetNodes(__pyx_self, __pyx_v_hGraph, __pyx_v_numNodes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_524cuGraphGetNodes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, size_t __pyx_v_numNodes) {
  size_t __pyx_v__graph_length;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cnodes;
  PyObject *__pyx_v_pynodes = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  size_t __pyx_9genexpr94__pyx_v_idx;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__788)
  __Pyx_RefNannySetupContext("cuGraphGetNodes", 0);
  __Pyx_TraceCall("cuGraphGetNodes", __pyx_f[0], 23699, 0, __PYX_ERR(0, 23699, __pyx_L1_error));

  /* "cuda/cuda.pyx":23735
 *     cuGraphNodeGetDependentNodes
 *     """
 *     cdef size_t _graph_length = numNodes             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cnodes = NULL
 *     pynodes = []
 */
  __pyx_v__graph_length = __pyx_v_numNodes;

  /* "cuda/cuda.pyx":23736
 *     """
 *     cdef size_t _graph_length = numNodes
 *     cdef ccuda.CUgraphNode* cnodes = NULL             # <<<<<<<<<<<<<<
 *     pynodes = []
 *     if _graph_length != 0:
 */
  __pyx_v_cnodes = NULL;

  /* "cuda/cuda.pyx":23737
 *     cdef size_t _graph_length = numNodes
 *     cdef ccuda.CUgraphNode* cnodes = NULL
 *     pynodes = []             # <<<<<<<<<<<<<<
 *     if _graph_length != 0:
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pynodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23738
 *     cdef ccuda.CUgraphNode* cnodes = NULL
 *     pynodes = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cnodes is NULL:
 */
  __pyx_t_2 = ((__pyx_v__graph_length != 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23739
 *     pynodes = []
 *     if _graph_length != 0:
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cnodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_cnodes = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_v__graph_length, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23740
 *     if _graph_length != 0:
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cnodes is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)
 */
    __pyx_t_2 = ((__pyx_v_cnodes == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":23741
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cnodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)
 *     if CUresult(err) == CUresult(0):
 */
      __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v__graph_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 23741, __pyx_L1_error)

      /* "cuda/cuda.pyx":23740
 *     if _graph_length != 0:
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cnodes is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)
 */
    }

    /* "cuda/cuda.pyx":23738
 *     cdef ccuda.CUgraphNode* cnodes = NULL
 *     pynodes = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cnodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cnodes is NULL:
 */
  }

  /* "cuda/cuda.pyx":23742
 *         if cnodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuGraphGetNodes((__pyx_v_hGraph->_ptr[0]), __pyx_v_cnodes, (&__pyx_v_numNodes)); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23742, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":23743
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]
 *     if cnodes is not NULL:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23743, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23744
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)
 *     if CUresult(err) == CUresult(0):
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]             # <<<<<<<<<<<<<<
 *     if cnodes is not NULL:
 *         free(cnodes)
 */
    { /* enter inner scope */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23744, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __pyx_v__graph_length;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr94__pyx_v_idx = __pyx_t_9;
        __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_cnodes[__pyx_9genexpr94__pyx_v_idx]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_init_value, __pyx_t_4) < 0) __PYX_ERR(0, 23744, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 23744, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pynodes, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "cuda/cuda.pyx":23743
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetNodes(hGraph._ptr[0], cnodes, &numNodes)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]
 *     if cnodes is not NULL:
 */
  }

  /* "cuda/cuda.pyx":23745
 *     if CUresult(err) == CUresult(0):
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]
 *     if cnodes is not NULL:             # <<<<<<<<<<<<<<
 *         free(cnodes)
 *     return (CUresult(err), pynodes, numNodes)
 */
  __pyx_t_2 = ((__pyx_v_cnodes != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23746
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]
 *     if cnodes is not NULL:
 *         free(cnodes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pynodes, numNodes)
 * 
 */
    free(__pyx_v_cnodes);

    /* "cuda/cuda.pyx":23745
 *     if CUresult(err) == CUresult(0):
 *         pynodes = [CUgraphNode(init_value=<void_ptr>cnodes[idx]) for idx in range(_graph_length)]
 *     if cnodes is not NULL:             # <<<<<<<<<<<<<<
 *         free(cnodes)
 *     return (CUresult(err), pynodes, numNodes)
 */
  }

  /* "cuda/cuda.pyx":23747
 *     if cnodes is not NULL:
 *         free(cnodes)
 *     return (CUresult(err), pynodes, numNodes)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_numNodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_pynodes);
  __Pyx_GIVEREF(__pyx_v_pynodes);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pynodes);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23699
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetNodes(hGraph not None : CUgraph, size_t numNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's nodes.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphGetNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pynodes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23750
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetRootNodes(hGraph not None : CUgraph, size_t numRootNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's root nodes.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_527cuGraphGetRootNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_526cuGraphGetRootNodes[] = "cuGraphGetRootNodes(CUgraph hGraph: CUgraph, size_t numRootNodes=0)\n Returns a graph's root nodes.\n\n    Returns a list of `hGraph's` root nodes. `rootNodes` may be NULL, in\n    which case this function will return the number of root nodes in\n    `numRootNodes`. Otherwise, `numRootNodes` entries will be filled in. If\n    `numRootNodes` is higher than the actual number of root nodes, the\n    remaining entries in `rootNodes` will be set to NULL, and the number of\n    nodes actually obtained will be returned in `numRootNodes`.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    rootNodes : List[CUgraphNode]\n        Pointer to return the root nodes\n    numRootNodes : int\n        See description\n\n    See Also\n    --------\n    cuGraphCreate\n    cuGraphGetNodes\n    cuGraphGetEdges\n    cuGraphNodeGetType\n    cuGraphNodeGetDependencies\n    cuGraphNodeGetDependentNodes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_527cuGraphGetRootNodes = {"cuGraphGetRootNodes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_527cuGraphGetRootNodes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_526cuGraphGetRootNodes};
static PyObject *__pyx_pw_4cuda_4cuda_527cuGraphGetRootNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  size_t __pyx_v_numRootNodes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphGetRootNodes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_numRootNodes,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numRootNodes);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphGetRootNodes") < 0)) __PYX_ERR(0, 23750, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    if (values[1]) {
      __pyx_v_numRootNodes = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_numRootNodes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23750, __pyx_L3_error)
    } else {
      __pyx_v_numRootNodes = ((size_t)((size_t)0));
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphGetRootNodes", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23750, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphGetRootNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23750, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_526cuGraphGetRootNodes(__pyx_self, __pyx_v_hGraph, __pyx_v_numRootNodes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_526cuGraphGetRootNodes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, size_t __pyx_v_numRootNodes) {
  size_t __pyx_v__graph_length;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_crootNodes;
  PyObject *__pyx_v_pyrootNodes = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  size_t __pyx_9genexpr95__pyx_v_idx;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__789)
  __Pyx_RefNannySetupContext("cuGraphGetRootNodes", 0);
  __Pyx_TraceCall("cuGraphGetRootNodes", __pyx_f[0], 23750, 0, __PYX_ERR(0, 23750, __pyx_L1_error));

  /* "cuda/cuda.pyx":23786
 *     cuGraphNodeGetDependentNodes
 *     """
 *     cdef size_t _graph_length = numRootNodes             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* crootNodes = NULL
 *     pyrootNodes = []
 */
  __pyx_v__graph_length = __pyx_v_numRootNodes;

  /* "cuda/cuda.pyx":23787
 *     """
 *     cdef size_t _graph_length = numRootNodes
 *     cdef ccuda.CUgraphNode* crootNodes = NULL             # <<<<<<<<<<<<<<
 *     pyrootNodes = []
 *     if _graph_length != 0:
 */
  __pyx_v_crootNodes = NULL;

  /* "cuda/cuda.pyx":23788
 *     cdef size_t _graph_length = numRootNodes
 *     cdef ccuda.CUgraphNode* crootNodes = NULL
 *     pyrootNodes = []             # <<<<<<<<<<<<<<
 *     if _graph_length != 0:
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pyrootNodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23789
 *     cdef ccuda.CUgraphNode* crootNodes = NULL
 *     pyrootNodes = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if crootNodes is NULL:
 */
  __pyx_t_2 = ((__pyx_v__graph_length != 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23790
 *     pyrootNodes = []
 *     if _graph_length != 0:
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if crootNodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_crootNodes = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_v__graph_length, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23791
 *     if _graph_length != 0:
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if crootNodes is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)
 */
    __pyx_t_2 = ((__pyx_v_crootNodes == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":23792
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if crootNodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)
 *     if CUresult(err) == CUresult(0):
 */
      __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v__graph_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 23792, __pyx_L1_error)

      /* "cuda/cuda.pyx":23791
 *     if _graph_length != 0:
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if crootNodes is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)
 */
    }

    /* "cuda/cuda.pyx":23789
 *     cdef ccuda.CUgraphNode* crootNodes = NULL
 *     pyrootNodes = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         crootNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if crootNodes is NULL:
 */
  }

  /* "cuda/cuda.pyx":23793
 *         if crootNodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuGraphGetRootNodes((__pyx_v_hGraph->_ptr[0]), __pyx_v_crootNodes, (&__pyx_v_numRootNodes)); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23793, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":23794
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]
 *     if crootNodes is not NULL:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23795
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)
 *     if CUresult(err) == CUresult(0):
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]             # <<<<<<<<<<<<<<
 *     if crootNodes is not NULL:
 *         free(crootNodes)
 */
    { /* enter inner scope */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23795, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __pyx_v__graph_length;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr95__pyx_v_idx = __pyx_t_9;
        __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_crootNodes[__pyx_9genexpr95__pyx_v_idx]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_init_value, __pyx_t_4) < 0) __PYX_ERR(0, 23795, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 23795, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pyrootNodes, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "cuda/cuda.pyx":23794
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetRootNodes(hGraph._ptr[0], crootNodes, &numRootNodes)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]
 *     if crootNodes is not NULL:
 */
  }

  /* "cuda/cuda.pyx":23796
 *     if CUresult(err) == CUresult(0):
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]
 *     if crootNodes is not NULL:             # <<<<<<<<<<<<<<
 *         free(crootNodes)
 *     return (CUresult(err), pyrootNodes, numRootNodes)
 */
  __pyx_t_2 = ((__pyx_v_crootNodes != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23797
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]
 *     if crootNodes is not NULL:
 *         free(crootNodes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pyrootNodes, numRootNodes)
 * 
 */
    free(__pyx_v_crootNodes);

    /* "cuda/cuda.pyx":23796
 *     if CUresult(err) == CUresult(0):
 *         pyrootNodes = [CUgraphNode(init_value=<void_ptr>crootNodes[idx]) for idx in range(_graph_length)]
 *     if crootNodes is not NULL:             # <<<<<<<<<<<<<<
 *         free(crootNodes)
 *     return (CUresult(err), pyrootNodes, numRootNodes)
 */
  }

  /* "cuda/cuda.pyx":23798
 *     if crootNodes is not NULL:
 *         free(crootNodes)
 *     return (CUresult(err), pyrootNodes, numRootNodes)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_numRootNodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_pyrootNodes);
  __Pyx_GIVEREF(__pyx_v_pyrootNodes);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pyrootNodes);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23750
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetRootNodes(hGraph not None : CUgraph, size_t numRootNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's root nodes.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphGetRootNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyrootNodes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23801
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetEdges(hGraph not None : CUgraph, size_t numEdges = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's dependency edges.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_529cuGraphGetEdges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_528cuGraphGetEdges[] = "cuGraphGetEdges(CUgraph hGraph: CUgraph, size_t numEdges=0)\n Returns a graph's dependency edges.\n\n    Returns a list of `hGraph's` dependency edges. Edges are returned via\n    corresponding indices in `from` and `to`; that is, the node in `to`[i]\n    has a dependency on the node in `from`[i]. `from` and `to` may both be\n    NULL, in which case this function only returns the number of edges in\n    `numEdges`. Otherwise, `numEdges` entries will be filled in. If\n    `numEdges` is higher than the actual number of edges, the remaining\n    entries in `from` and `to` will be set to NULL, and the number of edges\n    actually returned will be written to `numEdges`.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to get the edges from\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    from : List[CUgraphNode]\n        Location to return edge endpoints\n    to : List[CUgraphNode]\n        Location to return edge endpoints\n    numEdges : int\n        See description\n\n    See Also\n    --------\n    cuGraphGetNodes\n    cuGraphGetRootNodes\n    cuGraphAddDependencies\n    cuGraphRemoveDependencies\n    cuGraphNodeGetDependencies\n    cuGraphNodeGetDependentNodes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_529cuGraphGetEdges = {"cuGraphGetEdges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_529cuGraphGetEdges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_528cuGraphGetEdges};
static PyObject *__pyx_pw_4cuda_4cuda_529cuGraphGetEdges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  size_t __pyx_v_numEdges;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphGetEdges (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_numEdges,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numEdges);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphGetEdges") < 0)) __PYX_ERR(0, 23801, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    if (values[1]) {
      __pyx_v_numEdges = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_numEdges == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23801, __pyx_L3_error)
    } else {
      __pyx_v_numEdges = ((size_t)((size_t)0));
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphGetEdges", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphGetEdges", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23801, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_528cuGraphGetEdges(__pyx_self, __pyx_v_hGraph, __pyx_v_numEdges);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_528cuGraphGetEdges(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, size_t __pyx_v_numEdges) {
  size_t __pyx_v__graph_length;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cfrom_;
  PyObject *__pyx_v_pyfrom_ = NULL;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cto;
  PyObject *__pyx_v_pyto = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  size_t __pyx_9genexpr96__pyx_v_idx;
  size_t __pyx_9genexpr97__pyx_v_idx;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__790)
  __Pyx_RefNannySetupContext("cuGraphGetEdges", 0);
  __Pyx_TraceCall("cuGraphGetEdges", __pyx_f[0], 23801, 0, __PYX_ERR(0, 23801, __pyx_L1_error));

  /* "cuda/cuda.pyx":23841
 *     cuGraphNodeGetDependentNodes
 *     """
 *     cdef size_t _graph_length = numEdges             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     pyfrom_ = []
 */
  __pyx_v__graph_length = __pyx_v_numEdges;

  /* "cuda/cuda.pyx":23842
 *     """
 *     cdef size_t _graph_length = numEdges
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL             # <<<<<<<<<<<<<<
 *     pyfrom_ = []
 *     if _graph_length != 0:
 */
  __pyx_v_cfrom_ = NULL;

  /* "cuda/cuda.pyx":23843
 *     cdef size_t _graph_length = numEdges
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     pyfrom_ = []             # <<<<<<<<<<<<<<
 *     if _graph_length != 0:
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pyfrom_ = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23844
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     pyfrom_ = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 */
  __pyx_t_2 = ((__pyx_v__graph_length != 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23845
 *     pyfrom_ = []
 *     if _graph_length != 0:
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_cfrom_ = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_v__graph_length, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23846
 *     if _graph_length != 0:
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     cdef ccuda.CUgraphNode* cto = NULL
 */
    __pyx_t_2 = ((__pyx_v_cfrom_ == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":23847
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     pyto = []
 */
      __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v__graph_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 23847, __pyx_L1_error)

      /* "cuda/cuda.pyx":23846
 *     if _graph_length != 0:
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     cdef ccuda.CUgraphNode* cto = NULL
 */
    }

    /* "cuda/cuda.pyx":23844
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     pyfrom_ = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cfrom_ = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 */
  }

  /* "cuda/cuda.pyx":23848
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     cdef ccuda.CUgraphNode* cto = NULL             # <<<<<<<<<<<<<<
 *     pyto = []
 *     if _graph_length != 0:
 */
  __pyx_v_cto = NULL;

  /* "cuda/cuda.pyx":23849
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     pyto = []             # <<<<<<<<<<<<<<
 *     if _graph_length != 0:
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_pyto = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":23850
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     pyto = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 */
  __pyx_t_2 = ((__pyx_v__graph_length != 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23851
 *     pyto = []
 *     if _graph_length != 0:
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_cto = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_v__graph_length, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23852
 *     if _graph_length != 0:
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)
 */
    __pyx_t_2 = ((__pyx_v_cto == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":23853
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)
 *     if CUresult(err) == CUresult(0):
 */
      __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v__graph_length); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_4, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 23853, __pyx_L1_error)

      /* "cuda/cuda.pyx":23852
 *     if _graph_length != 0:
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)
 */
    }

    /* "cuda/cuda.pyx":23850
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     pyto = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cto = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 */
  }

  /* "cuda/cuda.pyx":23854
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuGraphGetEdges((__pyx_v_hGraph->_ptr[0]), __pyx_v_cfrom_, __pyx_v_cto, (&__pyx_v_numEdges)); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23854, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":23855
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]
 *     if cfrom_ is not NULL:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23855, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23856
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)
 *     if CUresult(err) == CUresult(0):
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]             # <<<<<<<<<<<<<<
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 */
    { /* enter inner scope */
      __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23856, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __pyx_v__graph_length;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr96__pyx_v_idx = __pyx_t_9;
        __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23856, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_cfrom_[__pyx_9genexpr96__pyx_v_idx]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23856, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_init_value, __pyx_t_3) < 0) __PYX_ERR(0, 23856, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23856, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 23856, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pyfrom_, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "cuda/cuda.pyx":23855
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphGetEdges(hGraph._ptr[0], cfrom_, cto, &numEdges)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]
 *     if cfrom_ is not NULL:
 */
  }

  /* "cuda/cuda.pyx":23857
 *     if CUresult(err) == CUresult(0):
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]
 *     if cfrom_ is not NULL:             # <<<<<<<<<<<<<<
 *         free(cfrom_)
 *     if CUresult(err) == CUresult(0):
 */
  __pyx_t_2 = ((__pyx_v_cfrom_ != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23858
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]
 *     if cfrom_ is not NULL:
 *         free(cfrom_)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]
 */
    free(__pyx_v_cfrom_);

    /* "cuda/cuda.pyx":23857
 *     if CUresult(err) == CUresult(0):
 *         pyfrom_ = [CUgraphNode(init_value=<void_ptr>cfrom_[idx]) for idx in range(_graph_length)]
 *     if cfrom_ is not NULL:             # <<<<<<<<<<<<<<
 *         free(cfrom_)
 *     if CUresult(err) == CUresult(0):
 */
  }

  /* "cuda/cuda.pyx":23859
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]
 *     if cto is not NULL:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23859, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23860
 *         free(cfrom_)
 *     if CUresult(err) == CUresult(0):
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]             # <<<<<<<<<<<<<<
 *     if cto is not NULL:
 *         free(cto)
 */
    { /* enter inner scope */
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __pyx_v__graph_length;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr97__pyx_v_idx = __pyx_t_9;
        __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_cto[__pyx_9genexpr97__pyx_v_idx]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_init_value, __pyx_t_1) < 0) __PYX_ERR(0, 23860, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 23860, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pyto, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "cuda/cuda.pyx":23859
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]
 *     if cto is not NULL:
 */
  }

  /* "cuda/cuda.pyx":23861
 *     if CUresult(err) == CUresult(0):
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]
 *     if cto is not NULL:             # <<<<<<<<<<<<<<
 *         free(cto)
 *     return (CUresult(err), pyfrom_, pyto, numEdges)
 */
  __pyx_t_2 = ((__pyx_v_cto != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23862
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]
 *     if cto is not NULL:
 *         free(cto)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pyfrom_, pyto, numEdges)
 * 
 */
    free(__pyx_v_cto);

    /* "cuda/cuda.pyx":23861
 *     if CUresult(err) == CUresult(0):
 *         pyto = [CUgraphNode(init_value=<void_ptr>cto[idx]) for idx in range(_graph_length)]
 *     if cto is not NULL:             # <<<<<<<<<<<<<<
 *         free(cto)
 *     return (CUresult(err), pyfrom_, pyto, numEdges)
 */
  }

  /* "cuda/cuda.pyx":23863
 *     if cto is not NULL:
 *         free(cto)
 *     return (CUresult(err), pyfrom_, pyto, numEdges)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_numEdges); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_INCREF(__pyx_v_pyfrom_);
  __Pyx_GIVEREF(__pyx_v_pyfrom_);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_pyfrom_);
  __Pyx_INCREF(__pyx_v_pyto);
  __Pyx_GIVEREF(__pyx_v_pyto);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_pyto);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23801
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetEdges(hGraph not None : CUgraph, size_t numEdges = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's dependency edges.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphGetEdges", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyfrom_);
  __Pyx_XDECREF(__pyx_v_pyto);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23866
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependencies(hNode not None : CUgraphNode, size_t numDependencies = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependencies.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_531cuGraphNodeGetDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_530cuGraphNodeGetDependencies[] = "cuGraphNodeGetDependencies(CUgraphNode hNode: CUgraphNode, size_t numDependencies=0)\n Returns a node's dependencies.\n\n    Returns a list of `node's` dependencies. `dependencies` may be NULL, in\n    which case this function will return the number of dependencies in\n    `numDependencies`. Otherwise, `numDependencies` entries will be filled\n    in. If `numDependencies` is higher than the actual number of\n    dependencies, the remaining entries in `dependencies` will be set to\n    NULL, and the number of nodes actually obtained will be returned in\n    `numDependencies`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    dependencies : List[CUgraphNode]\n        Pointer to return the dependencies\n    numDependencies : int\n        See description\n\n    See Also\n    --------\n    cuGraphNodeGetDependentNodes\n    cuGraphGetNodes\n    cuGraphGetRootNodes\n    cuGraphGetEdges\n    cuGraphAddDependencies\n    cuGraphRemoveDependencies\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_531cuGraphNodeGetDependencies = {"cuGraphNodeGetDependencies", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_531cuGraphNodeGetDependencies, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_530cuGraphNodeGetDependencies};
static PyObject *__pyx_pw_4cuda_4cuda_531cuGraphNodeGetDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  size_t __pyx_v_numDependencies;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphNodeGetDependencies (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_numDependencies,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphNodeGetDependencies") < 0)) __PYX_ERR(0, 23866, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    if (values[1]) {
      __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23866, __pyx_L3_error)
    } else {
      __pyx_v_numDependencies = ((size_t)((size_t)0));
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphNodeGetDependencies", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23866, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeGetDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23866, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_530cuGraphNodeGetDependencies(__pyx_self, __pyx_v_hNode, __pyx_v_numDependencies);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_530cuGraphNodeGetDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, size_t __pyx_v_numDependencies) {
  size_t __pyx_v__graph_length;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependencies;
  PyObject *__pyx_v_pydependencies = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  size_t __pyx_9genexpr98__pyx_v_idx;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__791)
  __Pyx_RefNannySetupContext("cuGraphNodeGetDependencies", 0);
  __Pyx_TraceCall("cuGraphNodeGetDependencies", __pyx_f[0], 23866, 0, __PYX_ERR(0, 23866, __pyx_L1_error));

  /* "cuda/cuda.pyx":23903
 *     cuGraphRemoveDependencies
 *     """
 *     cdef size_t _graph_length = numDependencies             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     pydependencies = []
 */
  __pyx_v__graph_length = __pyx_v_numDependencies;

  /* "cuda/cuda.pyx":23904
 *     """
 *     cdef size_t _graph_length = numDependencies
 *     cdef ccuda.CUgraphNode* cdependencies = NULL             # <<<<<<<<<<<<<<
 *     pydependencies = []
 *     if _graph_length != 0:
 */
  __pyx_v_cdependencies = NULL;

  /* "cuda/cuda.pyx":23905
 *     cdef size_t _graph_length = numDependencies
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     pydependencies = []             # <<<<<<<<<<<<<<
 *     if _graph_length != 0:
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pydependencies = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23906
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     pydependencies = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  __pyx_t_2 = ((__pyx_v__graph_length != 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23907
 *     pydependencies = []
 *     if _graph_length != 0:
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_cdependencies = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_v__graph_length, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23908
 *     if _graph_length != 0:
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)
 */
    __pyx_t_2 = ((__pyx_v_cdependencies == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":23909
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)
 *     if CUresult(err) == CUresult(0):
 */
      __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v__graph_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 23909, __pyx_L1_error)

      /* "cuda/cuda.pyx":23908
 *     if _graph_length != 0:
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)
 */
    }

    /* "cuda/cuda.pyx":23906
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     pydependencies = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cdependencies = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependencies is NULL:
 */
  }

  /* "cuda/cuda.pyx":23910
 *         if cdependencies is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuGraphNodeGetDependencies((__pyx_v_hNode->_ptr[0]), __pyx_v_cdependencies, (&__pyx_v_numDependencies)); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23910, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":23911
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]
 *     if cdependencies is not NULL:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23911, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23912
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)
 *     if CUresult(err) == CUresult(0):
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]             # <<<<<<<<<<<<<<
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 */
    { /* enter inner scope */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23912, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __pyx_v__graph_length;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr98__pyx_v_idx = __pyx_t_9;
        __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23912, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_cdependencies[__pyx_9genexpr98__pyx_v_idx]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23912, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_init_value, __pyx_t_4) < 0) __PYX_ERR(0, 23912, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23912, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 23912, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pydependencies, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "cuda/cuda.pyx":23911
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependencies(hNode._ptr[0], cdependencies, &numDependencies)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]
 *     if cdependencies is not NULL:
 */
  }

  /* "cuda/cuda.pyx":23913
 *     if CUresult(err) == CUresult(0):
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), pydependencies, numDependencies)
 */
  __pyx_t_2 = ((__pyx_v_cdependencies != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23914
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]
 *     if cdependencies is not NULL:
 *         free(cdependencies)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pydependencies, numDependencies)
 * 
 */
    free(__pyx_v_cdependencies);

    /* "cuda/cuda.pyx":23913
 *     if CUresult(err) == CUresult(0):
 *         pydependencies = [CUgraphNode(init_value=<void_ptr>cdependencies[idx]) for idx in range(_graph_length)]
 *     if cdependencies is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependencies)
 *     return (CUresult(err), pydependencies, numDependencies)
 */
  }

  /* "cuda/cuda.pyx":23915
 *     if cdependencies is not NULL:
 *         free(cdependencies)
 *     return (CUresult(err), pydependencies, numDependencies)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependencies); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_pydependencies);
  __Pyx_GIVEREF(__pyx_v_pydependencies);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pydependencies);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23866
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependencies(hNode not None : CUgraphNode, size_t numDependencies = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependencies.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeGetDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pydependencies);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23918
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependentNodes(hNode not None : CUgraphNode, size_t numDependentNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependent nodes.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_533cuGraphNodeGetDependentNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_532cuGraphNodeGetDependentNodes[] = "cuGraphNodeGetDependentNodes(CUgraphNode hNode: CUgraphNode, size_t numDependentNodes=0)\n Returns a node's dependent nodes.\n\n    Returns a list of `node's` dependent nodes. `dependentNodes` may be\n    NULL, in which case this function will return the number of dependent\n    nodes in `numDependentNodes`. Otherwise, `numDependentNodes` entries\n    will be filled in. If `numDependentNodes` is higher than the actual\n    number of dependent nodes, the remaining entries in `dependentNodes`\n    will be set to NULL, and the number of nodes actually obtained will be\n    returned in `numDependentNodes`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to query\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    dependentNodes : List[CUgraphNode]\n        Pointer to return the dependent nodes\n    numDependentNodes : int\n        See description\n\n    See Also\n    --------\n    cuGraphNodeGetDependencies\n    cuGraphGetNodes\n    cuGraphGetRootNodes\n    cuGraphGetEdges\n    cuGraphAddDependencies\n    cuGraphRemoveDependencies\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_533cuGraphNodeGetDependentNodes = {"cuGraphNodeGetDependentNodes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_533cuGraphNodeGetDependentNodes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_532cuGraphNodeGetDependentNodes};
static PyObject *__pyx_pw_4cuda_4cuda_533cuGraphNodeGetDependentNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  size_t __pyx_v_numDependentNodes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphNodeGetDependentNodes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_numDependentNodes,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependentNodes);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphNodeGetDependentNodes") < 0)) __PYX_ERR(0, 23918, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    if (values[1]) {
      __pyx_v_numDependentNodes = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_numDependentNodes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23918, __pyx_L3_error)
    } else {
      __pyx_v_numDependentNodes = ((size_t)((size_t)0));
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphNodeGetDependentNodes", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23918, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeGetDependentNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 23918, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_532cuGraphNodeGetDependentNodes(__pyx_self, __pyx_v_hNode, __pyx_v_numDependentNodes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_532cuGraphNodeGetDependentNodes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, size_t __pyx_v_numDependentNodes) {
  size_t __pyx_v__graph_length;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cdependentNodes;
  PyObject *__pyx_v_pydependentNodes = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  size_t __pyx_9genexpr99__pyx_v_idx;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__792)
  __Pyx_RefNannySetupContext("cuGraphNodeGetDependentNodes", 0);
  __Pyx_TraceCall("cuGraphNodeGetDependentNodes", __pyx_f[0], 23918, 0, __PYX_ERR(0, 23918, __pyx_L1_error));

  /* "cuda/cuda.pyx":23955
 *     cuGraphRemoveDependencies
 *     """
 *     cdef size_t _graph_length = numDependentNodes             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependentNodes = NULL
 *     pydependentNodes = []
 */
  __pyx_v__graph_length = __pyx_v_numDependentNodes;

  /* "cuda/cuda.pyx":23956
 *     """
 *     cdef size_t _graph_length = numDependentNodes
 *     cdef ccuda.CUgraphNode* cdependentNodes = NULL             # <<<<<<<<<<<<<<
 *     pydependentNodes = []
 *     if _graph_length != 0:
 */
  __pyx_v_cdependentNodes = NULL;

  /* "cuda/cuda.pyx":23957
 *     cdef size_t _graph_length = numDependentNodes
 *     cdef ccuda.CUgraphNode* cdependentNodes = NULL
 *     pydependentNodes = []             # <<<<<<<<<<<<<<
 *     if _graph_length != 0:
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pydependentNodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23958
 *     cdef ccuda.CUgraphNode* cdependentNodes = NULL
 *     pydependentNodes = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependentNodes is NULL:
 */
  __pyx_t_2 = ((__pyx_v__graph_length != 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23959
 *     pydependentNodes = []
 *     if _graph_length != 0:
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cdependentNodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_v_cdependentNodes = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_v__graph_length, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":23960
 *     if _graph_length != 0:
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependentNodes is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)
 */
    __pyx_t_2 = ((__pyx_v_cdependentNodes == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":23961
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependentNodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)
 *     if CUresult(err) == CUresult(0):
 */
      __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v__graph_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 23961, __pyx_L1_error)

      /* "cuda/cuda.pyx":23960
 *     if _graph_length != 0:
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependentNodes is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)
 */
    }

    /* "cuda/cuda.pyx":23958
 *     cdef ccuda.CUgraphNode* cdependentNodes = NULL
 *     pydependentNodes = []
 *     if _graph_length != 0:             # <<<<<<<<<<<<<<
 *         cdependentNodes = <ccuda.CUgraphNode*>calloc(_graph_length, sizeof(ccuda.CUgraphNode))
 *         if cdependentNodes is NULL:
 */
  }

  /* "cuda/cuda.pyx":23962
 *         if cdependentNodes is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)             # <<<<<<<<<<<<<<
 *     if CUresult(err) == CUresult(0):
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuGraphNodeGetDependentNodes((__pyx_v_hNode->_ptr[0]), __pyx_v_cdependentNodes, (&__pyx_v_numDependentNodes)); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 23962, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":23963
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]
 *     if cdependentNodes is not NULL:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_0);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 23963, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23964
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)
 *     if CUresult(err) == CUresult(0):
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]             # <<<<<<<<<<<<<<
 *     if cdependentNodes is not NULL:
 *         free(cdependentNodes)
 */
    { /* enter inner scope */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __pyx_v__graph_length;
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_9genexpr99__pyx_v_idx = __pyx_t_9;
        __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23964, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(((__pyx_t_4cuda_4cuda_void_ptr)(__pyx_v_cdependentNodes[__pyx_9genexpr99__pyx_v_idx]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23964, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_init_value, __pyx_t_4) < 0) __PYX_ERR(0, 23964, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23964, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 23964, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_pydependentNodes, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "cuda/cuda.pyx":23963
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(_graph_length) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *     err = ccuda.cuGraphNodeGetDependentNodes(hNode._ptr[0], cdependentNodes, &numDependentNodes)
 *     if CUresult(err) == CUresult(0):             # <<<<<<<<<<<<<<
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]
 *     if cdependentNodes is not NULL:
 */
  }

  /* "cuda/cuda.pyx":23965
 *     if CUresult(err) == CUresult(0):
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]
 *     if cdependentNodes is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependentNodes)
 *     return (CUresult(err), pydependentNodes, numDependentNodes)
 */
  __pyx_t_2 = ((__pyx_v_cdependentNodes != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":23966
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]
 *     if cdependentNodes is not NULL:
 *         free(cdependentNodes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pydependentNodes, numDependentNodes)
 * 
 */
    free(__pyx_v_cdependentNodes);

    /* "cuda/cuda.pyx":23965
 *     if CUresult(err) == CUresult(0):
 *         pydependentNodes = [CUgraphNode(init_value=<void_ptr>cdependentNodes[idx]) for idx in range(_graph_length)]
 *     if cdependentNodes is not NULL:             # <<<<<<<<<<<<<<
 *         free(cdependentNodes)
 *     return (CUresult(err), pydependentNodes, numDependentNodes)
 */
  }

  /* "cuda/cuda.pyx":23967
 *     if cdependentNodes is not NULL:
 *         free(cdependentNodes)
 *     return (CUresult(err), pydependentNodes, numDependentNodes)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_numDependentNodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_pydependentNodes);
  __Pyx_GIVEREF(__pyx_v_pydependentNodes);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pydependentNodes);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23918
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependentNodes(hNode not None : CUgraphNode, size_t numDependentNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependent nodes.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphNodeGetDependentNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pydependentNodes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23970
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Adds dependency edges to a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_535cuGraphAddDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_534cuGraphAddDependencies[] = "cuGraphAddDependencies(CUgraph hGraph: CUgraph, from_: List[CUgraphNode], to: List[CUgraphNode], size_t numDependencies)\n Adds dependency edges to a graph.\n\n    The number of dependencies to be added is defined by `numDependencies`\n    Elements in `from` and `to` at corresponding indices define a\n    dependency. Each node in `from` and `to` must belong to `hGraph`.\n\n    If `numDependencies` is 0, elements in `from` and `to` will be ignored.\n    Specifying an existing dependency will return an error.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to which dependencies are added\n    from_ : List[CUgraphNode]\n        Array of nodes that provide the dependencies\n    to : List[CUgraphNode]\n        Array of dependent nodes\n    numDependencies : size_t\n        Number of dependencies to be added\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphRemoveDependencies\n    cuGraphGetEdges\n    cuGraphNodeGetDependencies\n    cuGraphNodeGetDependentNodes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_535cuGraphAddDependencies = {"cuGraphAddDependencies", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_535cuGraphAddDependencies, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_534cuGraphAddDependencies};
static PyObject *__pyx_pw_4cuda_4cuda_535cuGraphAddDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_from_ = 0;
  PyObject *__pyx_v_to = 0;
  size_t __pyx_v_numDependencies;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphAddDependencies (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_from,&__pyx_n_s_to,&__pyx_n_s_numDependencies,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_from)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddDependencies", 1, 4, 4, 1); __PYX_ERR(0, 23970, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_to)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddDependencies", 1, 4, 4, 2); __PYX_ERR(0, 23970, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphAddDependencies", 1, 4, 4, 3); __PYX_ERR(0, 23970, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphAddDependencies") < 0)) __PYX_ERR(0, 23970, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_from_ = values[1];
    __pyx_v_to = values[2];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 23970, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphAddDependencies", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 23970, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 23970, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_534cuGraphAddDependencies(__pyx_self, __pyx_v_hGraph, __pyx_v_from_, __pyx_v_to, __pyx_v_numDependencies);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_2generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":24007
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */

static PyObject *__pyx_pf_4cuda_4cuda_22cuGraphAddDependencies_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_58_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_58_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 24007, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_2generator30, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddDependencies_locals_ge, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 24007, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddDependencies.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_2generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 24007, 0, __PYX_ERR(0, 24007, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 24007, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to)) { __Pyx_RaiseClosureNameError("to"); __PYX_ERR(0, 24007, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_to; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24007, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24007, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24007, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24007, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24007, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24007, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 24007, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_5generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":24010
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_22cuGraphAddDependencies_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_59_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_59_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 24010, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_5generator31, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphAddDependencies_locals_ge, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 24010, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddDependencies.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_5generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 24010, 0, __PYX_ERR(0, 24010, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 24010, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_)) { __Pyx_RaiseClosureNameError("from_"); __PYX_ERR(0, 24010, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24010, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24010, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24010, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24010, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24010, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24010, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 24010, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":23970
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Adds dependency edges to a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_534cuGraphAddDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_from_, PyObject *__pyx_v_to, size_t __pyx_v_numDependencies) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cfrom_;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cto;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_2generator30 = 0;
  PyObject *__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_5generator31 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__793)
  __Pyx_RefNannySetupContext("cuGraphAddDependencies", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 23970, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphAddDependencies", __pyx_f[0], 23970, 0, __PYX_ERR(0, 23970, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_from_ = __pyx_v_from_;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_from_);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_from_);
  __pyx_cur_scope->__pyx_v_to = __pyx_v_to;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_to);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_to);

  /* "cuda/cuda.pyx":24006
 *     cuGraphNodeGetDependentNodes
 *     """
 *     to = [] if to is None else to             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_to == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_to);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_to;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_to);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_to, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24007
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_22cuGraphAddDependencies_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 24007, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":24008
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__794, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24008, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 24008, __pyx_L1_error)

    /* "cuda/cuda.pyx":24007
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */
  }

  /* "cuda/cuda.pyx":24009
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_from_ == Py_None);
  if ((__pyx_t_4 != 0)) {
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
    __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_from_);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_from_;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_from_);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_from_, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":24010
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */
  __pyx_t_3 = __pyx_pf_4cuda_4cuda_22cuGraphAddDependencies_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 24010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!__pyx_t_4) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":24011
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__795, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 24011, __pyx_L1_error)

    /* "cuda/cuda.pyx":24010
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */
  }

  /* "cuda/cuda.pyx":24012
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL             # <<<<<<<<<<<<<<
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cfrom_ = NULL;

  /* "cuda/cuda.pyx":24013
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:             # <<<<<<<<<<<<<<
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_from_;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24013, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24014
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_from_;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24014, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cfrom_ = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":24015
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cfrom_ == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":24016
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(from_)):
 */
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_from_;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 24016, __pyx_L1_error)

      /* "cuda/cuda.pyx":24015
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":24018
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(from_)):             # <<<<<<<<<<<<<<
 *                 cfrom_[idx] = (<CUgraphNode>from_[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_from_;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24018, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":24019
 *         else:
 *             for idx in range(len(from_)):
 *                 cfrom_[idx] = (<CUgraphNode>from_[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_from_, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24019, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cfrom_[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":24013
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:             # <<<<<<<<<<<<<<
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 */
  }

  /* "cuda/cuda.pyx":24021
 *                 cfrom_[idx] = (<CUgraphNode>from_[idx])._ptr[0]
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL             # <<<<<<<<<<<<<<
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cto = NULL;

  /* "cuda/cuda.pyx":24022
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     if len(to) > 0:             # <<<<<<<<<<<<<<
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_to;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24023
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_to;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24023, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_cto = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":24024
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cto == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":24025
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(to)):
 */
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_to;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 24025, __pyx_L1_error)

      /* "cuda/cuda.pyx":24024
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":24027
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(to)):             # <<<<<<<<<<<<<<
 *                 cto[idx] = (<CUgraphNode>to[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_to;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24027, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":24028
 *         else:
 *             for idx in range(len(to)):
 *                 cto[idx] = (<CUgraphNode>to[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     err = ccuda.cuGraphAddDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 */
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_to, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24028, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        (__pyx_v_cto[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
    }

    /* "cuda/cuda.pyx":24022
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     if len(to) > 0:             # <<<<<<<<<<<<<<
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 */
  }

  /* "cuda/cuda.pyx":24030
 *                 cto[idx] = (<CUgraphNode>to[idx])._ptr[0]
 * 
 *     err = ccuda.cuGraphAddDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)             # <<<<<<<<<<<<<<
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_from_;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24030, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_from_, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3)->_ptr;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cfrom_;
  }
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_to;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24030, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_to, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3)->_ptr;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cto;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphAddDependencies((__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_t_10, __pyx_v_numDependencies); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24030, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":24031
 * 
 *     err = ccuda.cuGraphAddDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 *     if cfrom_ is not NULL:             # <<<<<<<<<<<<<<
 *         free(cfrom_)
 *     if cto is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_cfrom_ != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24032
 *     err = ccuda.cuGraphAddDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 *     if cfrom_ is not NULL:
 *         free(cfrom_)             # <<<<<<<<<<<<<<
 *     if cto is not NULL:
 *         free(cto)
 */
    free(__pyx_v_cfrom_);

    /* "cuda/cuda.pyx":24031
 * 
 *     err = ccuda.cuGraphAddDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 *     if cfrom_ is not NULL:             # <<<<<<<<<<<<<<
 *         free(cfrom_)
 *     if cto is not NULL:
 */
  }

  /* "cuda/cuda.pyx":24033
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 *     if cto is not NULL:             # <<<<<<<<<<<<<<
 *         free(cto)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = ((__pyx_v_cto != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24034
 *         free(cfrom_)
 *     if cto is not NULL:
 *         free(cto)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cto);

    /* "cuda/cuda.pyx":24033
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 *     if cto is not NULL:             # <<<<<<<<<<<<<<
 *         free(cto)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":24035
 *     if cto is not NULL:
 *         free(cto)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":23970
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Adds dependency edges to a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphAddDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_2generator30);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_22cuGraphAddDependencies_5generator31);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24038
 * 
 * @cython.embedsignature(True)
 * def cuGraphRemoveDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Removes dependency edges from a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_537cuGraphRemoveDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_536cuGraphRemoveDependencies[] = "cuGraphRemoveDependencies(CUgraph hGraph: CUgraph, from_: List[CUgraphNode], to: List[CUgraphNode], size_t numDependencies)\n Removes dependency edges from a graph.\n\n    The number of `dependencies` to be removed is defined by\n    `numDependencies`. Elements in `from` and `to` at corresponding indices\n    define a dependency. Each node in `from` and `to` must belong to\n    `hGraph`.\n\n    If `numDependencies` is 0, elements in `from` and `to` will be ignored.\n    Specifying a non-existing dependency will return an error.\n\n    Dependencies cannot be removed from graphs which contain allocation or\n    free nodes. Any attempt to do so will return an error.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph from which to remove dependencies\n    from_ : List[CUgraphNode]\n        Array of nodes that provide the dependencies\n    to : List[CUgraphNode]\n        Array of dependent nodes\n    numDependencies : size_t\n        Number of dependencies to be removed\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddDependencies\n    cuGraphGetEdges\n    cuGraphNodeGetDependencies\n    cuGraphNodeGetDependentNodes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_537cuGraphRemoveDependencies = {"cuGraphRemoveDependencies", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_537cuGraphRemoveDependencies, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_536cuGraphRemoveDependencies};
static PyObject *__pyx_pw_4cuda_4cuda_537cuGraphRemoveDependencies(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  PyObject *__pyx_v_from_ = 0;
  PyObject *__pyx_v_to = 0;
  size_t __pyx_v_numDependencies;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphRemoveDependencies (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_from,&__pyx_n_s_to,&__pyx_n_s_numDependencies,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_from)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphRemoveDependencies", 1, 4, 4, 1); __PYX_ERR(0, 24038, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_to)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphRemoveDependencies", 1, 4, 4, 2); __PYX_ERR(0, 24038, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDependencies)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphRemoveDependencies", 1, 4, 4, 3); __PYX_ERR(0, 24038, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphRemoveDependencies") < 0)) __PYX_ERR(0, 24038, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_from_ = values[1];
    __pyx_v_to = values[2];
    __pyx_v_numDependencies = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_numDependencies == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 24038, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphRemoveDependencies", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24038, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphRemoveDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 24038, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_536cuGraphRemoveDependencies(__pyx_self, __pyx_v_hGraph, __pyx_v_from_, __pyx_v_to, __pyx_v_numDependencies);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":24079
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */

static PyObject *__pyx_pf_4cuda_4cuda_25cuGraphRemoveDependencies_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_61_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_61_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 24079, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_2generator32, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphRemoveDependencies_locals, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 24079, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphRemoveDependencies.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 24079, 0, __PYX_ERR(0, 24079, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 24079, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to)) { __Pyx_RaiseClosureNameError("to"); __PYX_ERR(0, 24079, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_to; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24079, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24079, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24079, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24079, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24079, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24079, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 24079, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_5generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "cuda/cuda.pyx":24082
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */

static PyObject *__pyx_pf_4cuda_4cuda_25cuGraphRemoveDependencies_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_62_genexpr(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_62_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 24082, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_5generator33, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_cuGraphRemoveDependencies_locals, __pyx_n_s_cuda_cuda); if (unlikely(!gen)) __PYX_ERR(0, 24082, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphRemoveDependencies.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_5generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceCall("genexpr", __pyx_f[0], 24082, 0, __PYX_ERR(0, 24082, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 24082, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_)) { __Pyx_RaiseClosureNameError("from_"); __PYX_ERR(0, 24082, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_from_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24082, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24082, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24082, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 24082, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24082, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 24082, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__x, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v__x, __pyx_ptype_4cuda_4cuda_CUgraphNode); 
    __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
    if (__pyx_t_6) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24038
 * 
 * @cython.embedsignature(True)
 * def cuGraphRemoveDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Removes dependency edges from a graph.
 * 
 */

static PyObject *__pyx_pf_4cuda_4cuda_536cuGraphRemoveDependencies(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, PyObject *__pyx_v_from_, PyObject *__pyx_v_to, size_t __pyx_v_numDependencies) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *__pyx_cur_scope;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cfrom_;
  Py_ssize_t __pyx_v_idx;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_v_cto;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_2generator32 = 0;
  PyObject *__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_5generator33 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_9;
  __pyx_t_4cuda_5ccuda_CUgraphNode *__pyx_t_10;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__796)
  __Pyx_RefNannySetupContext("cuGraphRemoveDependencies", 0);
  __pyx_cur_scope = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *)__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies(__pyx_ptype_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 24038, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("cuGraphRemoveDependencies", __pyx_f[0], 24038, 0, __PYX_ERR(0, 24038, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_from_ = __pyx_v_from_;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_from_);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_from_);
  __pyx_cur_scope->__pyx_v_to = __pyx_v_to;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_to);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_to);

  /* "cuda/cuda.pyx":24078
 *     cuGraphNodeGetDependentNodes
 *     """
 *     to = [] if to is None else to             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_to == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24078, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_to);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_to;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_to);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_to, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24079
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */
  __pyx_t_1 = __pyx_pf_4cuda_4cuda_25cuGraphRemoveDependencies_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 24079, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cuda/cuda.pyx":24080
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__794, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24080, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 24080, __pyx_L1_error)

    /* "cuda/cuda.pyx":24079
 *     """
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 */
  }

  /* "cuda/cuda.pyx":24081
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 */
  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_from_ == Py_None);
  if ((__pyx_t_4 != 0)) {
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
    __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_from_);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_from_;
  }
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_from_);
  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_from_, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":24082
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */
  __pyx_t_3 = __pyx_pf_4cuda_4cuda_25cuGraphRemoveDependencies_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 24082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!__pyx_t_4) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cuda/cuda.pyx":24083
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__795, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24083, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 24083, __pyx_L1_error)

    /* "cuda/cuda.pyx":24082
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):             # <<<<<<<<<<<<<<
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 */
  }

  /* "cuda/cuda.pyx":24084
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL             # <<<<<<<<<<<<<<
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cfrom_ = NULL;

  /* "cuda/cuda.pyx":24085
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:             # <<<<<<<<<<<<<<
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_from_;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24085, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24086
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_from_;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24086, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cfrom_ = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":24087
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cfrom_ == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":24088
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(from_)):
 */
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_from_;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_n_u_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 24088, __pyx_L1_error)

      /* "cuda/cuda.pyx":24087
 *     if len(from_) > 0:
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":24090
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(from_)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(from_)):             # <<<<<<<<<<<<<<
 *                 cfrom_[idx] = (<CUgraphNode>from_[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_from_;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24090, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":24091
 *         else:
 *             for idx in range(len(from_)):
 *                 cfrom_[idx] = (<CUgraphNode>from_[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL
 */
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_from_, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        (__pyx_v_cfrom_[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_6)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }

    /* "cuda/cuda.pyx":24085
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:             # <<<<<<<<<<<<<<
 *         cfrom_ = <ccuda.CUgraphNode*> calloc(len(from_), sizeof(ccuda.CUgraphNode))
 *         if cfrom_ is NULL:
 */
  }

  /* "cuda/cuda.pyx":24093
 *                 cfrom_[idx] = (<CUgraphNode>from_[idx])._ptr[0]
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL             # <<<<<<<<<<<<<<
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 */
  __pyx_v_cto = NULL;

  /* "cuda/cuda.pyx":24094
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     if len(to) > 0:             # <<<<<<<<<<<<<<
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 */
  __pyx_t_6 = __pyx_cur_scope->__pyx_v_to;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24094, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = ((__pyx_t_5 > 0) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24095
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))             # <<<<<<<<<<<<<<
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 */
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_to;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24095, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_cto = ((__pyx_t_4cuda_5ccuda_CUgraphNode *)calloc(__pyx_t_5, (sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))));

    /* "cuda/cuda.pyx":24096
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cto == NULL) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cuda/cuda.pyx":24097
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))             # <<<<<<<<<<<<<<
 *         else:
 *             for idx in range(len(to)):
 */
      __pyx_t_6 = __pyx_cur_scope->__pyx_v_to;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_6, __pyx_n_u_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_MemoryError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 24097, __pyx_L1_error)

      /* "cuda/cuda.pyx":24096
 *     if len(to) > 0:
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 */
    }

    /* "cuda/cuda.pyx":24099
 *             raise MemoryError('Failed to allocate length x size memory: ' + str(len(to)) + 'x' + str(sizeof(ccuda.CUgraphNode)))
 *         else:
 *             for idx in range(len(to)):             # <<<<<<<<<<<<<<
 *                 cto[idx] = (<CUgraphNode>to[idx])._ptr[0]
 * 
 */
    /*else*/ {
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_to;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24099, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_7 = __pyx_t_5;
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_idx = __pyx_t_8;

        /* "cuda/cuda.pyx":24100
 *         else:
 *             for idx in range(len(to)):
 *                 cto[idx] = (<CUgraphNode>to[idx])._ptr[0]             # <<<<<<<<<<<<<<
 * 
 *     err = ccuda.cuGraphRemoveDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 */
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_to, __pyx_v_idx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        (__pyx_v_cto[__pyx_v_idx]) = (((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3)->_ptr[0]);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
    }

    /* "cuda/cuda.pyx":24094
 * 
 *     cdef ccuda.CUgraphNode* cto = NULL
 *     if len(to) > 0:             # <<<<<<<<<<<<<<
 *         cto = <ccuda.CUgraphNode*> calloc(len(to), sizeof(ccuda.CUgraphNode))
 *         if cto is NULL:
 */
  }

  /* "cuda/cuda.pyx":24102
 *                 cto[idx] = (<CUgraphNode>to[idx])._ptr[0]
 * 
 *     err = ccuda.cuGraphRemoveDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)             # <<<<<<<<<<<<<<
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_from_;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_from_, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3)->_ptr;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_9 = __pyx_v_cfrom_;
  }
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_to;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 24102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (((__pyx_t_5 == 1) != 0)) {
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_to, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_3)->_ptr;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_10 = __pyx_v_cto;
  }
  __pyx_t_11 = __pyx_f_4cuda_5ccuda_cuGraphRemoveDependencies((__pyx_v_hGraph->_ptr[0]), __pyx_t_9, __pyx_t_10, __pyx_v_numDependencies); if (unlikely(__pyx_t_11 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24102, __pyx_L1_error)
  __pyx_v_err = __pyx_t_11;

  /* "cuda/cuda.pyx":24103
 * 
 *     err = ccuda.cuGraphRemoveDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 *     if cfrom_ is not NULL:             # <<<<<<<<<<<<<<
 *         free(cfrom_)
 *     if cto is not NULL:
 */
  __pyx_t_2 = ((__pyx_v_cfrom_ != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24104
 *     err = ccuda.cuGraphRemoveDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 *     if cfrom_ is not NULL:
 *         free(cfrom_)             # <<<<<<<<<<<<<<
 *     if cto is not NULL:
 *         free(cto)
 */
    free(__pyx_v_cfrom_);

    /* "cuda/cuda.pyx":24103
 * 
 *     err = ccuda.cuGraphRemoveDependencies(hGraph._ptr[0], (<CUgraphNode>from_[0])._ptr if len(from_) == 1 else cfrom_, (<CUgraphNode>to[0])._ptr if len(to) == 1 else cto, numDependencies)
 *     if cfrom_ is not NULL:             # <<<<<<<<<<<<<<
 *         free(cfrom_)
 *     if cto is not NULL:
 */
  }

  /* "cuda/cuda.pyx":24105
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 *     if cto is not NULL:             # <<<<<<<<<<<<<<
 *         free(cto)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = ((__pyx_v_cto != NULL) != 0);
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":24106
 *         free(cfrom_)
 *     if cto is not NULL:
 *         free(cto)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
    free(__pyx_v_cto);

    /* "cuda/cuda.pyx":24105
 *     if cfrom_ is not NULL:
 *         free(cfrom_)
 *     if cto is not NULL:             # <<<<<<<<<<<<<<
 *         free(cto)
 *     return (CUresult(err),)
 */
  }

  /* "cuda/cuda.pyx":24107
 *     if cto is not NULL:
 *         free(cto)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_12, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24038
 * 
 * @cython.embedsignature(True)
 * def cuGraphRemoveDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Removes dependency edges from a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("cuda.cuda.cuGraphRemoveDependencies", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_2generator32);
  __Pyx_XDECREF(__pyx_gb_4cuda_4cuda_25cuGraphRemoveDependencies_5generator33);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24110
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroyNode(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Remove a node from the graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_539cuGraphDestroyNode(PyObject *__pyx_self, PyObject *__pyx_v_hNode); /*proto*/
static char __pyx_doc_4cuda_4cuda_538cuGraphDestroyNode[] = "cuGraphDestroyNode(CUgraphNode hNode: CUgraphNode)\n Remove a node from the graph.\n\n    Removes `hNode` from its graph. This operation also severs any\n    dependencies of other nodes on `hNode` and vice versa.\n\n    Nodes which belong to a graph which contains allocation or free nodes\n    cannot be destroyed. Any attempt to do so will return an error.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n        Node to remove\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddChildGraphNode\n    cuGraphAddEmptyNode\n    cuGraphAddKernelNode\n    cuGraphAddHostNode\n    cuGraphAddMemcpyNode\n    cuGraphAddMemsetNode\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_539cuGraphDestroyNode = {"cuGraphDestroyNode", (PyCFunction)__pyx_pw_4cuda_4cuda_539cuGraphDestroyNode, METH_O, __pyx_doc_4cuda_4cuda_538cuGraphDestroyNode};
static PyObject *__pyx_pw_4cuda_4cuda_539cuGraphDestroyNode(PyObject *__pyx_self, PyObject *__pyx_v_hNode) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphDestroyNode (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24110, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_538cuGraphDestroyNode(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_v_hNode));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_538cuGraphDestroyNode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__797)
  __Pyx_RefNannySetupContext("cuGraphDestroyNode", 0);
  __Pyx_TraceCall("cuGraphDestroyNode", __pyx_f[0], 24110, 0, __PYX_ERR(0, 24110, __pyx_L1_error));

  /* "cuda/cuda.pyx":24141
 *     cuGraphAddMemsetNode
 *     """
 *     err = ccuda.cuGraphDestroyNode(hNode._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphDestroyNode((__pyx_v_hNode->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24141, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24142
 *     """
 *     err = ccuda.cuGraphDestroyNode(hNode._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24110
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroyNode(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Remove a node from the graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphDestroyNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24145
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiate(hGraph not None : CUgraph, char* logBuffer, size_t bufferSize):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_541cuGraphInstantiate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_540cuGraphInstantiate[] = "cuGraphInstantiate(CUgraph hGraph: CUgraph, char *logBuffer, size_t bufferSize)\n Creates an executable graph from a graph.\n\n    Instantiates `hGraph` as an executable graph. The graph is validated\n    for any structural constraints or intra-node constraints which were not\n    previously validated. If instantiation is successful, a handle to the\n    instantiated graph is returned in `phGraphExec`.\n\n    If there are any errors, diagnostic information may be returned in\n    `errorNode` and `logBuffer`. This is the primary way to inspect\n    instantiation errors. The output will be null terminated unless the\n    diagnostics overflow the buffer. In this case, they will be truncated,\n    and the last byte can be inspected to determine if truncation occurred.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to instantiate\n    logBuffer : bytes\n        A character buffer to store diagnostic messages\n    bufferSize : size_t\n        Size of the log buffer in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphExec : CUgraphExec\n        Returns instantiated graph\n    phErrorNode : CUgraphNode\n        In case of an instantiation error, this may be modified to indicate\n        a node contributing to the error\n\n    See Also\n    --------\n    cuGraphInstantiateWithFlags\n    cuGraphCreate\n    cuGraphUpload\n    cuGraphLaunch\n    cuGraphExecDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_541cuGraphInstantiate = {"cuGraphInstantiate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_541cuGraphInstantiate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_540cuGraphInstantiate};
static PyObject *__pyx_pw_4cuda_4cuda_541cuGraphInstantiate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  char *__pyx_v_logBuffer;
  size_t __pyx_v_bufferSize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphInstantiate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_logBuffer,&__pyx_n_s_bufferSize,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_logBuffer)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphInstantiate", 1, 3, 3, 1); __PYX_ERR(0, 24145, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bufferSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphInstantiate", 1, 3, 3, 2); __PYX_ERR(0, 24145, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphInstantiate") < 0)) __PYX_ERR(0, 24145, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_logBuffer = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_logBuffer) && PyErr_Occurred())) __PYX_ERR(0, 24145, __pyx_L3_error)
    __pyx_v_bufferSize = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_bufferSize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 24145, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphInstantiate", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24145, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphInstantiate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 24145, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_540cuGraphInstantiate(__pyx_self, __pyx_v_hGraph, __pyx_v_logBuffer, __pyx_v_bufferSize);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_540cuGraphInstantiate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, char *__pyx_v_logBuffer, size_t __pyx_v_bufferSize) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_phGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_phErrorNode = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__798)
  __Pyx_RefNannySetupContext("cuGraphInstantiate", 0);
  __Pyx_TraceCall("cuGraphInstantiate", __pyx_f[0], 24145, 0, __PYX_ERR(0, 24145, __pyx_L1_error));

  /* "cuda/cuda.pyx":24189
 *     cuGraphExecDestroy
 *     """
 *     cdef CUgraphExec phGraphExec = CUgraphExec()             # <<<<<<<<<<<<<<
 *     cdef CUgraphNode phErrorNode = CUgraphNode()
 *     err = ccuda.cuGraphInstantiate(phGraphExec._ptr, hGraph._ptr[0], phErrorNode._ptr, logBuffer, bufferSize)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphExec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24190
 *     """
 *     cdef CUgraphExec phGraphExec = CUgraphExec()
 *     cdef CUgraphNode phErrorNode = CUgraphNode()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphInstantiate(phGraphExec._ptr, hGraph._ptr[0], phErrorNode._ptr, logBuffer, bufferSize)
 *     return (CUresult(err), phGraphExec, phErrorNode)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phErrorNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24191
 *     cdef CUgraphExec phGraphExec = CUgraphExec()
 *     cdef CUgraphNode phErrorNode = CUgraphNode()
 *     err = ccuda.cuGraphInstantiate(phGraphExec._ptr, hGraph._ptr[0], phErrorNode._ptr, logBuffer, bufferSize)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphExec, phErrorNode)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphInstantiate(__pyx_v_phGraphExec->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_v_phErrorNode->_ptr, __pyx_v_logBuffer, __pyx_v_bufferSize); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24191, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":24192
 *     cdef CUgraphNode phErrorNode = CUgraphNode()
 *     err = ccuda.cuGraphInstantiate(phGraphExec._ptr, hGraph._ptr[0], phErrorNode._ptr, logBuffer, bufferSize)
 *     return (CUresult(err), phGraphExec, phErrorNode)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphExec));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphExec));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phGraphExec));
  __Pyx_INCREF(((PyObject *)__pyx_v_phErrorNode));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phErrorNode));
  PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_phErrorNode));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24145
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiate(hGraph not None : CUgraph, char* logBuffer, size_t bufferSize):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphInstantiate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphExec);
  __Pyx_XDECREF((PyObject *)__pyx_v_phErrorNode);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24195
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiateWithFlags(hGraph not None : CUgraph, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_543cuGraphInstantiateWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_542cuGraphInstantiateWithFlags[] = "cuGraphInstantiateWithFlags(CUgraph hGraph: CUgraph, unsigned long long flags)\n Creates an executable graph from a graph.\n\n    Instantiates `hGraph` as an executable graph. The graph is validated\n    for any structural constraints or intra-node constraints which were not\n    previously validated. If instantiation is successful, a handle to the\n    instantiated graph is returned in `phGraphExec`.\n\n    The `flags` parameter controls the behavior of instantiation and\n    subsequent graph launches. Valid flags are:\n\n    CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH, which configures a\n    graph containing memory allocation nodes to automatically free any\n    unfreed memory allocations before the graph is relaunched.\n\n    If `hGraph` contains any allocation or free nodes, there can be at most\n    one executable graph in existence for that graph at a time.\n\n    An attempt to instantiate a second executable graph before destroying\n    the first with cuGraphExecDestroy will result in an error.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to instantiate\n    flags : unsigned long long\n        Flags to control instantiation. See CUgraphInstantiate_flags.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    phGraphExec : CUgraphExec\n        Returns instantiated graph\n\n    See Also\n    --------\n    cuGraphInstantiate\n    cuGraphCreate\n    cuGraphUpload\n    cuGraphLaunch\n    cuGraphExecDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_543cuGraphInstantiateWithFlags = {"cuGraphInstantiateWithFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_543cuGraphInstantiateWithFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_542cuGraphInstantiateWithFlags};
static PyObject *__pyx_pw_4cuda_4cuda_543cuGraphInstantiateWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  unsigned PY_LONG_LONG __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphInstantiateWithFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphInstantiateWithFlags", 1, 2, 2, 1); __PYX_ERR(0, 24195, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphInstantiateWithFlags") < 0)) __PYX_ERR(0, 24195, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(values[1]); if (unlikely((__pyx_v_flags == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 24195, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphInstantiateWithFlags", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24195, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphInstantiateWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 24195, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_542cuGraphInstantiateWithFlags(__pyx_self, __pyx_v_hGraph, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_542cuGraphInstantiateWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, unsigned PY_LONG_LONG __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_phGraphExec = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__799)
  __Pyx_RefNannySetupContext("cuGraphInstantiateWithFlags", 0);
  __Pyx_TraceCall("cuGraphInstantiateWithFlags", __pyx_f[0], 24195, 0, __PYX_ERR(0, 24195, __pyx_L1_error));

  /* "cuda/cuda.pyx":24241
 *     cuGraphExecDestroy
 *     """
 *     cdef CUgraphExec phGraphExec = CUgraphExec()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphInstantiateWithFlags(phGraphExec._ptr, hGraph._ptr[0], flags)
 *     return (CUresult(err), phGraphExec)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphExec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24242
 *     """
 *     cdef CUgraphExec phGraphExec = CUgraphExec()
 *     err = ccuda.cuGraphInstantiateWithFlags(phGraphExec._ptr, hGraph._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phGraphExec)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphInstantiateWithFlags(__pyx_v_phGraphExec->_ptr, (__pyx_v_hGraph->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24242, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":24243
 *     cdef CUgraphExec phGraphExec = CUgraphExec()
 *     err = ccuda.cuGraphInstantiateWithFlags(phGraphExec._ptr, hGraph._ptr[0], flags)
 *     return (CUresult(err), phGraphExec)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phGraphExec));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phGraphExec));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phGraphExec));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24195
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiateWithFlags(hGraph not None : CUgraph, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphInstantiateWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phGraphExec);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24246
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecKernelNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a kernel node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_545cuGraphExecKernelNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_544cuGraphExecKernelNodeSetParams[] = "cuGraphExecKernelNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUDA_KERNEL_NODE_PARAMS nodeParams: CUDA_KERNEL_NODE_PARAMS)\n Sets the parameters for a kernel node in the given graphExec.\n\n    Sets the parameters of a kernel node in an executable graph\n    `hGraphExec`. The node is identified by the corresponding node `hNode`\n    in the non-executable graph, from which the executable graph was\n    instantiated.\n\n    `hNode` must not have been removed from the original graph. The `func`\n    field of `nodeParams` cannot be modified and must match the original\n    value. All other values can be modified.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. `hNode` is also not modified by this call.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        kernel node from the graph from which graphExec was instantiated\n    nodeParams : CUDA_KERNEL_NODE_PARAMS\n        Updated Parameters to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddKernelNode\n    cuGraphKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_545cuGraphExecKernelNodeSetParams = {"cuGraphExecKernelNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_545cuGraphExecKernelNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_544cuGraphExecKernelNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_545cuGraphExecKernelNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecKernelNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecKernelNodeSetParams", 1, 3, 3, 1); __PYX_ERR(0, 24246, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecKernelNodeSetParams", 1, 3, 3, 2); __PYX_ERR(0, 24246, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecKernelNodeSetParams") < 0)) __PYX_ERR(0, 24246, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecKernelNodeSetParams", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24246, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecKernelNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24246, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24246, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 24246, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_544cuGraphExecKernelNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_544cuGraphExecKernelNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__800)
  __Pyx_RefNannySetupContext("cuGraphExecKernelNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecKernelNodeSetParams", __pyx_f[0], 24246, 0, __PYX_ERR(0, 24246, __pyx_L1_error));

  /* "cuda/cuda.pyx":24294
 *     cuGraphInstantiate
 *     """
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExecKernelNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24294, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 24294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":24295
 *     """
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecKernelNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExecKernelNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24295, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":24296
 *     cdef ccuda.CUDA_KERNEL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecKernelNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24246
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecKernelNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a kernel node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecKernelNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24299
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemcpyNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memcpy node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_547cuGraphExecMemcpyNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_546cuGraphExecMemcpyNodeSetParams[] = "cuGraphExecMemcpyNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUDA_MEMCPY3D copyParams: CUDA_MEMCPY3D, CUcontext ctx: CUcontext)\n Sets the parameters for a memcpy node in the given graphExec.\n\n    Updates the work represented by `hNode` in `hGraphExec` as though\n    `hNode` had contained `copyParams` at instantiation. hNode must remain\n    in the graph which was used to instantiate `hGraphExec`. Changed edges\n    to and from hNode are ignored.\n\n    The source and destination memory in `copyParams` must be allocated\n    from the same contexts as the original source and destination memory.\n    Both the instantiation-time memory operands and the memory operands in\n    `copyParams` must be 1-dimensional. Zero-length operations are not\n    supported.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. hNode is also not modified by this call.\n\n    Returns CUDA_ERROR_INVALID_VALUE if the memory operands' mappings\n    changed or either the original or new memory operands are\n    multidimensional.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        Memcpy node from the graph which was used to instantiate graphExec\n    copyParams : CUDA_MEMCPY3D\n        The updated parameters to set\n    ctx : CUcontext\n        Context on which to run the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddMemcpyNode\n    cuGraphMemcpyNodeSetParams\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphor""esSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_547cuGraphExecMemcpyNodeSetParams = {"cuGraphExecMemcpyNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_547cuGraphExecMemcpyNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_546cuGraphExecMemcpyNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_547cuGraphExecMemcpyNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_copyParams = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecMemcpyNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_copyParams,&__pyx_n_s_ctx,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecMemcpyNodeSetParams", 1, 4, 4, 1); __PYX_ERR(0, 24299, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_copyParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecMemcpyNodeSetParams", 1, 4, 4, 2); __PYX_ERR(0, 24299, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecMemcpyNodeSetParams", 1, 4, 4, 3); __PYX_ERR(0, 24299, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecMemcpyNodeSetParams") < 0)) __PYX_ERR(0, 24299, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_copyParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *)values[2]);
    __pyx_v_ctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecMemcpyNodeSetParams", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24299, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecMemcpyNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24299, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24299, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_copyParams), __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D, 1, "copyParams", 0))) __PYX_ERR(0, 24299, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 24299, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_546cuGraphExecMemcpyNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_copyParams, __pyx_v_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_546cuGraphExecMemcpyNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D *__pyx_v_copyParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *__pyx_v_ccopyParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__801)
  __Pyx_RefNannySetupContext("cuGraphExecMemcpyNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecMemcpyNodeSetParams", __pyx_f[0], 24299, 0, __PYX_ERR(0, 24299, __pyx_L1_error));

  /* "cuda/cuda.pyx":24355
 *     cuGraphInstantiate
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExecMemcpyNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], ccopyParams_ptr, ctx._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_copyParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24355, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 24355, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_copyParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_ccopyParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":24356
 *     """
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL
 *     err = ccuda.cuGraphExecMemcpyNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], ccopyParams_ptr, ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExecMemcpyNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), __pyx_v_ccopyParams_ptr, (__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24356, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":24357
 *     cdef ccuda.CUDA_MEMCPY3D* ccopyParams_ptr = copyParams._ptr if copyParams != None else NULL
 *     err = ccuda.cuGraphExecMemcpyNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], ccopyParams_ptr, ctx._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24299
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemcpyNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memcpy node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecMemcpyNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24360
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemsetNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memset node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_549cuGraphExecMemsetNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_548cuGraphExecMemsetNodeSetParams[] = "cuGraphExecMemsetNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUDA_MEMSET_NODE_PARAMS memsetParams: CUDA_MEMSET_NODE_PARAMS, CUcontext ctx: CUcontext)\n Sets the parameters for a memset node in the given graphExec.\n\n    Updates the work represented by `hNode` in `hGraphExec` as though\n    `hNode` had contained `memsetParams` at instantiation. hNode must\n    remain in the graph which was used to instantiate `hGraphExec`. Changed\n    edges to and from hNode are ignored.\n\n    The destination memory in `memsetParams` must be allocated from the\n    same contexts as the original destination memory. Both the\n    instantiation-time memory operand and the memory operand in\n    `memsetParams` must be 1-dimensional. Zero-length operations are not\n    supported.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. hNode is also not modified by this call.\n\n    Returns CUDA_ERROR_INVALID_VALUE if the memory operand's mappings\n    changed or either the original or new memory operand are\n    multidimensional.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        Memset node from the graph which was used to instantiate graphExec\n    memsetParams : CUDA_MEMSET_NODE_PARAMS\n        The updated parameters to set\n    ctx : CUcontext\n        Context on which to run the node\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddMemsetNode\n    cuGraphMemsetNodeSetParams\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecE""xternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_549cuGraphExecMemsetNodeSetParams = {"cuGraphExecMemsetNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_549cuGraphExecMemsetNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_548cuGraphExecMemsetNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_549cuGraphExecMemsetNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_memsetParams = 0;
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecMemsetNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_memsetParams,&__pyx_n_s_ctx,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecMemsetNodeSetParams", 1, 4, 4, 1); __PYX_ERR(0, 24360, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memsetParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecMemsetNodeSetParams", 1, 4, 4, 2); __PYX_ERR(0, 24360, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecMemsetNodeSetParams", 1, 4, 4, 3); __PYX_ERR(0, 24360, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecMemsetNodeSetParams") < 0)) __PYX_ERR(0, 24360, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_memsetParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *)values[2]);
    __pyx_v_ctx = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecMemsetNodeSetParams", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24360, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecMemsetNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24360, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24360, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memsetParams), __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS, 1, "memsetParams", 0))) __PYX_ERR(0, 24360, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ctx), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "ctx", 0))) __PYX_ERR(0, 24360, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_548cuGraphExecMemsetNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_memsetParams, __pyx_v_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_548cuGraphExecMemsetNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_memsetParams, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_ctx) {
  __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS *__pyx_v_cmemsetParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__802)
  __Pyx_RefNannySetupContext("cuGraphExecMemsetNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecMemsetNodeSetParams", __pyx_f[0], 24360, 0, __PYX_ERR(0, 24360, __pyx_L1_error));

  /* "cuda/cuda.pyx":24416
 *     cuGraphInstantiate
 *     """
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExecMemsetNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cmemsetParams_ptr, ctx._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_memsetParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24416, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 24416, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_memsetParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cmemsetParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":24417
 *     """
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL
 *     err = ccuda.cuGraphExecMemsetNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cmemsetParams_ptr, ctx._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExecMemsetNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), __pyx_v_cmemsetParams_ptr, (__pyx_v_ctx->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24417, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":24418
 *     cdef ccuda.CUDA_MEMSET_NODE_PARAMS* cmemsetParams_ptr = memsetParams._ptr if memsetParams != None else NULL
 *     err = ccuda.cuGraphExecMemsetNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cmemsetParams_ptr, ctx._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24360
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemsetNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memset node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecMemsetNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24421
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecHostNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a host node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_551cuGraphExecHostNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_550cuGraphExecHostNodeSetParams[] = "cuGraphExecHostNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUDA_HOST_NODE_PARAMS nodeParams: CUDA_HOST_NODE_PARAMS)\n Sets the parameters for a host node in the given graphExec.\n\n    Updates the work represented by `hNode` in `hGraphExec` as though\n    `hNode` had contained `nodeParams` at instantiation. hNode must remain\n    in the graph which was used to instantiate `hGraphExec`. Changed edges\n    to and from hNode are ignored.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. hNode is also not modified by this call.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        Host node from the graph which was used to instantiate graphExec\n    nodeParams : CUDA_HOST_NODE_PARAMS\n        The updated parameters to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddHostNode\n    cuGraphHostNodeSetParams\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_551cuGraphExecHostNodeSetParams = {"cuGraphExecHostNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_551cuGraphExecHostNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_550cuGraphExecHostNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_551cuGraphExecHostNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecHostNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecHostNodeSetParams", 1, 3, 3, 1); __PYX_ERR(0, 24421, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecHostNodeSetParams", 1, 3, 3, 2); __PYX_ERR(0, 24421, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecHostNodeSetParams") < 0)) __PYX_ERR(0, 24421, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecHostNodeSetParams", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24421, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecHostNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24421, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24421, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 24421, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_550cuGraphExecHostNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_550cuGraphExecHostNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__803)
  __Pyx_RefNannySetupContext("cuGraphExecHostNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecHostNodeSetParams", __pyx_f[0], 24421, 0, __PYX_ERR(0, 24421, __pyx_L1_error));

  /* "cuda/cuda.pyx":24465
 *     cuGraphInstantiate
 *     """
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExecHostNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24465, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 24465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":24466
 *     """
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecHostNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExecHostNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24466, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":24467
 *     cdef ccuda.CUDA_HOST_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecHostNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24421
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecHostNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a host node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecHostNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24470
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecChildGraphNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Updates node parameters in the child graph node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_553cuGraphExecChildGraphNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_552cuGraphExecChildGraphNodeSetParams[] = "cuGraphExecChildGraphNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUgraph childGraph: CUgraph)\n Updates node parameters in the child graph node in the given graphExec.\n\n    Updates the work represented by `hNode` in `hGraphExec` as though the\n    nodes contained in `hNode's` graph had the parameters contained in\n    `childGraph's` nodes at instantiation. `hNode` must remain in the graph\n    which was used to instantiate `hGraphExec`. Changed edges to and from\n    `hNode` are ignored.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. `hNode` is also not modified by this call.\n\n    The topology of `childGraph`, as well as the node insertion order, must\n    match that of the graph contained in `hNode`. See cuGraphExecUpdate()\n    for a list of restrictions on what can be updated in an instantiated\n    graph. The update is recursive, so child graph nodes contained within\n    the top level child graph will also be updated.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        Host node from the graph which was used to instantiate graphExec\n    childGraph : CUgraph\n        The graph supplying the updated parameters\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddChildGraphNode\n    cuGraphChildGraphNodeGetGraph\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_553cuGraphExecChildGraphNodeSetParams = {"cuGraphExecChildGraphNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_553cuGraphExecChildGraphNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_552cuGraphExecChildGraphNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_553cuGraphExecChildGraphNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_childGraph = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecChildGraphNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_childGraph,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecChildGraphNodeSetParams", 1, 3, 3, 1); __PYX_ERR(0, 24470, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_childGraph)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecChildGraphNodeSetParams", 1, 3, 3, 2); __PYX_ERR(0, 24470, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecChildGraphNodeSetParams") < 0)) __PYX_ERR(0, 24470, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_childGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecChildGraphNodeSetParams", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24470, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecChildGraphNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24470, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24470, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_childGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "childGraph", 0))) __PYX_ERR(0, 24470, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_552cuGraphExecChildGraphNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_childGraph);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_552cuGraphExecChildGraphNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_childGraph) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__804)
  __Pyx_RefNannySetupContext("cuGraphExecChildGraphNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecChildGraphNodeSetParams", __pyx_f[0], 24470, 0, __PYX_ERR(0, 24470, __pyx_L1_error));

  /* "cuda/cuda.pyx":24521
 *     cuGraphInstantiate
 *     """
 *     err = ccuda.cuGraphExecChildGraphNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], childGraph._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphExecChildGraphNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), (__pyx_v_childGraph->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24521, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24522
 *     """
 *     err = ccuda.cuGraphExecChildGraphNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], childGraph._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24470
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecChildGraphNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Updates node parameters in the child graph node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecChildGraphNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24525
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventRecordNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event record node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_555cuGraphExecEventRecordNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_554cuGraphExecEventRecordNodeSetEvent[] = "cuGraphExecEventRecordNodeSetEvent(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUevent event: CUevent)\n Sets the event for an event record node in the given graphExec.\n\n    Sets the event of an event record node in an executable graph\n    `hGraphExec`. The node is identified by the corresponding node `hNode`\n    in the non-executable graph, from which the executable graph was\n    instantiated.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. `hNode` is also not modified by this call.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        event record node from the graph from which graphExec was\n        instantiated\n    event : CUevent\n        Updated event to use\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddEventRecordNode\n    cuGraphEventRecordNodeGetEvent\n    cuGraphEventWaitNodeSetEvent\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_555cuGraphExecEventRecordNodeSetEvent = {"cuGraphExecEventRecordNodeSetEvent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_555cuGraphExecEventRecordNodeSetEvent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_554cuGraphExecEventRecordNodeSetEvent};
static PyObject *__pyx_pw_4cuda_4cuda_555cuGraphExecEventRecordNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecEventRecordNodeSetEvent (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_event,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecEventRecordNodeSetEvent", 1, 3, 3, 1); __PYX_ERR(0, 24525, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecEventRecordNodeSetEvent", 1, 3, 3, 2); __PYX_ERR(0, 24525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecEventRecordNodeSetEvent") < 0)) __PYX_ERR(0, 24525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_event = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecEventRecordNodeSetEvent", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecEventRecordNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 24525, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_554cuGraphExecEventRecordNodeSetEvent(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_554cuGraphExecEventRecordNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__805)
  __Pyx_RefNannySetupContext("cuGraphExecEventRecordNodeSetEvent", 0);
  __Pyx_TraceCall("cuGraphExecEventRecordNodeSetEvent", __pyx_f[0], 24525, 0, __PYX_ERR(0, 24525, __pyx_L1_error));

  /* "cuda/cuda.pyx":24573
 *     cuGraphInstantiate
 *     """
 *     err = ccuda.cuGraphExecEventRecordNodeSetEvent(hGraphExec._ptr[0], hNode._ptr[0], event._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphExecEventRecordNodeSetEvent((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24573, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24574
 *     """
 *     err = ccuda.cuGraphExecEventRecordNodeSetEvent(hGraphExec._ptr[0], hNode._ptr[0], event._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24525
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventRecordNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event record node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecEventRecordNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24577
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventWaitNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event wait node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_557cuGraphExecEventWaitNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_556cuGraphExecEventWaitNodeSetEvent[] = "cuGraphExecEventWaitNodeSetEvent(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUevent event: CUevent)\n Sets the event for an event wait node in the given graphExec.\n\n    Sets the event of an event wait node in an executable graph\n    `hGraphExec`. The node is identified by the corresponding node `hNode`\n    in the non-executable graph, from which the executable graph was\n    instantiated.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. `hNode` is also not modified by this call.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        event wait node from the graph from which graphExec was\n        instantiated\n    event : CUevent\n        Updated event to use\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddEventWaitNode\n    cuGraphEventWaitNodeGetEvent\n    cuGraphEventRecordNodeSetEvent\n    cuEventRecordWithFlags\n    cuStreamWaitEvent\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_557cuGraphExecEventWaitNodeSetEvent = {"cuGraphExecEventWaitNodeSetEvent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_557cuGraphExecEventWaitNodeSetEvent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_556cuGraphExecEventWaitNodeSetEvent};
static PyObject *__pyx_pw_4cuda_4cuda_557cuGraphExecEventWaitNodeSetEvent(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecEventWaitNodeSetEvent (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_event,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecEventWaitNodeSetEvent", 1, 3, 3, 1); __PYX_ERR(0, 24577, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecEventWaitNodeSetEvent", 1, 3, 3, 2); __PYX_ERR(0, 24577, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecEventWaitNodeSetEvent") < 0)) __PYX_ERR(0, 24577, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_event = ((struct __pyx_obj_4cuda_4cuda_CUevent *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecEventWaitNodeSetEvent", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecEventWaitNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24577, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24577, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4cuda_4cuda_CUevent, 0, "event", 0))) __PYX_ERR(0, 24577, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_556cuGraphExecEventWaitNodeSetEvent(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_556cuGraphExecEventWaitNodeSetEvent(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUevent *__pyx_v_event) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__806)
  __Pyx_RefNannySetupContext("cuGraphExecEventWaitNodeSetEvent", 0);
  __Pyx_TraceCall("cuGraphExecEventWaitNodeSetEvent", __pyx_f[0], 24577, 0, __PYX_ERR(0, 24577, __pyx_L1_error));

  /* "cuda/cuda.pyx":24625
 *     cuGraphInstantiate
 *     """
 *     err = ccuda.cuGraphExecEventWaitNodeSetEvent(hGraphExec._ptr[0], hNode._ptr[0], event._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphExecEventWaitNodeSetEvent((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), (__pyx_v_event->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24625, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24626
 *     """
 *     err = ccuda.cuGraphExecEventWaitNodeSetEvent(hGraphExec._ptr[0], hNode._ptr[0], event._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24577
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventWaitNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event wait node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecEventWaitNodeSetEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24629
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore signal node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_559cuGraphExecExternalSemaphoresSignalNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_558cuGraphExecExternalSemaphoresSignalNodeSetParams[] = "cuGraphExecExternalSemaphoresSignalNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUDA_EXT_SEM_SIGNAL_NODE_PARAMS nodeParams: CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)\n Sets the parameters for an external semaphore signal node in the given graphExec.\n\n    Sets the parameters of an external semaphore signal node in an\n    executable graph `hGraphExec`. The node is identified by the\n    corresponding node `hNode` in the non-executable graph, from which the\n    executable graph was instantiated.\n\n    `hNode` must not have been removed from the original graph.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. `hNode` is also not modified by this call.\n\n    Changing `nodeParams->numExtSems` is not supported.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        semaphore signal node from the graph from which graphExec was\n        instantiated\n    nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS\n        Updated Parameters to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddExternalSemaphoresSignalNode\n    cuImportExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphoresWaitNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_559cuGraphExecExternalSemaphoresSignalNodeSetParams = {"cuGraphExecExternalSemaphoresSignalNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_559cuGraphExecExternalSemaphoresSignalNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_558cuGraphExecExternalSemaphoresSignalNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_559cuGraphExecExternalSemaphoresSignalNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecExternalSemaphoresSignalNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecExternalSemaphoresSignalNodeSetParams", 1, 3, 3, 1); __PYX_ERR(0, 24629, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecExternalSemaphoresSignalNodeSetParams", 1, 3, 3, 2); __PYX_ERR(0, 24629, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecExternalSemaphoresSignalNodeSetParams") < 0)) __PYX_ERR(0, 24629, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecExternalSemaphoresSignalNodeSetParams", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24629, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecExternalSemaphoresSignalNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24629, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24629, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 24629, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_558cuGraphExecExternalSemaphoresSignalNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_558cuGraphExecExternalSemaphoresSignalNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__807)
  __Pyx_RefNannySetupContext("cuGraphExecExternalSemaphoresSignalNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecExternalSemaphoresSignalNodeSetParams", __pyx_f[0], 24629, 0, __PYX_ERR(0, 24629, __pyx_L1_error));

  /* "cuda/cuda.pyx":24680
 *     cuGraphInstantiate
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24680, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 24680, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":24681
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExecExternalSemaphoresSignalNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24681, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":24682
 *     cdef ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24629
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore signal node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecExternalSemaphoresSignalNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24685
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore wait node in the given graphExec.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_561cuGraphExecExternalSemaphoresWaitNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_560cuGraphExecExternalSemaphoresWaitNodeSetParams[] = "cuGraphExecExternalSemaphoresWaitNodeSetParams(CUgraphExec hGraphExec: CUgraphExec, CUgraphNode hNode: CUgraphNode, CUDA_EXT_SEM_WAIT_NODE_PARAMS nodeParams: CUDA_EXT_SEM_WAIT_NODE_PARAMS)\n Sets the parameters for an external semaphore wait node in the given graphExec.\n\n    Sets the parameters of an external semaphore wait node in an executable\n    graph `hGraphExec`. The node is identified by the corresponding node\n    `hNode` in the non-executable graph, from which the executable graph\n    was instantiated.\n\n    `hNode` must not have been removed from the original graph.\n\n    The modifications only affect future launches of `hGraphExec`. Already\n    enqueued or running launches of `hGraphExec` are not affected by this\n    call. `hNode` is also not modified by this call.\n\n    Changing `nodeParams->numExtSems` is not supported.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The executable graph in which to set the specified node\n    hNode : CUgraphNode\n        semaphore wait node from the graph from which graphExec was\n        instantiated\n    nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS\n        Updated Parameters to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphAddExternalSemaphoresWaitNode\n    cuImportExternalSemaphore\n    cuSignalExternalSemaphoresAsync\n    cuWaitExternalSemaphoresAsync\n    cuGraphExecKernelNodeSetParams\n    cuGraphExecMemcpyNodeSetParams\n    cuGraphExecMemsetNodeSetParams\n    cuGraphExecHostNodeSetParams\n    cuGraphExecChildGraphNodeSetParams\n    cuGraphExecEventRecordNodeSetEvent\n    cuGraphExecEventWaitNodeSetEvent\n    cuGraphExecExternalSemaphoresSignalNodeSetParams\n    cuGraphExecUpdate\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_561cuGraphExecExternalSemaphoresWaitNodeSetParams = {"cuGraphExecExternalSemaphoresWaitNodeSetParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_561cuGraphExecExternalSemaphoresWaitNodeSetParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_560cuGraphExecExternalSemaphoresWaitNodeSetParams};
static PyObject *__pyx_pw_4cuda_4cuda_561cuGraphExecExternalSemaphoresWaitNodeSetParams(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecExternalSemaphoresWaitNodeSetParams (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hNode,&__pyx_n_s_nodeParams,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecExternalSemaphoresWaitNodeSetParams", 1, 3, 3, 1); __PYX_ERR(0, 24685, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeParams)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecExternalSemaphoresWaitNodeSetParams", 1, 3, 3, 2); __PYX_ERR(0, 24685, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecExternalSemaphoresWaitNodeSetParams") < 0)) __PYX_ERR(0, 24685, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
    __pyx_v_nodeParams = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecExternalSemaphoresWaitNodeSetParams", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24685, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecExternalSemaphoresWaitNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24685, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24685, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeParams), __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS, 1, "nodeParams", 0))) __PYX_ERR(0, 24685, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_560cuGraphExecExternalSemaphoresWaitNodeSetParams(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hNode, __pyx_v_nodeParams);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_560cuGraphExecExternalSemaphoresWaitNodeSetParams(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_nodeParams) {
  __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *__pyx_v_cnodeParams_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__808)
  __Pyx_RefNannySetupContext("cuGraphExecExternalSemaphoresWaitNodeSetParams", 0);
  __Pyx_TraceCall("cuGraphExecExternalSemaphoresWaitNodeSetParams", __pyx_f[0], 24685, 0, __PYX_ERR(0, 24685, __pyx_L1_error));

  /* "cuda/cuda.pyx":24736
 *     cuGraphInstantiate
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_nodeParams), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24736, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 24736, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_nodeParams->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cnodeParams_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":24737
 *     """
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphExecExternalSemaphoresWaitNodeSetParams((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hNode->_ptr[0]), __pyx_v_cnodeParams_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24737, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":24738
 *     cdef ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS* cnodeParams_ptr = nodeParams._ptr if nodeParams != None else NULL
 *     err = ccuda.cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec._ptr[0], hNode._ptr[0], cnodeParams_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 24738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24685
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore wait node in the given graphExec.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecExternalSemaphoresWaitNodeSetParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24741
 * 
 * @cython.embedsignature(True)
 * def cuGraphUpload(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Uploads an executable graph in a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_563cuGraphUpload(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_562cuGraphUpload[] = "cuGraphUpload(CUgraphExec hGraphExec: CUgraphExec, CUstream hStream: CUstream)\n Uploads an executable graph in a stream.\n\n    Uploads `hGraphExec` to the device in `hStream` without executing it.\n    Uploads of the same `hGraphExec` will be serialized. Each upload is\n    ordered behind both any previous work in `hStream` and any previous\n    launches of `hGraphExec`. Uses memory cached by `stream` to back the\n    allocations owned by `hGraphExec`.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        Executable graph to upload\n    hStream : CUstream\n        Stream in which to upload the graph\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphInstantiate\n    cuGraphLaunch\n    cuGraphExecDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_563cuGraphUpload = {"cuGraphUpload", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_563cuGraphUpload, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_562cuGraphUpload};
static PyObject *__pyx_pw_4cuda_4cuda_563cuGraphUpload(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphUpload (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphUpload", 1, 2, 2, 1); __PYX_ERR(0, 24741, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphUpload") < 0)) __PYX_ERR(0, 24741, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphUpload", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24741, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphUpload", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24741, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 24741, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_562cuGraphUpload(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_562cuGraphUpload(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__809)
  __Pyx_RefNannySetupContext("cuGraphUpload", 0);
  __Pyx_TraceCall("cuGraphUpload", __pyx_f[0], 24741, 0, __PYX_ERR(0, 24741, __pyx_L1_error));

  /* "cuda/cuda.pyx":24773
 *     cuGraphExecDestroy
 *     """
 *     err = ccuda.cuGraphUpload(hGraphExec._ptr[0], hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphUpload((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24773, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24774
 *     """
 *     err = ccuda.cuGraphUpload(hGraphExec._ptr[0], hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24741
 * 
 * @cython.embedsignature(True)
 * def cuGraphUpload(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Uploads an executable graph in a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphUpload", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24777
 * 
 * @cython.embedsignature(True)
 * def cuGraphLaunch(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches an executable graph in a stream.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_565cuGraphLaunch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_564cuGraphLaunch[] = "cuGraphLaunch(CUgraphExec hGraphExec: CUgraphExec, CUstream hStream: CUstream)\n Launches an executable graph in a stream.\n\n    Executes `hGraphExec` in `hStream`. Only one instance of `hGraphExec`\n    may be executing at a time. Each launch is ordered behind both any\n    previous work in `hStream` and any previous launches of `hGraphExec`.\n    To execute a graph concurrently, it must be instantiated multiple times\n    into multiple executable graphs.\n\n    If any allocations created by `hGraphExec` remain unfreed (from a\n    previous launch) and `hGraphExec` was not instantiated with\n    CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH, the launch will fail\n    with CUDA_ERROR_INVALID_VALUE.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        Executable graph to launch\n    hStream : CUstream\n        Stream in which to launch the graph\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphInstantiate\n    cuGraphUpload\n    cuGraphExecDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_565cuGraphLaunch = {"cuGraphLaunch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_565cuGraphLaunch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_564cuGraphLaunch};
static PyObject *__pyx_pw_4cuda_4cuda_565cuGraphLaunch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphLaunch (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hStream_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphLaunch", 1, 2, 2, 1); __PYX_ERR(0, 24777, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphLaunch") < 0)) __PYX_ERR(0, 24777, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphLaunch", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24777, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphLaunch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24777, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 24777, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_564cuGraphLaunch(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_564cuGraphLaunch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__810)
  __Pyx_RefNannySetupContext("cuGraphLaunch", 0);
  __Pyx_TraceCall("cuGraphLaunch", __pyx_f[0], 24777, 0, __PYX_ERR(0, 24777, __pyx_L1_error));

  /* "cuda/cuda.pyx":24814
 *     cuGraphExecDestroy
 *     """
 *     err = ccuda.cuGraphLaunch(hGraphExec._ptr[0], hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphLaunch((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24814, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24815
 *     """
 *     err = ccuda.cuGraphLaunch(hGraphExec._ptr[0], hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24777
 * 
 * @cython.embedsignature(True)
 * def cuGraphLaunch(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches an executable graph in a stream.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphLaunch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24818
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecDestroy(hGraphExec not None : CUgraphExec):             # <<<<<<<<<<<<<<
 *     """ Destroys an executable graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_567cuGraphExecDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hGraphExec); /*proto*/
static char __pyx_doc_4cuda_4cuda_566cuGraphExecDestroy[] = "cuGraphExecDestroy(CUgraphExec hGraphExec: CUgraphExec)\n Destroys an executable graph.\n\n    Destroys the executable graph specified by `hGraphExec`, as well as all\n    of its executable nodes. If the executable graph is in-flight, it will\n    not be terminated, but rather freed asynchronously on completion.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        Executable graph to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphInstantiate\n    cuGraphUpload\n    cuGraphLaunch\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_567cuGraphExecDestroy = {"cuGraphExecDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_567cuGraphExecDestroy, METH_O, __pyx_doc_4cuda_4cuda_566cuGraphExecDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_567cuGraphExecDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hGraphExec) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24818, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_566cuGraphExecDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)__pyx_v_hGraphExec));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_566cuGraphExecDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__811)
  __Pyx_RefNannySetupContext("cuGraphExecDestroy", 0);
  __Pyx_TraceCall("cuGraphExecDestroy", __pyx_f[0], 24818, 0, __PYX_ERR(0, 24818, __pyx_L1_error));

  /* "cuda/cuda.pyx":24846
 *     cuGraphLaunch
 *     """
 *     err = ccuda.cuGraphExecDestroy(hGraphExec._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphExecDestroy((__pyx_v_hGraphExec->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24846, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24847
 *     """
 *     err = ccuda.cuGraphExecDestroy(hGraphExec._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24818
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecDestroy(hGraphExec not None : CUgraphExec):             # <<<<<<<<<<<<<<
 *     """ Destroys an executable graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24850
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroy(hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Destroys a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_569cuGraphDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hGraph); /*proto*/
static char __pyx_doc_4cuda_4cuda_568cuGraphDestroy[] = "cuGraphDestroy(CUgraph hGraph: CUgraph)\n Destroys a graph.\n\n    Destroys the graph specified by `hGraph`, as well as all of its nodes.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        Graph to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuGraphCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_569cuGraphDestroy = {"cuGraphDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_569cuGraphDestroy, METH_O, __pyx_doc_4cuda_4cuda_568cuGraphDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_569cuGraphDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hGraph) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 24850, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_568cuGraphDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraph *)__pyx_v_hGraph));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_568cuGraphDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__812)
  __Pyx_RefNannySetupContext("cuGraphDestroy", 0);
  __Pyx_TraceCall("cuGraphDestroy", __pyx_f[0], 24850, 0, __PYX_ERR(0, 24850, __pyx_L1_error));

  /* "cuda/cuda.pyx":24874
 *     cuGraphCreate
 *     """
 *     err = ccuda.cuGraphDestroy(hGraph._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphDestroy((__pyx_v_hGraph->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24874, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24875
 *     """
 *     err = ccuda.cuGraphDestroy(hGraph._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24850
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroy(hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Destroys a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24878
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecUpdate(hGraphExec not None : CUgraphExec, hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Check whether an executable graph can be updated with a graph and perform the update if possible.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_571cuGraphExecUpdate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_570cuGraphExecUpdate[] = "cuGraphExecUpdate(CUgraphExec hGraphExec: CUgraphExec, CUgraph hGraph: CUgraph)\n Check whether an executable graph can be updated with a graph and perform the update if possible.\n\n    Updates the node parameters in the instantiated graph specified by\n    `hGraphExec` with the node parameters in a topologically identical\n    graph specified by `hGraph`.\n\n    Limitations:\n\n    Kernel nodes: The owning context of the function cannot change. A node\n    whose function originally did not use CUDA dynamic parallelism cannot\n    be updated to a function which uses CDP   Memset and memcpy nodes: The\n    CUDA device(s) to which the operand(s) was allocated/mapped cannot\n    change. The source/destination memory must be allocated from the same\n    contexts as the original source/destination memory. Only 1D memsets can\n    be changed.   Additional memcpy node restrictions: Changing either the\n    source or destination memory type(i.e. CU_MEMORYTYPE_DEVICE,\n    CU_MEMORYTYPE_ARRAY, etc.) is not supported.   External semaphore wait\n    nodes and record nodes: Changing the number of semaphores is not\n    supported.\n\n    Note: The API may add further restrictions in future releases. The\n    return code should always be checked.\n\n    cuGraphExecUpdate sets `updateResult_out` to\n    CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED under the following\n    conditions:\n\n    The count of nodes directly in `hGraphExec` and `hGraph` differ, in\n    which case `hErrorNode_out` is NULL. A node is deleted in `hGraph` but\n    not not its pair from `hGraphExec`, in which case `hErrorNode_out` is\n    NULL. A node is deleted in `hGraphExec` but not its pair from `hGraph`,\n    in which case `hErrorNode_out` is the pairless node from `hGraph`. The\n    dependent nodes of a pair differ, in which case `hErrorNode_out` is the\n    node from `hGraph`.\n\n    cuGraphExecUpdate sets `updateResult_out` to:\n    CU_GRAPH_EXEC_UPDATE_ERROR if passed an invalid value.\n    CU_GRAPH_""EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED if the graph topology\n    changed CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED if the type of a\n    node changed, in which case `hErrorNode_out` is set to the node from\n    `hGraph`. CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE if the\n    function changed in an unsupported way(see note above), in which case\n    `hErrorNode_out` is set to the node from `hGraph`\n    CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED if any parameters to a\n    node changed in a way that is not supported, in which case\n    `hErrorNode_out` is set to the node from `hGraph`.\n    CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED if something about a node is\n    unsupported, like the node's type or configuration, in which case\n    `hErrorNode_out` is set to the node from `hGraph`\n\n    If `updateResult_out` isn't set in one of the situations described\n    above, the update check passes and cuGraphExecUpdate updates\n    `hGraphExec` to match the contents of `hGraph`. If an error happens\n    during the update, `updateResult_out` will be set to\n    CU_GRAPH_EXEC_UPDATE_ERROR; otherwise, `updateResult_out` is set to\n    CU_GRAPH_EXEC_UPDATE_SUCCESS.\n\n    cuGraphExecUpdate returns CUDA_SUCCESS when the updated was performed\n    successfully. It returns CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE if the\n    graph update was not performed because it included changes which\n    violated constraints specific to instantiated graph update.\n\n    Parameters\n    ----------\n    hGraphExec : CUgraphExec\n        The instantiated graph to be updated\n    hGraph : CUgraph\n        The graph containing the updated parameters\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE\n    hErrorNode_out : CUgraphNode\n        The node which caused the permissibility check to forbid the\n        update, if any\n    updateResult_out : CUgraphExecUpdateResult\n        Whether the graph update was permitted. If was ""forbidden, the\n        reason why\n\n    See Also\n    --------\n    cuGraphInstantiate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_571cuGraphExecUpdate = {"cuGraphExecUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_571cuGraphExecUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_570cuGraphExecUpdate};
static PyObject *__pyx_pw_4cuda_4cuda_571cuGraphExecUpdate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphExecUpdate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraphExec,&__pyx_n_s_hGraph,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraphExec)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphExecUpdate", 1, 2, 2, 1); __PYX_ERR(0, 24878, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphExecUpdate") < 0)) __PYX_ERR(0, 24878, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hGraphExec = ((struct __pyx_obj_4cuda_4cuda_CUgraphExec *)values[0]);
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphExecUpdate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24878, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraphExec), __pyx_ptype_4cuda_4cuda_CUgraphExec, 0, "hGraphExec", 0))) __PYX_ERR(0, 24878, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 24878, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_570cuGraphExecUpdate(__pyx_self, __pyx_v_hGraphExec, __pyx_v_hGraph);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_570cuGraphExecUpdate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphExec *__pyx_v_hGraphExec, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hErrorNode_out = 0;
  __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult __pyx_v_updateResult_out;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__813)
  __Pyx_RefNannySetupContext("cuGraphExecUpdate", 0);
  __Pyx_TraceCall("cuGraphExecUpdate", __pyx_f[0], 24878, 0, __PYX_ERR(0, 24878, __pyx_L1_error));

  /* "cuda/cuda.pyx":24964
 *     cuGraphInstantiate
 *     """
 *     cdef CUgraphNode hErrorNode_out = CUgraphNode()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphExecUpdateResult updateResult_out
 *     err = ccuda.cuGraphExecUpdate(hGraphExec._ptr[0], hGraph._ptr[0], hErrorNode_out._ptr, &updateResult_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hErrorNode_out = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24966
 *     cdef CUgraphNode hErrorNode_out = CUgraphNode()
 *     cdef ccuda.CUgraphExecUpdateResult updateResult_out
 *     err = ccuda.cuGraphExecUpdate(hGraphExec._ptr[0], hGraph._ptr[0], hErrorNode_out._ptr, &updateResult_out)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), hErrorNode_out, CUgraphExecUpdateResult(updateResult_out))
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphExecUpdate((__pyx_v_hGraphExec->_ptr[0]), (__pyx_v_hGraph->_ptr[0]), __pyx_v_hErrorNode_out->_ptr, (&__pyx_v_updateResult_out)); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24966, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":24967
 *     cdef ccuda.CUgraphExecUpdateResult updateResult_out
 *     err = ccuda.cuGraphExecUpdate(hGraphExec._ptr[0], hGraph._ptr[0], hErrorNode_out._ptr, &updateResult_out)
 *     return (CUresult(err), hErrorNode_out, CUgraphExecUpdateResult(updateResult_out))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUgraphExecUpdateResult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_v_updateResult_out); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_hErrorNode_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_hErrorNode_out));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_hErrorNode_out));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24878
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecUpdate(hGraphExec not None : CUgraphExec, hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Check whether an executable graph can be updated with a graph and perform the update if possible.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphExecUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_hErrorNode_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24970
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeCopyAttributes(dst not None : CUgraphNode, src not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source node to destination node.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_573cuGraphKernelNodeCopyAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_572cuGraphKernelNodeCopyAttributes[] = "cuGraphKernelNodeCopyAttributes(CUgraphNode dst: CUgraphNode, CUgraphNode src: CUgraphNode)\n Copies attributes from source node to destination node.\n\n    Copies attributes from source node `src` to destination node `dst`.\n    Both node must have the same context.\n\n    Parameters\n    ----------\n    dst : CUgraphNode\n        Destination node\n    src : CUgraphNode\n        Source node For list of attributes see CUkernelNodeAttrID\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_573cuGraphKernelNodeCopyAttributes = {"cuGraphKernelNodeCopyAttributes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_573cuGraphKernelNodeCopyAttributes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_572cuGraphKernelNodeCopyAttributes};
static PyObject *__pyx_pw_4cuda_4cuda_573cuGraphKernelNodeCopyAttributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_dst = 0;
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_src = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphKernelNodeCopyAttributes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dst_2,&__pyx_n_s_src,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dst_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_src)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeCopyAttributes", 1, 2, 2, 1); __PYX_ERR(0, 24970, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphKernelNodeCopyAttributes") < 0)) __PYX_ERR(0, 24970, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dst = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_src = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeCopyAttributes", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24970, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeCopyAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "dst", 0))) __PYX_ERR(0, 24970, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "src", 0))) __PYX_ERR(0, 24970, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_572cuGraphKernelNodeCopyAttributes(__pyx_self, __pyx_v_dst, __pyx_v_src);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_572cuGraphKernelNodeCopyAttributes(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_dst, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_src) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__814)
  __Pyx_RefNannySetupContext("cuGraphKernelNodeCopyAttributes", 0);
  __Pyx_TraceCall("cuGraphKernelNodeCopyAttributes", __pyx_f[0], 24970, 0, __PYX_ERR(0, 24970, __pyx_L1_error));

  /* "cuda/cuda.pyx":24991
 *         None
 *     """
 *     err = ccuda.cuGraphKernelNodeCopyAttributes(dst._ptr[0], src._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphKernelNodeCopyAttributes((__pyx_v_dst->_ptr[0]), (__pyx_v_src->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 24991, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":24992
 *     """
 *     err = ccuda.cuGraphKernelNodeCopyAttributes(dst._ptr[0], src._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24970
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeCopyAttributes(dst not None : CUgraphNode, src not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source node to destination node.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeCopyAttributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":24995
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries node attribute.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_575cuGraphKernelNodeGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_574cuGraphKernelNodeGetAttribute[] = "cuGraphKernelNodeGetAttribute(CUgraphNode hNode: CUgraphNode, attr: CUkernelNodeAttrID)\n Queries node attribute.\n\n    Queries attribute `attr` from node `hNode` and stores it in\n    corresponding member of `value_out`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n\n    attr : CUkernelNodeAttrID\n\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    value_out : CUkernelNodeAttrValue\n\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_575cuGraphKernelNodeGetAttribute = {"cuGraphKernelNodeGetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_575cuGraphKernelNodeGetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_574cuGraphKernelNodeGetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_575cuGraphKernelNodeGetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  PyObject *__pyx_v_attr = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphKernelNodeGetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_attr,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeGetAttribute", 1, 2, 2, 1); __PYX_ERR(0, 24995, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphKernelNodeGetAttribute") < 0)) __PYX_ERR(0, 24995, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_attr = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeGetAttribute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24995, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 24995, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 24995, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_574cuGraphKernelNodeGetAttribute(__pyx_self, __pyx_v_hNode, __pyx_v_attr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_574cuGraphKernelNodeGetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, PyObject *__pyx_v_attr) {
  __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID __pyx_v_cattr;
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue *__pyx_v_value_out = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__815)
  __Pyx_RefNannySetupContext("cuGraphKernelNodeGetAttribute", 0);
  __Pyx_TraceCall("cuGraphKernelNodeGetAttribute", __pyx_f[0], 24995, 0, __PYX_ERR(0, 24995, __pyx_L1_error));

  /* "cuda/cuda.pyx":25017
 * 
 *     """
 *     cdef ccuda.CUkernelNodeAttrID cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef CUkernelNodeAttrValue value_out = CUkernelNodeAttrValue()
 *     err = ccuda.cuGraphKernelNodeGetAttribute(hNode._ptr[0], cattr, value_out._ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25017, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":25018
 *     """
 *     cdef ccuda.CUkernelNodeAttrID cattr = attr.value
 *     cdef CUkernelNodeAttrValue value_out = CUkernelNodeAttrValue()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphKernelNodeGetAttribute(hNode._ptr[0], cattr, value_out._ptr)
 *     return (CUresult(err), value_out)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_value_out = ((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25019
 *     cdef ccuda.CUkernelNodeAttrID cattr = attr.value
 *     cdef CUkernelNodeAttrValue value_out = CUkernelNodeAttrValue()
 *     err = ccuda.cuGraphKernelNodeGetAttribute(hNode._ptr[0], cattr, value_out._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), value_out)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuGraphKernelNodeGetAttribute((__pyx_v_hNode->_ptr[0]), __pyx_v_cattr, __pyx_v_value_out->__pyx_base._ptr); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25019, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":25020
 *     cdef CUkernelNodeAttrValue value_out = CUkernelNodeAttrValue()
 *     err = ccuda.cuGraphKernelNodeGetAttribute(hNode._ptr[0], cattr, value_out._ptr)
 *     return (CUresult(err), value_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_value_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_value_out));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_value_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":24995
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries node attribute.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeGetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_value_out);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25023
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID, value : CUkernelNodeAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets node attribute.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_577cuGraphKernelNodeSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_576cuGraphKernelNodeSetAttribute[] = "cuGraphKernelNodeSetAttribute(CUgraphNode hNode: CUgraphNode, attr: CUkernelNodeAttrID, CUkernelNodeAttrValue value: CUkernelNodeAttrValue)\n Sets node attribute.\n\n    Sets attribute `attr` on node `hNode` from corresponding attribute of\n    `value`.\n\n    Parameters\n    ----------\n    hNode : CUgraphNode\n\n    attr : CUkernelNodeAttrID\n\n    value : CUkernelNodeAttrValue\n\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_577cuGraphKernelNodeSetAttribute = {"cuGraphKernelNodeSetAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_577cuGraphKernelNodeSetAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_576cuGraphKernelNodeSetAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_577cuGraphKernelNodeSetAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode = 0;
  PyObject *__pyx_v_attr = 0;
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue *__pyx_v_value = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphKernelNodeSetAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hNode,&__pyx_n_s_attr,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hNode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeSetAttribute", 1, 3, 3, 1); __PYX_ERR(0, 25023, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeSetAttribute", 1, 3, 3, 2); __PYX_ERR(0, 25023, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphKernelNodeSetAttribute") < 0)) __PYX_ERR(0, 25023, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hNode = ((struct __pyx_obj_4cuda_4cuda_CUgraphNode *)values[0]);
    __pyx_v_attr = values[1];
    __pyx_v_value = ((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphKernelNodeSetAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25023, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hNode), __pyx_ptype_4cuda_4cuda_CUgraphNode, 0, "hNode", 0))) __PYX_ERR(0, 25023, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attr"); __PYX_ERR(0, 25023, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), __pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue, 1, "value", 0))) __PYX_ERR(0, 25023, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_576cuGraphKernelNodeSetAttribute(__pyx_self, __pyx_v_hNode, __pyx_v_attr, __pyx_v_value);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_576cuGraphKernelNodeSetAttribute(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphNode *__pyx_v_hNode, PyObject *__pyx_v_attr, struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue *__pyx_v_value) {
  __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID __pyx_v_cattr;
  __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue *__pyx_v_cvalue_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID __pyx_t_2;
  union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union *__pyx_t_3;
  int __pyx_t_4;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__816)
  __Pyx_RefNannySetupContext("cuGraphKernelNodeSetAttribute", 0);
  __Pyx_TraceCall("cuGraphKernelNodeSetAttribute", __pyx_f[0], 25023, 0, __PYX_ERR(0, 25023, __pyx_L1_error));

  /* "cuda/cuda.pyx":25047
 *         None
 *     """
 *     cdef ccuda.CUkernelNodeAttrID cattr = attr.value             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUkernelNodeAttrValue* cvalue_ptr = value._ptr if value != None else NULL
 *     err = ccuda.cuGraphKernelNodeSetAttribute(hNode._ptr[0], cattr, cvalue_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25047, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattr = __pyx_t_2;

  /* "cuda/cuda.pyx":25048
 *     """
 *     cdef ccuda.CUkernelNodeAttrID cattr = attr.value
 *     cdef ccuda.CUkernelNodeAttrValue* cvalue_ptr = value._ptr if value != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphKernelNodeSetAttribute(hNode._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_value), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25048, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 25048, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
    __pyx_t_3 = __pyx_v_value->__pyx_base._ptr;
  } else {
    __pyx_t_3 = NULL;
  }
  __pyx_v_cvalue_ptr = __pyx_t_3;

  /* "cuda/cuda.pyx":25049
 *     cdef ccuda.CUkernelNodeAttrID cattr = attr.value
 *     cdef ccuda.CUkernelNodeAttrValue* cvalue_ptr = value._ptr if value != None else NULL
 *     err = ccuda.cuGraphKernelNodeSetAttribute(hNode._ptr[0], cattr, cvalue_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_5 = __pyx_f_4cuda_5ccuda_cuGraphKernelNodeSetAttribute((__pyx_v_hNode->_ptr[0]), __pyx_v_cattr, __pyx_v_cvalue_ptr); if (unlikely(__pyx_t_5 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25049, __pyx_L1_error)
  __pyx_v_err = __pyx_t_5;

  /* "cuda/cuda.pyx":25050
 *     cdef ccuda.CUkernelNodeAttrValue* cvalue_ptr = value._ptr if value != None else NULL
 *     err = ccuda.cuGraphKernelNodeSetAttribute(hNode._ptr[0], cattr, cvalue_ptr)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25023
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID, value : CUkernelNodeAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets node attribute.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cuda.cuda.cuGraphKernelNodeSetAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25053
 * 
 * @cython.embedsignature(True)
 * def cuGraphDebugDotPrint(hGraph not None : CUgraph, char* path, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a DOT file describing graph structure.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_579cuGraphDebugDotPrint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_578cuGraphDebugDotPrint[] = "cuGraphDebugDotPrint(CUgraph hGraph: CUgraph, char *path, unsigned int flags)\n Write a DOT file describing graph structure.\n\n    Using the provided `hGraph`, write to `path` a DOT formatted\n    description of the graph. By default this includes the graph topology,\n    node types, node id, kernel names and memcpy direction. `flags` can be\n    specified to write more detailed information about each node type such\n    as parameter values, kernel attributes, node and function handles.\n\n    Parameters\n    ----------\n    hGraph : CUgraph\n        The graph to create a DOT file from\n    path : bytes\n        The path to write the DOT file to\n    flags : unsigned int\n        Flags from CUgraphDebugDot_flags for specifying which additional\n        node information to write\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_OPERATING_SYSTEM\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_579cuGraphDebugDotPrint = {"cuGraphDebugDotPrint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_579cuGraphDebugDotPrint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_578cuGraphDebugDotPrint};
static PyObject *__pyx_pw_4cuda_4cuda_579cuGraphDebugDotPrint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph = 0;
  char *__pyx_v_path;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphDebugDotPrint (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hGraph,&__pyx_n_s_path,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hGraph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphDebugDotPrint", 1, 3, 3, 1); __PYX_ERR(0, 25053, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphDebugDotPrint", 1, 3, 3, 2); __PYX_ERR(0, 25053, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphDebugDotPrint") < 0)) __PYX_ERR(0, 25053, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hGraph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_path = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_path) && PyErr_Occurred())) __PYX_ERR(0, 25053, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25053, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphDebugDotPrint", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25053, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphDebugDotPrint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hGraph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "hGraph", 0))) __PYX_ERR(0, 25053, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_578cuGraphDebugDotPrint(__pyx_self, __pyx_v_hGraph, __pyx_v_path, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_578cuGraphDebugDotPrint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_hGraph, char *__pyx_v_path, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__817)
  __Pyx_RefNannySetupContext("cuGraphDebugDotPrint", 0);
  __Pyx_TraceCall("cuGraphDebugDotPrint", __pyx_f[0], 25053, 0, __PYX_ERR(0, 25053, __pyx_L1_error));

  /* "cuda/cuda.pyx":25081
 *         None
 *     """
 *     err = ccuda.cuGraphDebugDotPrint(hGraph._ptr[0], path, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphDebugDotPrint((__pyx_v_hGraph->_ptr[0]), __pyx_v_path, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25081, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25082
 *     """
 *     err = ccuda.cuGraphDebugDotPrint(hGraph._ptr[0], path, flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25053
 * 
 * @cython.embedsignature(True)
 * def cuGraphDebugDotPrint(hGraph not None : CUgraph, char* path, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a DOT file describing graph structure.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphDebugDotPrint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25085
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectCreate(ptr, destroy not None : CUhostFn, unsigned int initialRefcount, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Create a user object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_581cuUserObjectCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_580cuUserObjectCreate[] = "cuUserObjectCreate(ptr, CUhostFn destroy: CUhostFn, unsigned int initialRefcount, unsigned int flags)\n Create a user object.\n\n    Create a user object with the specified destructor callback and initial\n    reference count. The initial references are owned by the caller.\n\n    Destructor callbacks cannot make CUDA API calls and should avoid\n    blocking behavior, as they are executed by a shared internal thread.\n    Another thread may be signaled to perform such actions, if it does not\n    block forward progress of tasks scheduled through CUDA.\n\n    See CUDA User Objects in the CUDA C++ Programming Guide for more\n    information on user objects.\n\n    Parameters\n    ----------\n    ptr : Any\n        The pointer to pass to the destroy function\n    destroy : CUhostFn\n        Callback to free the user object when it is no longer in use\n    initialRefcount : unsigned int\n        The initial refcount to create the object with, typically 1. The\n        initial references are owned by the calling thread.\n    flags : unsigned int\n        Currently it is required to pass CU_USER_OBJECT_NO_DESTRUCTOR_SYNC,\n        which is the only defined flag. This indicates that the destroy\n        callback cannot be waited on by any CUDA API. Users requiring\n        synchronization of the callback should signal its completion\n        manually.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    object_out : CUuserObject\n        Location to return the user object handle\n\n    See Also\n    --------\n    cuUserObjectRetain\n    cuUserObjectRelease\n    cuGraphRetainUserObject\n    cuGraphReleaseUserObject\n    cuGraphCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_581cuUserObjectCreate = {"cuUserObjectCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_581cuUserObjectCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_580cuUserObjectCreate};
static PyObject *__pyx_pw_4cuda_4cuda_581cuUserObjectCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ptr = 0;
  struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_destroy = 0;
  unsigned int __pyx_v_initialRefcount;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuUserObjectCreate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr_2,&__pyx_n_s_destroy,&__pyx_n_s_initialRefcount,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_destroy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuUserObjectCreate", 1, 4, 4, 1); __PYX_ERR(0, 25085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_initialRefcount)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuUserObjectCreate", 1, 4, 4, 2); __PYX_ERR(0, 25085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuUserObjectCreate", 1, 4, 4, 3); __PYX_ERR(0, 25085, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuUserObjectCreate") < 0)) __PYX_ERR(0, 25085, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_ptr = values[0];
    __pyx_v_destroy = ((struct __pyx_obj_4cuda_4cuda_CUhostFn *)values[1]);
    __pyx_v_initialRefcount = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_initialRefcount == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25085, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25085, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuUserObjectCreate", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25085, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuUserObjectCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_destroy), __pyx_ptype_4cuda_4cuda_CUhostFn, 0, "destroy", 0))) __PYX_ERR(0, 25085, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_580cuUserObjectCreate(__pyx_self, __pyx_v_ptr, __pyx_v_destroy, __pyx_v_initialRefcount, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_580cuUserObjectCreate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ptr, struct __pyx_obj_4cuda_4cuda_CUhostFn *__pyx_v_destroy, unsigned int __pyx_v_initialRefcount, unsigned int __pyx_v_flags) {
  struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object_out = 0;
  PyObject *__pyx_v_cptr = NULL;
  void *__pyx_v_cptr_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_4cuda_void_ptr __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__818)
  __Pyx_RefNannySetupContext("cuUserObjectCreate", 0);
  __Pyx_TraceCall("cuUserObjectCreate", __pyx_f[0], 25085, 0, __PYX_ERR(0, 25085, __pyx_L1_error));

  /* "cuda/cuda.pyx":25131
 *     cuGraphCreate
 *     """
 *     cdef CUuserObject object_out = CUuserObject()             # <<<<<<<<<<<<<<
 *     cptr = utils.HelperInputVoidPtr(ptr)
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUuserObject)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_object_out = ((struct __pyx_obj_4cuda_4cuda_CUuserObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25132
 *     """
 *     cdef CUuserObject object_out = CUuserObject()
 *     cptr = utils.HelperInputVoidPtr(ptr)             # <<<<<<<<<<<<<<
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 *     err = ccuda.cuUserObjectCreate(object_out._ptr, cptr_ptr, destroy._ptr[0], initialRefcount, flags)
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr), __pyx_v_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cptr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25133
 *     cdef CUuserObject object_out = CUuserObject()
 *     cptr = utils.HelperInputVoidPtr(ptr)
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr             # <<<<<<<<<<<<<<
 *     err = ccuda.cuUserObjectCreate(object_out._ptr, cptr_ptr, destroy._ptr[0], initialRefcount, flags)
 *     return (CUresult(err), object_out)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cptr, __pyx_n_s_cptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_2 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 25133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cptr_ptr = ((void *)((__pyx_t_4cuda_4cuda_void_ptr)__pyx_t_2));

  /* "cuda/cuda.pyx":25134
 *     cptr = utils.HelperInputVoidPtr(ptr)
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 *     err = ccuda.cuUserObjectCreate(object_out._ptr, cptr_ptr, destroy._ptr[0], initialRefcount, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), object_out)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuUserObjectCreate(__pyx_v_object_out->_ptr, __pyx_v_cptr_ptr, (__pyx_v_destroy->_ptr[0]), __pyx_v_initialRefcount, __pyx_v_flags); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25134, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":25135
 *     cdef void* cptr_ptr = <void*><void_ptr>cptr.cptr
 *     err = ccuda.cuUserObjectCreate(object_out._ptr, cptr_ptr, destroy._ptr[0], initialRefcount, flags)
 *     return (CUresult(err), object_out)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_object_out));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_object_out));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_object_out));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25085
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectCreate(ptr, destroy not None : CUhostFn, unsigned int initialRefcount, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Create a user object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuUserObjectCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_object_out);
  __Pyx_XDECREF(__pyx_v_cptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25138
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRetain(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_583cuUserObjectRetain(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_582cuUserObjectRetain[] = "cuUserObjectRetain(CUuserObject object: CUuserObject, unsigned int count)\n Retain a reference to a user object.\n\n    Retains new references to a user object. The new references are owned\n    by the caller.\n\n    See CUDA User Objects in the CUDA C++ Programming Guide for more\n    information on user objects.\n\n    Parameters\n    ----------\n    object : CUuserObject\n        The object to retain\n    count : unsigned int\n        The number of references to retain, typically 1. Must be nonzero\n        and not larger than INT_MAX.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuUserObjectCreate\n    cuUserObjectRelease\n    cuGraphRetainUserObject\n    cuGraphReleaseUserObject\n    cuGraphCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_583cuUserObjectRetain = {"cuUserObjectRetain", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_583cuUserObjectRetain, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_582cuUserObjectRetain};
static PyObject *__pyx_pw_4cuda_4cuda_583cuUserObjectRetain(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object = 0;
  unsigned int __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuUserObjectRetain (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object,&__pyx_n_s_count,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_object)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuUserObjectRetain", 1, 2, 2, 1); __PYX_ERR(0, 25138, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuUserObjectRetain") < 0)) __PYX_ERR(0, 25138, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_object = ((struct __pyx_obj_4cuda_4cuda_CUuserObject *)values[0]);
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25138, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuUserObjectRetain", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25138, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuUserObjectRetain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_object), __pyx_ptype_4cuda_4cuda_CUuserObject, 0, "object", 0))) __PYX_ERR(0, 25138, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_582cuUserObjectRetain(__pyx_self, __pyx_v_object, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_582cuUserObjectRetain(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__819)
  __Pyx_RefNannySetupContext("cuUserObjectRetain", 0);
  __Pyx_TraceCall("cuUserObjectRetain", __pyx_f[0], 25138, 0, __PYX_ERR(0, 25138, __pyx_L1_error));

  /* "cuda/cuda.pyx":25171
 *     cuGraphCreate
 *     """
 *     err = ccuda.cuUserObjectRetain(object._ptr[0], count)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuUserObjectRetain((__pyx_v_object->_ptr[0]), __pyx_v_count); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25171, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25172
 *     """
 *     err = ccuda.cuUserObjectRetain(object._ptr[0], count)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25138
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRetain(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuUserObjectRetain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25175
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRelease(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a reference to a user object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_585cuUserObjectRelease(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_584cuUserObjectRelease[] = "cuUserObjectRelease(CUuserObject object: CUuserObject, unsigned int count)\n Release a reference to a user object.\n\n    Releases user object references owned by the caller. The object's\n    destructor is invoked if the reference count reaches zero.\n\n    It is undefined behavior to release references not owned by the caller,\n    or to use a user object handle after all references are released.\n\n    See CUDA User Objects in the CUDA C++ Programming Guide for more\n    information on user objects.\n\n    Parameters\n    ----------\n    object : CUuserObject\n        The object to release\n    count : unsigned int\n        The number of references to release, typically 1. Must be nonzero\n        and not larger than INT_MAX.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuUserObjectCreate\n    cuUserObjectRetain\n    cuGraphRetainUserObject\n    cuGraphReleaseUserObject\n    cuGraphCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_585cuUserObjectRelease = {"cuUserObjectRelease", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_585cuUserObjectRelease, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_584cuUserObjectRelease};
static PyObject *__pyx_pw_4cuda_4cuda_585cuUserObjectRelease(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object = 0;
  unsigned int __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuUserObjectRelease (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object,&__pyx_n_s_count,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_object)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuUserObjectRelease", 1, 2, 2, 1); __PYX_ERR(0, 25175, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuUserObjectRelease") < 0)) __PYX_ERR(0, 25175, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_object = ((struct __pyx_obj_4cuda_4cuda_CUuserObject *)values[0]);
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25175, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuUserObjectRelease", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25175, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuUserObjectRelease", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_object), __pyx_ptype_4cuda_4cuda_CUuserObject, 0, "object", 0))) __PYX_ERR(0, 25175, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_584cuUserObjectRelease(__pyx_self, __pyx_v_object, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_584cuUserObjectRelease(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__820)
  __Pyx_RefNannySetupContext("cuUserObjectRelease", 0);
  __Pyx_TraceCall("cuUserObjectRelease", __pyx_f[0], 25175, 0, __PYX_ERR(0, 25175, __pyx_L1_error));

  /* "cuda/cuda.pyx":25211
 *     cuGraphCreate
 *     """
 *     err = ccuda.cuUserObjectRelease(object._ptr[0], count)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuUserObjectRelease((__pyx_v_object->_ptr[0]), __pyx_v_count); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25211, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25212
 *     """
 *     err = ccuda.cuUserObjectRelease(object._ptr[0], count)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25175
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRelease(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a reference to a user object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuUserObjectRelease", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25215
 * 
 * @cython.embedsignature(True)
 * def cuGraphRetainUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object from a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_587cuGraphRetainUserObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_586cuGraphRetainUserObject[] = "cuGraphRetainUserObject(CUgraph graph: CUgraph, CUuserObject object: CUuserObject, unsigned int count, unsigned int flags)\n Retain a reference to a user object from a graph.\n\n    Creates or moves user object references that will be owned by a CUDA\n    graph.\n\n    See CUDA User Objects in the CUDA C++ Programming Guide for more\n    information on user objects.\n\n    Parameters\n    ----------\n    graph : CUgraph\n        The graph to associate the reference with\n    object : CUuserObject\n        The user object to retain a reference for\n    count : unsigned int\n        The number of references to add to the graph, typically 1. Must be\n        nonzero and not larger than INT_MAX.\n    flags : unsigned int\n        The optional flag CU_GRAPH_USER_OBJECT_MOVE transfers references\n        from the calling thread, rather than create new references. Pass 0\n        to create new references.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuUserObjectCreate\n    cuUserObjectRetain\n    cuUserObjectRelease\n    cuGraphReleaseUserObject\n    cuGraphCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_587cuGraphRetainUserObject = {"cuGraphRetainUserObject", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_587cuGraphRetainUserObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_586cuGraphRetainUserObject};
static PyObject *__pyx_pw_4cuda_4cuda_587cuGraphRetainUserObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph = 0;
  struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object = 0;
  unsigned int __pyx_v_count;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphRetainUserObject (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_graph,&__pyx_n_s_object,&__pyx_n_s_count,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_graph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_object)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphRetainUserObject", 1, 4, 4, 1); __PYX_ERR(0, 25215, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphRetainUserObject", 1, 4, 4, 2); __PYX_ERR(0, 25215, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphRetainUserObject", 1, 4, 4, 3); __PYX_ERR(0, 25215, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphRetainUserObject") < 0)) __PYX_ERR(0, 25215, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_graph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_object = ((struct __pyx_obj_4cuda_4cuda_CUuserObject *)values[1]);
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25215, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25215, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphRetainUserObject", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25215, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphRetainUserObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_graph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "graph", 0))) __PYX_ERR(0, 25215, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_object), __pyx_ptype_4cuda_4cuda_CUuserObject, 0, "object", 0))) __PYX_ERR(0, 25215, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_586cuGraphRetainUserObject(__pyx_self, __pyx_v_graph, __pyx_v_object, __pyx_v_count, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_586cuGraphRetainUserObject(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__821)
  __Pyx_RefNannySetupContext("cuGraphRetainUserObject", 0);
  __Pyx_TraceCall("cuGraphRetainUserObject", __pyx_f[0], 25215, 0, __PYX_ERR(0, 25215, __pyx_L1_error));

  /* "cuda/cuda.pyx":25254
 *     cuGraphCreate
 *     """
 *     err = ccuda.cuGraphRetainUserObject(graph._ptr[0], object._ptr[0], count, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphRetainUserObject((__pyx_v_graph->_ptr[0]), (__pyx_v_object->_ptr[0]), __pyx_v_count, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25254, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25255
 *     """
 *     err = ccuda.cuGraphRetainUserObject(graph._ptr[0], object._ptr[0], count, flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25215
 * 
 * @cython.embedsignature(True)
 * def cuGraphRetainUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object from a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphRetainUserObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25258
 * 
 * @cython.embedsignature(True)
 * def cuGraphReleaseUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a user object reference from a graph.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_589cuGraphReleaseUserObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_588cuGraphReleaseUserObject[] = "cuGraphReleaseUserObject(CUgraph graph: CUgraph, CUuserObject object: CUuserObject, unsigned int count)\n Release a user object reference from a graph.\n\n    Releases user object references owned by a graph.\n\n    See CUDA User Objects in the CUDA C++ Programming Guide for more\n    information on user objects.\n\n    Parameters\n    ----------\n    graph : CUgraph\n        The graph that will release the reference\n    object : CUuserObject\n        The user object to release a reference for\n    count : unsigned int\n        The number of references to release, typically 1. Must be nonzero\n        and not larger than INT_MAX.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuUserObjectCreate\n    cuUserObjectRetain\n    cuUserObjectRelease\n    cuGraphRetainUserObject\n    cuGraphCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_589cuGraphReleaseUserObject = {"cuGraphReleaseUserObject", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_589cuGraphReleaseUserObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_588cuGraphReleaseUserObject};
static PyObject *__pyx_pw_4cuda_4cuda_589cuGraphReleaseUserObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph = 0;
  struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object = 0;
  unsigned int __pyx_v_count;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphReleaseUserObject (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_graph,&__pyx_n_s_object,&__pyx_n_s_count,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_graph)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_object)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphReleaseUserObject", 1, 3, 3, 1); __PYX_ERR(0, 25258, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphReleaseUserObject", 1, 3, 3, 2); __PYX_ERR(0, 25258, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphReleaseUserObject") < 0)) __PYX_ERR(0, 25258, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_graph = ((struct __pyx_obj_4cuda_4cuda_CUgraph *)values[0]);
    __pyx_v_object = ((struct __pyx_obj_4cuda_4cuda_CUuserObject *)values[1]);
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25258, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphReleaseUserObject", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25258, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphReleaseUserObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_graph), __pyx_ptype_4cuda_4cuda_CUgraph, 0, "graph", 0))) __PYX_ERR(0, 25258, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_object), __pyx_ptype_4cuda_4cuda_CUuserObject, 0, "object", 0))) __PYX_ERR(0, 25258, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_588cuGraphReleaseUserObject(__pyx_self, __pyx_v_graph, __pyx_v_object, __pyx_v_count);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_588cuGraphReleaseUserObject(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraph *__pyx_v_graph, struct __pyx_obj_4cuda_4cuda_CUuserObject *__pyx_v_object, unsigned int __pyx_v_count) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__822)
  __Pyx_RefNannySetupContext("cuGraphReleaseUserObject", 0);
  __Pyx_TraceCall("cuGraphReleaseUserObject", __pyx_f[0], 25258, 0, __PYX_ERR(0, 25258, __pyx_L1_error));

  /* "cuda/cuda.pyx":25292
 *     cuGraphCreate
 *     """
 *     err = ccuda.cuGraphReleaseUserObject(graph._ptr[0], object._ptr[0], count)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphReleaseUserObject((__pyx_v_graph->_ptr[0]), (__pyx_v_object->_ptr[0]), __pyx_v_count); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25292, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25293
 *     """
 *     err = ccuda.cuGraphReleaseUserObject(graph._ptr[0], object._ptr[0], count)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25258
 * 
 * @cython.embedsignature(True)
 * def cuGraphReleaseUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a user object reference from a graph.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphReleaseUserObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25296
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessor(func not None : CUfunction, int blockSize, size_t dynamicSMemSize):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_591cuOccupancyMaxActiveBlocksPerMultiprocessor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_590cuOccupancyMaxActiveBlocksPerMultiprocessor[] = "cuOccupancyMaxActiveBlocksPerMultiprocessor(CUfunction func: CUfunction, int blockSize, size_t dynamicSMemSize)\n Returns occupancy of a function.\n\n    Returns in `*numBlocks` the number of the maximum active blocks per\n    streaming multiprocessor.\n\n    Parameters\n    ----------\n    func : CUfunction\n        Kernel for which occupancy is calculated\n    blockSize : int\n        Block size the kernel is intended to be launched with\n    dynamicSMemSize : size_t\n        Per-block dynamic shared memory usage intended, in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNKNOWN\n    numBlocks : int\n        Returned occupancy\n\n    See Also\n    --------\n    cudaOccupancyMaxActiveBlocksPerMultiprocessor\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_591cuOccupancyMaxActiveBlocksPerMultiprocessor = {"cuOccupancyMaxActiveBlocksPerMultiprocessor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_591cuOccupancyMaxActiveBlocksPerMultiprocessor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_590cuOccupancyMaxActiveBlocksPerMultiprocessor};
static PyObject *__pyx_pw_4cuda_4cuda_591cuOccupancyMaxActiveBlocksPerMultiprocessor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func = 0;
  int __pyx_v_blockSize;
  size_t __pyx_v_dynamicSMemSize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuOccupancyMaxActiveBlocksPerMultiprocessor (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func_2,&__pyx_n_s_blockSize,&__pyx_n_s_dynamicSMemSize,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessor", 1, 3, 3, 1); __PYX_ERR(0, 25296, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dynamicSMemSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessor", 1, 3, 3, 2); __PYX_ERR(0, 25296, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuOccupancyMaxActiveBlocksPerMultiprocessor") < 0)) __PYX_ERR(0, 25296, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_blockSize = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_blockSize == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25296, __pyx_L3_error)
    __pyx_v_dynamicSMemSize = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_dynamicSMemSize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25296, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessor", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25296, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxActiveBlocksPerMultiprocessor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_func), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "func", 0))) __PYX_ERR(0, 25296, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_590cuOccupancyMaxActiveBlocksPerMultiprocessor(__pyx_self, __pyx_v_func, __pyx_v_blockSize, __pyx_v_dynamicSMemSize);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_590cuOccupancyMaxActiveBlocksPerMultiprocessor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, int __pyx_v_blockSize, size_t __pyx_v_dynamicSMemSize) {
  int __pyx_v_numBlocks;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__823)
  __Pyx_RefNannySetupContext("cuOccupancyMaxActiveBlocksPerMultiprocessor", 0);
  __Pyx_TraceCall("cuOccupancyMaxActiveBlocksPerMultiprocessor", __pyx_f[0], 25296, 0, __PYX_ERR(0, 25296, __pyx_L1_error));

  /* "cuda/cuda.pyx":25327
 *     cudaOccupancyMaxActiveBlocksPerMultiprocessor
 *     """
 *     cdef int numBlocks = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuOccupancyMaxActiveBlocksPerMultiprocessor(&numBlocks, func._ptr[0], blockSize, dynamicSMemSize)
 *     return (CUresult(err), numBlocks)
 */
  __pyx_v_numBlocks = 0;

  /* "cuda/cuda.pyx":25328
 *     """
 *     cdef int numBlocks = 0
 *     err = ccuda.cuOccupancyMaxActiveBlocksPerMultiprocessor(&numBlocks, func._ptr[0], blockSize, dynamicSMemSize)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), numBlocks)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuOccupancyMaxActiveBlocksPerMultiprocessor((&__pyx_v_numBlocks), (__pyx_v_func->_ptr[0]), __pyx_v_blockSize, __pyx_v_dynamicSMemSize); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25328, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25329
 *     cdef int numBlocks = 0
 *     err = ccuda.cuOccupancyMaxActiveBlocksPerMultiprocessor(&numBlocks, func._ptr[0], blockSize, dynamicSMemSize)
 *     return (CUresult(err), numBlocks)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_numBlocks); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25296
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessor(func not None : CUfunction, int blockSize, size_t dynamicSMemSize):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxActiveBlocksPerMultiprocessor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25332
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(func not None : CUfunction, int blockSize, size_t dynamicSMemSize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_593cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_592cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags[] = "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(CUfunction func: CUfunction, int blockSize, size_t dynamicSMemSize, unsigned int flags)\n Returns occupancy of a function.\n\n    Returns in `*numBlocks` the number of the maximum active blocks per\n    streaming multiprocessor.\n\n    The `Flags` parameter controls how special cases are handled. The valid\n    flags are:\n\n    CU_OCCUPANCY_DEFAULT, which maintains the default behavior as\n    cuOccupancyMaxActiveBlocksPerMultiprocessor;\n    CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE, which suppresses the default\n    behavior on platform where global caching affects occupancy. On such\n    platforms, if caching is enabled, but per-block SM resource usage would\n    result in zero occupancy, the occupancy calculator will calculate the\n    occupancy as if caching is disabled. Setting\n    CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE makes the occupancy calculator to\n    return 0 in such cases. More information can be found about this\n    feature in the \"Unified L1/Texture Cache\" section of the Maxwell tuning\n    guide.\n\n    Parameters\n    ----------\n    func : CUfunction\n        Kernel for which occupancy is calculated\n    blockSize : int\n        Block size the kernel is intended to be launched with\n    dynamicSMemSize : size_t\n        Per-block dynamic shared memory usage intended, in bytes\n    flags : unsigned int\n        Requested behavior for the occupancy calculator\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNKNOWN\n    numBlocks : int\n        Returned occupancy\n\n    See Also\n    --------\n    cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_593cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = {"cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_593cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_592cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags};
static PyObject *__pyx_pw_4cuda_4cuda_593cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func = 0;
  int __pyx_v_blockSize;
  size_t __pyx_v_dynamicSMemSize;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func_2,&__pyx_n_s_blockSize,&__pyx_n_s_dynamicSMemSize,&__pyx_n_s_flags_2,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", 1, 4, 4, 1); __PYX_ERR(0, 25332, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dynamicSMemSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", 1, 4, 4, 2); __PYX_ERR(0, 25332, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", 1, 4, 4, 3); __PYX_ERR(0, 25332, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags") < 0)) __PYX_ERR(0, 25332, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_blockSize = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_blockSize == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25332, __pyx_L3_error)
    __pyx_v_dynamicSMemSize = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_dynamicSMemSize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25332, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25332, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25332, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_func), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "func", 0))) __PYX_ERR(0, 25332, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_592cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(__pyx_self, __pyx_v_func, __pyx_v_blockSize, __pyx_v_dynamicSMemSize, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_592cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, int __pyx_v_blockSize, size_t __pyx_v_dynamicSMemSize, unsigned int __pyx_v_flags) {
  int __pyx_v_numBlocks;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__824)
  __Pyx_RefNannySetupContext("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", 0);
  __Pyx_TraceCall("cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", __pyx_f[0], 25332, 0, __PYX_ERR(0, 25332, __pyx_L1_error));

  /* "cuda/cuda.pyx":25380
 *     cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
 *     """
 *     cdef int numBlocks = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&numBlocks, func._ptr[0], blockSize, dynamicSMemSize, flags)
 *     return (CUresult(err), numBlocks)
 */
  __pyx_v_numBlocks = 0;

  /* "cuda/cuda.pyx":25381
 *     """
 *     cdef int numBlocks = 0
 *     err = ccuda.cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&numBlocks, func._ptr[0], blockSize, dynamicSMemSize, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), numBlocks)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags((&__pyx_v_numBlocks), (__pyx_v_func->_ptr[0]), __pyx_v_blockSize, __pyx_v_dynamicSMemSize, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25381, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25382
 *     cdef int numBlocks = 0
 *     err = ccuda.cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&numBlocks, func._ptr[0], blockSize, dynamicSMemSize, flags)
 *     return (CUresult(err), numBlocks)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_numBlocks); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25332
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(func not None : CUfunction, int blockSize, size_t dynamicSMemSize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25385
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSize(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_595cuOccupancyMaxPotentialBlockSize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_594cuOccupancyMaxPotentialBlockSize[] = "cuOccupancyMaxPotentialBlockSize(CUfunction func: CUfunction, CUoccupancyB2DSize blockSizeToDynamicSMemSize: CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit)\n Suggest a launch configuration with reasonable occupancy.\n\n    Returns in `*blockSize` a reasonable block size that can achieve the\n    maximum occupancy (or, the maximum number of active warps with the\n    fewest blocks per multiprocessor), and in `*minGridSize` the minimum\n    grid size to achieve the maximum occupancy.\n\n    If `blockSizeLimit` is 0, the configurator will use the maximum block\n    size permitted by the device / function instead.\n\n    If per-block dynamic shared memory allocation is not needed, the user\n    should leave both `blockSizeToDynamicSMemSize` and `dynamicSMemSize` as\n    0.\n\n    If per-block dynamic shared memory allocation is needed, then if the\n    dynamic shared memory size is constant regardless of block size, the\n    size should be passed through `dynamicSMemSize`, and\n    `blockSizeToDynamicSMemSize` should be NULL.\n\n    Otherwise, if the per-block dynamic shared memory size varies with\n    different block sizes, the user needs to provide a unary function\n    through `blockSizeToDynamicSMemSize` that computes the dynamic shared\n    memory needed by `func` for any given block size. `dynamicSMemSize` is\n    ignored. An example signature is:\n\n    //Takeblocksize,returnsdynamicsharedmemoryneeded\n    size_tblockToSmem(intblockSize);\n\n    Parameters\n    ----------\n    func : CUfunction\n        Kernel for which launch configuration is calculated\n    blockSizeToDynamicSMemSize : CUoccupancyB2DSize\n        A function that calculates how much per-block dynamic shared memory\n        `func` uses based on the block size\n    dynamicSMemSize : size_t\n        Dynamic shared memory usage intended, in bytes\n    blockSizeLimit : int\n        The maximum block size `func` is designed to handle\n\n    Returns\n    -------\n    CUresult\n       "" CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNKNOWN\n    minGridSize : int\n        Returned minimum grid size needed to achieve the maximum occupancy\n    blockSize : int\n        Returned maximum block size that can achieve the maximum occupancy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_595cuOccupancyMaxPotentialBlockSize = {"cuOccupancyMaxPotentialBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_595cuOccupancyMaxPotentialBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_594cuOccupancyMaxPotentialBlockSize};
static PyObject *__pyx_pw_4cuda_4cuda_595cuOccupancyMaxPotentialBlockSize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func = 0;
  struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_blockSizeToDynamicSMemSize = 0;
  size_t __pyx_v_dynamicSMemSize;
  int __pyx_v_blockSizeLimit;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuOccupancyMaxPotentialBlockSize (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func_2,&__pyx_n_s_blockSizeToDynamicSMemSize,&__pyx_n_s_dynamicSMemSize,&__pyx_n_s_blockSizeLimit,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSizeToDynamicSMemSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSize", 1, 4, 4, 1); __PYX_ERR(0, 25385, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dynamicSMemSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSize", 1, 4, 4, 2); __PYX_ERR(0, 25385, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSizeLimit)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSize", 1, 4, 4, 3); __PYX_ERR(0, 25385, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuOccupancyMaxPotentialBlockSize") < 0)) __PYX_ERR(0, 25385, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_blockSizeToDynamicSMemSize = ((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)values[1]);
    __pyx_v_dynamicSMemSize = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_dynamicSMemSize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25385, __pyx_L3_error)
    __pyx_v_blockSizeLimit = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_blockSizeLimit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25385, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSize", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25385, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxPotentialBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_func), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "func", 0))) __PYX_ERR(0, 25385, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_blockSizeToDynamicSMemSize), __pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize, 0, "blockSizeToDynamicSMemSize", 0))) __PYX_ERR(0, 25385, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_594cuOccupancyMaxPotentialBlockSize(__pyx_self, __pyx_v_func, __pyx_v_blockSizeToDynamicSMemSize, __pyx_v_dynamicSMemSize, __pyx_v_blockSizeLimit);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_594cuOccupancyMaxPotentialBlockSize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_blockSizeToDynamicSMemSize, size_t __pyx_v_dynamicSMemSize, int __pyx_v_blockSizeLimit) {
  int __pyx_v_minGridSize;
  int __pyx_v_blockSize;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__825)
  __Pyx_RefNannySetupContext("cuOccupancyMaxPotentialBlockSize", 0);
  __Pyx_TraceCall("cuOccupancyMaxPotentialBlockSize", __pyx_f[0], 25385, 0, __PYX_ERR(0, 25385, __pyx_L1_error));

  /* "cuda/cuda.pyx":25440
 *         Returned maximum block size that can achieve the maximum occupancy
 *     """
 *     cdef int minGridSize = 0             # <<<<<<<<<<<<<<
 *     cdef int blockSize = 0
 *     err = ccuda.cuOccupancyMaxPotentialBlockSize(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit)
 */
  __pyx_v_minGridSize = 0;

  /* "cuda/cuda.pyx":25441
 *     """
 *     cdef int minGridSize = 0
 *     cdef int blockSize = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuOccupancyMaxPotentialBlockSize(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit)
 *     return (CUresult(err), minGridSize, blockSize)
 */
  __pyx_v_blockSize = 0;

  /* "cuda/cuda.pyx":25442
 *     cdef int minGridSize = 0
 *     cdef int blockSize = 0
 *     err = ccuda.cuOccupancyMaxPotentialBlockSize(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), minGridSize, blockSize)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuOccupancyMaxPotentialBlockSize((&__pyx_v_minGridSize), (&__pyx_v_blockSize), (__pyx_v_func->_ptr[0]), (__pyx_v_blockSizeToDynamicSMemSize->_ptr[0]), __pyx_v_dynamicSMemSize, __pyx_v_blockSizeLimit); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25442, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25443
 *     cdef int blockSize = 0
 *     err = ccuda.cuOccupancyMaxPotentialBlockSize(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit)
 *     return (CUresult(err), minGridSize, blockSize)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_minGridSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_blockSize); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25385
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSize(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxPotentialBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25446
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSizeWithFlags(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_597cuOccupancyMaxPotentialBlockSizeWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_596cuOccupancyMaxPotentialBlockSizeWithFlags[] = "cuOccupancyMaxPotentialBlockSizeWithFlags(CUfunction func: CUfunction, CUoccupancyB2DSize blockSizeToDynamicSMemSize: CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit, unsigned int flags)\n Suggest a launch configuration with reasonable occupancy.\n\n    An extended version of cuOccupancyMaxPotentialBlockSize. In addition to\n    arguments passed to cuOccupancyMaxPotentialBlockSize,\n    cuOccupancyMaxPotentialBlockSizeWithFlags also takes a `Flags`\n    parameter.\n\n    The `Flags` parameter controls how special cases are handled. The valid\n    flags are:\n\n    CU_OCCUPANCY_DEFAULT, which maintains the default behavior as\n    cuOccupancyMaxPotentialBlockSize;\n    CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE, which suppresses the default\n    behavior on platform where global caching affects occupancy. On such\n    platforms, the launch configurations that produces maximal occupancy\n    might not support global caching. Setting\n    CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE guarantees that the the produced\n    launch configuration is global caching compatible at a potential cost\n    of occupancy. More information can be found about this feature in the\n    \"Unified L1/Texture Cache\" section of the Maxwell tuning guide.\n\n    Parameters\n    ----------\n    func : CUfunction\n        Kernel for which launch configuration is calculated\n    blockSizeToDynamicSMemSize : CUoccupancyB2DSize\n        A function that calculates how much per-block dynamic shared memory\n        `func` uses based on the block size\n    dynamicSMemSize : size_t\n        Dynamic shared memory usage intended, in bytes\n    blockSizeLimit : int\n        The maximum block size `func` is designed to handle\n    flags : unsigned int\n        Options\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNKNOWN\n    mi""nGridSize : int\n        Returned minimum grid size needed to achieve the maximum occupancy\n    blockSize : int\n        Returned maximum block size that can achieve the maximum occupancy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_597cuOccupancyMaxPotentialBlockSizeWithFlags = {"cuOccupancyMaxPotentialBlockSizeWithFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_597cuOccupancyMaxPotentialBlockSizeWithFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_596cuOccupancyMaxPotentialBlockSizeWithFlags};
static PyObject *__pyx_pw_4cuda_4cuda_597cuOccupancyMaxPotentialBlockSizeWithFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func = 0;
  struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_blockSizeToDynamicSMemSize = 0;
  size_t __pyx_v_dynamicSMemSize;
  int __pyx_v_blockSizeLimit;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuOccupancyMaxPotentialBlockSizeWithFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func_2,&__pyx_n_s_blockSizeToDynamicSMemSize,&__pyx_n_s_dynamicSMemSize,&__pyx_n_s_blockSizeLimit,&__pyx_n_s_flags_2,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSizeToDynamicSMemSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSizeWithFlags", 1, 5, 5, 1); __PYX_ERR(0, 25446, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dynamicSMemSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSizeWithFlags", 1, 5, 5, 2); __PYX_ERR(0, 25446, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSizeLimit)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSizeWithFlags", 1, 5, 5, 3); __PYX_ERR(0, 25446, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSizeWithFlags", 1, 5, 5, 4); __PYX_ERR(0, 25446, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuOccupancyMaxPotentialBlockSizeWithFlags") < 0)) __PYX_ERR(0, 25446, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_blockSizeToDynamicSMemSize = ((struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *)values[1]);
    __pyx_v_dynamicSMemSize = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_dynamicSMemSize == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25446, __pyx_L3_error)
    __pyx_v_blockSizeLimit = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_blockSizeLimit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25446, __pyx_L3_error)
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[4]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25446, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuOccupancyMaxPotentialBlockSizeWithFlags", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25446, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxPotentialBlockSizeWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_func), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "func", 0))) __PYX_ERR(0, 25446, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_blockSizeToDynamicSMemSize), __pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize, 0, "blockSizeToDynamicSMemSize", 0))) __PYX_ERR(0, 25446, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_596cuOccupancyMaxPotentialBlockSizeWithFlags(__pyx_self, __pyx_v_func, __pyx_v_blockSizeToDynamicSMemSize, __pyx_v_dynamicSMemSize, __pyx_v_blockSizeLimit, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_596cuOccupancyMaxPotentialBlockSizeWithFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize *__pyx_v_blockSizeToDynamicSMemSize, size_t __pyx_v_dynamicSMemSize, int __pyx_v_blockSizeLimit, unsigned int __pyx_v_flags) {
  int __pyx_v_minGridSize;
  int __pyx_v_blockSize;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__826)
  __Pyx_RefNannySetupContext("cuOccupancyMaxPotentialBlockSizeWithFlags", 0);
  __Pyx_TraceCall("cuOccupancyMaxPotentialBlockSizeWithFlags", __pyx_f[0], 25446, 0, __PYX_ERR(0, 25446, __pyx_L1_error));

  /* "cuda/cuda.pyx":25496
 *         Returned maximum block size that can achieve the maximum occupancy
 *     """
 *     cdef int minGridSize = 0             # <<<<<<<<<<<<<<
 *     cdef int blockSize = 0
 *     err = ccuda.cuOccupancyMaxPotentialBlockSizeWithFlags(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit, flags)
 */
  __pyx_v_minGridSize = 0;

  /* "cuda/cuda.pyx":25497
 *     """
 *     cdef int minGridSize = 0
 *     cdef int blockSize = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuOccupancyMaxPotentialBlockSizeWithFlags(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit, flags)
 *     return (CUresult(err), minGridSize, blockSize)
 */
  __pyx_v_blockSize = 0;

  /* "cuda/cuda.pyx":25498
 *     cdef int minGridSize = 0
 *     cdef int blockSize = 0
 *     err = ccuda.cuOccupancyMaxPotentialBlockSizeWithFlags(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit, flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), minGridSize, blockSize)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuOccupancyMaxPotentialBlockSizeWithFlags((&__pyx_v_minGridSize), (&__pyx_v_blockSize), (__pyx_v_func->_ptr[0]), (__pyx_v_blockSizeToDynamicSMemSize->_ptr[0]), __pyx_v_dynamicSMemSize, __pyx_v_blockSizeLimit, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25498, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25499
 *     cdef int blockSize = 0
 *     err = ccuda.cuOccupancyMaxPotentialBlockSizeWithFlags(&minGridSize, &blockSize, func._ptr[0], blockSizeToDynamicSMemSize._ptr[0], dynamicSMemSize, blockSizeLimit, flags)
 *     return (CUresult(err), minGridSize, blockSize)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_minGridSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_blockSize); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25446
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSizeWithFlags(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyMaxPotentialBlockSizeWithFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25502
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyAvailableDynamicSMemPerBlock(func not None : CUfunction, int numBlocks, int blockSize):             # <<<<<<<<<<<<<<
 *     """ Returns dynamic shared memory available per block when launching `numBlocks` blocks on SM.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_599cuOccupancyAvailableDynamicSMemPerBlock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_598cuOccupancyAvailableDynamicSMemPerBlock[] = "cuOccupancyAvailableDynamicSMemPerBlock(CUfunction func: CUfunction, int numBlocks, int blockSize)\n Returns dynamic shared memory available per block when launching `numBlocks` blocks on SM.\n\n    Returns in `*dynamicSmemSize` the maximum size of dynamic shared memory\n    to allow `numBlocks` blocks per SM.\n\n    Parameters\n    ----------\n    func : CUfunction\n        Kernel function for which occupancy is calculated\n    numBlocks : int\n        Number of blocks to fit on SM\n    blockSize : int\n        Size of the blocks\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_UNKNOWN\n    dynamicSmemSize : int\n        Returned maximum dynamic shared memory\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_599cuOccupancyAvailableDynamicSMemPerBlock = {"cuOccupancyAvailableDynamicSMemPerBlock", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_599cuOccupancyAvailableDynamicSMemPerBlock, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_598cuOccupancyAvailableDynamicSMemPerBlock};
static PyObject *__pyx_pw_4cuda_4cuda_599cuOccupancyAvailableDynamicSMemPerBlock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func = 0;
  int __pyx_v_numBlocks;
  int __pyx_v_blockSize;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuOccupancyAvailableDynamicSMemPerBlock (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func_2,&__pyx_n_s_numBlocks,&__pyx_n_s_blockSize,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numBlocks)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyAvailableDynamicSMemPerBlock", 1, 3, 3, 1); __PYX_ERR(0, 25502, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSize)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuOccupancyAvailableDynamicSMemPerBlock", 1, 3, 3, 2); __PYX_ERR(0, 25502, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuOccupancyAvailableDynamicSMemPerBlock") < 0)) __PYX_ERR(0, 25502, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)values[0]);
    __pyx_v_numBlocks = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_numBlocks == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25502, __pyx_L3_error)
    __pyx_v_blockSize = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_blockSize == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25502, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuOccupancyAvailableDynamicSMemPerBlock", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25502, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyAvailableDynamicSMemPerBlock", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_func), __pyx_ptype_4cuda_4cuda_CUfunction, 0, "func", 0))) __PYX_ERR(0, 25502, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_598cuOccupancyAvailableDynamicSMemPerBlock(__pyx_self, __pyx_v_func, __pyx_v_numBlocks, __pyx_v_blockSize);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_598cuOccupancyAvailableDynamicSMemPerBlock(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUfunction *__pyx_v_func, int __pyx_v_numBlocks, int __pyx_v_blockSize) {
  size_t __pyx_v_dynamicSmemSize;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__827)
  __Pyx_RefNannySetupContext("cuOccupancyAvailableDynamicSMemPerBlock", 0);
  __Pyx_TraceCall("cuOccupancyAvailableDynamicSMemPerBlock", __pyx_f[0], 25502, 0, __PYX_ERR(0, 25502, __pyx_L1_error));

  /* "cuda/cuda.pyx":25529
 *         Returned maximum dynamic shared memory
 *     """
 *     cdef size_t dynamicSmemSize = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuOccupancyAvailableDynamicSMemPerBlock(&dynamicSmemSize, func._ptr[0], numBlocks, blockSize)
 *     return (CUresult(err), dynamicSmemSize)
 */
  __pyx_v_dynamicSmemSize = 0;

  /* "cuda/cuda.pyx":25530
 *     """
 *     cdef size_t dynamicSmemSize = 0
 *     err = ccuda.cuOccupancyAvailableDynamicSMemPerBlock(&dynamicSmemSize, func._ptr[0], numBlocks, blockSize)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), dynamicSmemSize)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuOccupancyAvailableDynamicSMemPerBlock((&__pyx_v_dynamicSmemSize), (__pyx_v_func->_ptr[0]), __pyx_v_numBlocks, __pyx_v_blockSize); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25530, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25531
 *     cdef size_t dynamicSmemSize = 0
 *     err = ccuda.cuOccupancyAvailableDynamicSMemPerBlock(&dynamicSmemSize, func._ptr[0], numBlocks, blockSize)
 *     return (CUresult(err), dynamicSmemSize)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_dynamicSmemSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25502
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyAvailableDynamicSMemPerBlock(func not None : CUfunction, int numBlocks, int blockSize):             # <<<<<<<<<<<<<<
 *     """ Returns dynamic shared memory available per block when launching `numBlocks` blocks on SM.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuOccupancyAvailableDynamicSMemPerBlock", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25534
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetArray(hTexRef not None : CUtexref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds an array as a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_601cuTexRefSetArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_600cuTexRefSetArray[] = "cuTexRefSetArray(CUtexref hTexRef: CUtexref, CUarray hArray: CUarray, unsigned int Flags)\n Binds an array as a texture reference.\n\n    Deprecated\n\n    Binds the CUDA array `hArray` to the texture reference `hTexRef`. Any\n    previous address or CUDA array state associated with the texture\n    reference is superseded by this function. `Flags` must be set to\n    CU_TRSA_OVERRIDE_FORMAT. Any CUDA array previously bound to `hTexRef`\n    is unbound.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference to bind\n    hArray : CUarray\n        Array to bind\n    Flags : unsigned int\n        Options (must be CU_TRSA_OVERRIDE_FORMAT)\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_601cuTexRefSetArray = {"cuTexRefSetArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_601cuTexRefSetArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_600cuTexRefSetArray};
static PyObject *__pyx_pw_4cuda_4cuda_601cuTexRefSetArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetArray (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_hArray_2,&__pyx_n_s_Flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetArray", 1, 3, 3, 1); __PYX_ERR(0, 25534, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetArray", 1, 3, 3, 2); __PYX_ERR(0, 25534, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetArray") < 0)) __PYX_ERR(0, 25534, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_hArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[1]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25534, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetArray", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25534, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25534, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "hArray", 0))) __PYX_ERR(0, 25534, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_600cuTexRefSetArray(__pyx_self, __pyx_v_hTexRef, __pyx_v_hArray, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_600cuTexRefSetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__828)
  __Pyx_RefNannySetupContext("cuTexRefSetArray", 0);
  __Pyx_TraceCall("cuTexRefSetArray", __pyx_f[0], 25534, 0, __PYX_ERR(0, 25534, __pyx_L1_error));

  /* "cuda/cuda.pyx":25581
 *     cudaBindTextureToArray
 *     """
 *     err = ccuda.cuTexRefSetArray(hTexRef._ptr[0], hArray._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetArray((__pyx_v_hTexRef->_ptr[0]), (__pyx_v_hArray->_ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25581, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25582
 *     """
 *     err = ccuda.cuTexRefSetArray(hTexRef._ptr[0], hArray._ptr[0], Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25534
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetArray(hTexRef not None : CUtexref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds an array as a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25585
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmappedArray(hTexRef not None : CUtexref, hMipmappedArray not None : CUmipmappedArray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds a mipmapped array to a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_603cuTexRefSetMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_602cuTexRefSetMipmappedArray[] = "cuTexRefSetMipmappedArray(CUtexref hTexRef: CUtexref, CUmipmappedArray hMipmappedArray: CUmipmappedArray, unsigned int Flags)\n Binds a mipmapped array to a texture reference.\n\n    Deprecated\n\n    Binds the CUDA mipmapped array `hMipmappedArray` to the texture\n    reference `hTexRef`. Any previous address or CUDA array state\n    associated with the texture reference is superseded by this function.\n    `Flags` must be set to CU_TRSA_OVERRIDE_FORMAT. Any CUDA array\n    previously bound to `hTexRef` is unbound.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference to bind\n    hMipmappedArray : CUmipmappedArray\n        Mipmapped array to bind\n    Flags : unsigned int\n        Options (must be CU_TRSA_OVERRIDE_FORMAT)\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_603cuTexRefSetMipmappedArray = {"cuTexRefSetMipmappedArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_603cuTexRefSetMipmappedArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_602cuTexRefSetMipmappedArray};
static PyObject *__pyx_pw_4cuda_4cuda_603cuTexRefSetMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetMipmappedArray (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_hMipmappedArray_2,&__pyx_n_s_Flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hMipmappedArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmappedArray", 1, 3, 3, 1); __PYX_ERR(0, 25585, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmappedArray", 1, 3, 3, 2); __PYX_ERR(0, 25585, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetMipmappedArray") < 0)) __PYX_ERR(0, 25585, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_hMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)values[1]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25585, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmappedArray", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25585, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25585, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hMipmappedArray), __pyx_ptype_4cuda_4cuda_CUmipmappedArray, 0, "hMipmappedArray", 0))) __PYX_ERR(0, 25585, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_602cuTexRefSetMipmappedArray(__pyx_self, __pyx_v_hTexRef, __pyx_v_hMipmappedArray, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_602cuTexRefSetMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_hMipmappedArray, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__829)
  __Pyx_RefNannySetupContext("cuTexRefSetMipmappedArray", 0);
  __Pyx_TraceCall("cuTexRefSetMipmappedArray", __pyx_f[0], 25585, 0, __PYX_ERR(0, 25585, __pyx_L1_error));

  /* "cuda/cuda.pyx":25632
 *     cudaBindTextureToMipmappedArray
 *     """
 *     err = ccuda.cuTexRefSetMipmappedArray(hTexRef._ptr[0], hMipmappedArray._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetMipmappedArray((__pyx_v_hTexRef->_ptr[0]), (__pyx_v_hMipmappedArray->_ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25632, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25633
 *     """
 *     err = ccuda.cuTexRefSetMipmappedArray(hTexRef._ptr[0], hMipmappedArray._ptr[0], Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25585
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmappedArray(hTexRef not None : CUtexref, hMipmappedArray not None : CUmipmappedArray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds a mipmapped array to a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25636
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress(hTexRef not None : CUtexref, dptr not None : CUdeviceptr, size_t numbytes):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_605cuTexRefSetAddress(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_604cuTexRefSetAddress[] = "cuTexRefSetAddress(CUtexref hTexRef: CUtexref, CUdeviceptr dptr: CUdeviceptr, size_t numbytes)\n Binds an address as a texture reference.\n\n    Deprecated\n\n    Binds a linear address range to the texture reference `hTexRef`. Any\n    previous address or CUDA array state associated with the texture\n    reference is superseded by this function. Any memory previously bound\n    to `hTexRef` is unbound.\n\n    Since the hardware enforces an alignment requirement on texture base\n    addresses, cuTexRefSetAddress() passes back a byte offset in\n    `*ByteOffset` that must be applied to texture fetches in order to read\n    from the desired memory. This offset must be divided by the texel size\n    and passed to kernels that read from the texture so they can be applied\n    to the tex1Dfetch() function.\n\n    If the device memory pointer was returned from cuMemAlloc(), the offset\n    is guaranteed to be 0 and NULL may be passed as the `ByteOffset`\n    parameter.\n\n    The total number of elements (or texels) in the linear address range\n    cannot exceed CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH. The\n    number of elements is computed as (`numbytes` / bytesPerElement), where\n    bytesPerElement is determined from the data format and number of\n    components set using cuTexRefSetFormat().\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference to bind\n    dptr : CUdeviceptr\n        Device pointer to bind\n    numbytes : size_t\n        Size of memory to bind in bytes\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    ByteOffset : int\n        Returned byte offset\n\n    See Also\n    --------\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    c""uTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTexture\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_605cuTexRefSetAddress = {"cuTexRefSetAddress", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_605cuTexRefSetAddress, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_604cuTexRefSetAddress};
static PyObject *__pyx_pw_4cuda_4cuda_605cuTexRefSetAddress(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  size_t __pyx_v_numbytes;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetAddress (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_dptr_2,&__pyx_n_s_numbytes,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress", 1, 3, 3, 1); __PYX_ERR(0, 25636, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numbytes)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress", 1, 3, 3, 2); __PYX_ERR(0, 25636, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetAddress") < 0)) __PYX_ERR(0, 25636, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[1]);
    __pyx_v_numbytes = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_numbytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25636, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25636, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetAddress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25636, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 25636, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_604cuTexRefSetAddress(__pyx_self, __pyx_v_hTexRef, __pyx_v_dptr, __pyx_v_numbytes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_604cuTexRefSetAddress(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, size_t __pyx_v_numbytes) {
  size_t __pyx_v_ByteOffset;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__830)
  __Pyx_RefNannySetupContext("cuTexRefSetAddress", 0);
  __Pyx_TraceCall("cuTexRefSetAddress", __pyx_f[0], 25636, 0, __PYX_ERR(0, 25636, __pyx_L1_error));

  /* "cuda/cuda.pyx":25699
 *     cudaBindTexture
 *     """
 *     cdef size_t ByteOffset = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefSetAddress(&ByteOffset, hTexRef._ptr[0], dptr._ptr[0], numbytes)
 *     return (CUresult(err), ByteOffset)
 */
  __pyx_v_ByteOffset = 0;

  /* "cuda/cuda.pyx":25700
 *     """
 *     cdef size_t ByteOffset = 0
 *     err = ccuda.cuTexRefSetAddress(&ByteOffset, hTexRef._ptr[0], dptr._ptr[0], numbytes)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), ByteOffset)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetAddress((&__pyx_v_ByteOffset), (__pyx_v_hTexRef->_ptr[0]), (__pyx_v_dptr->_ptr[0]), __pyx_v_numbytes); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25700, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":25701
 *     cdef size_t ByteOffset = 0
 *     err = ccuda.cuTexRefSetAddress(&ByteOffset, hTexRef._ptr[0], dptr._ptr[0], numbytes)
 *     return (CUresult(err), ByteOffset)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_ByteOffset); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25636
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress(hTexRef not None : CUtexref, dptr not None : CUdeviceptr, size_t numbytes):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetAddress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25704
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress2D(hTexRef not None : CUtexref, desc : CUDA_ARRAY_DESCRIPTOR, dptr not None : CUdeviceptr, size_t Pitch):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a 2D texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_607cuTexRefSetAddress2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_606cuTexRefSetAddress2D[] = "cuTexRefSetAddress2D(CUtexref hTexRef: CUtexref, CUDA_ARRAY_DESCRIPTOR desc: CUDA_ARRAY_DESCRIPTOR, CUdeviceptr dptr: CUdeviceptr, size_t Pitch)\n Binds an address as a 2D texture reference.\n\n    Deprecated\n\n    Binds a linear address range to the texture reference `hTexRef`. Any\n    previous address or CUDA array state associated with the texture\n    reference is superseded by this function. Any memory previously bound\n    to `hTexRef` is unbound.\n\n    Using a tex2D() function inside a kernel requires a call to either\n    cuTexRefSetArray() to bind the corresponding texture reference to an\n    array, or cuTexRefSetAddress2D() to bind the texture reference to\n    linear memory.\n\n    Function calls to cuTexRefSetFormat() cannot follow calls to\n    cuTexRefSetAddress2D() for the same texture reference.\n\n    It is required that `dptr` be aligned to the appropriate hardware-\n    specific texture alignment. You can query this value using the device\n    attribute CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT. If an unaligned `dptr`\n    is supplied, CUDA_ERROR_INVALID_VALUE is returned.\n\n    `Pitch` has to be aligned to the hardware-specific texture pitch\n    alignment. This value can be queried using the device attribute\n    CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT. If an unaligned `Pitch` is\n    supplied, CUDA_ERROR_INVALID_VALUE is returned.\n\n    Width and Height, which are specified in elements (or texels), cannot\n    exceed CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH and\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT respectively.\n    `Pitch`, which is specified in bytes, cannot exceed\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference to bind\n    desc : CUDA_ARRAY_DESCRIPTOR\n        Descriptor of CUDA array\n    dptr : CUdeviceptr\n        Device pointer to bind\n    Pitch : size_t\n        Line pitch in bytes\n\n    Returns\n    -----""--\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTexture2D\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_607cuTexRefSetAddress2D = {"cuTexRefSetAddress2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_607cuTexRefSetAddress2D, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_606cuTexRefSetAddress2D};
static PyObject *__pyx_pw_4cuda_4cuda_607cuTexRefSetAddress2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_desc = 0;
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr = 0;
  size_t __pyx_v_Pitch;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetAddress2D (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_desc,&__pyx_n_s_dptr_2,&__pyx_n_s_Pitch,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_desc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress2D", 1, 4, 4, 1); __PYX_ERR(0, 25704, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dptr_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress2D", 1, 4, 4, 2); __PYX_ERR(0, 25704, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Pitch)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress2D", 1, 4, 4, 3); __PYX_ERR(0, 25704, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetAddress2D") < 0)) __PYX_ERR(0, 25704, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_desc = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *)values[1]);
    __pyx_v_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)values[2]);
    __pyx_v_Pitch = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_Pitch == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25704, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddress2D", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25704, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetAddress2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25704, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_desc), __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR, 1, "desc", 0))) __PYX_ERR(0, 25704, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dptr), __pyx_ptype_4cuda_4cuda_CUdeviceptr, 0, "dptr", 0))) __PYX_ERR(0, 25704, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_606cuTexRefSetAddress2D(__pyx_self, __pyx_v_hTexRef, __pyx_v_desc, __pyx_v_dptr, __pyx_v_Pitch);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_606cuTexRefSetAddress2D(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_desc, struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_dptr, size_t __pyx_v_Pitch) {
  __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR *__pyx_v_cdesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__831)
  __Pyx_RefNannySetupContext("cuTexRefSetAddress2D", 0);
  __Pyx_TraceCall("cuTexRefSetAddress2D", __pyx_f[0], 25704, 0, __PYX_ERR(0, 25704, __pyx_L1_error));

  /* "cuda/cuda.pyx":25776
 *     cudaBindTexture2D
 *     """
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cdesc_ptr = desc._ptr if desc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefSetAddress2D(hTexRef._ptr[0], cdesc_ptr, dptr._ptr[0], Pitch)
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_desc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25776, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 25776, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_desc->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cdesc_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":25777
 *     """
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cdesc_ptr = desc._ptr if desc != None else NULL
 *     err = ccuda.cuTexRefSetAddress2D(hTexRef._ptr[0], cdesc_ptr, dptr._ptr[0], Pitch)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuTexRefSetAddress2D((__pyx_v_hTexRef->_ptr[0]), __pyx_v_cdesc_ptr, (__pyx_v_dptr->_ptr[0]), __pyx_v_Pitch); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25777, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":25778
 *     cdef ccuda.CUDA_ARRAY_DESCRIPTOR* cdesc_ptr = desc._ptr if desc != None else NULL
 *     err = ccuda.cuTexRefSetAddress2D(hTexRef._ptr[0], cdesc_ptr, dptr._ptr[0], Pitch)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25704
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress2D(hTexRef not None : CUtexref, desc : CUDA_ARRAY_DESCRIPTOR, dptr not None : CUdeviceptr, size_t Pitch):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a 2D texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetAddress2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25781
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFormat(hTexRef not None : CUtexref, fmt not None : CUarray_format, int NumPackedComponents):             # <<<<<<<<<<<<<<
 *     """ Sets the format for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_609cuTexRefSetFormat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_608cuTexRefSetFormat[] = "cuTexRefSetFormat(CUtexref hTexRef: CUtexref, fmt: CUarray_format, int NumPackedComponents)\n Sets the format for a texture reference.\n\n    Deprecated\n\n    Specifies the format of the data to be read by the texture reference\n    `hTexRef`. `fmt` and `NumPackedComponents` are exactly analogous to the\n    Format and NumChannels members of the CUDA_ARRAY_DESCRIPTOR structure:\n    They specify the format of each component and the number of components\n    per array element.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    fmt : CUarray_format\n        Format to set\n    NumPackedComponents : int\n        Number of components per array element\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaCreateChannelDesc\n    cudaBindTexture\n    cudaBindTexture2D\n    cudaBindTextureToArray\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_609cuTexRefSetFormat = {"cuTexRefSetFormat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_609cuTexRefSetFormat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_608cuTexRefSetFormat};
static PyObject *__pyx_pw_4cuda_4cuda_609cuTexRefSetFormat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  PyObject *__pyx_v_fmt = 0;
  int __pyx_v_NumPackedComponents;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetFormat (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_fmt,&__pyx_n_s_NumPackedComponents,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fmt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetFormat", 1, 3, 3, 1); __PYX_ERR(0, 25781, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NumPackedComponents)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetFormat", 1, 3, 3, 2); __PYX_ERR(0, 25781, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetFormat") < 0)) __PYX_ERR(0, 25781, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_fmt = values[1];
    __pyx_v_NumPackedComponents = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_NumPackedComponents == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25781, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetFormat", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25781, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetFormat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25781, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_fmt) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "fmt"); __PYX_ERR(0, 25781, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_608cuTexRefSetFormat(__pyx_self, __pyx_v_hTexRef, __pyx_v_fmt, __pyx_v_NumPackedComponents);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_608cuTexRefSetFormat(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, PyObject *__pyx_v_fmt, int __pyx_v_NumPackedComponents) {
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_v_cfmt;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__832)
  __Pyx_RefNannySetupContext("cuTexRefSetFormat", 0);
  __Pyx_TraceCall("cuTexRefSetFormat", __pyx_f[0], 25781, 0, __PYX_ERR(0, 25781, __pyx_L1_error));

  /* "cuda/cuda.pyx":25832
 *     cudaBindTextureToMipmappedArray
 *     """
 *     cdef ccuda.CUarray_format cfmt = fmt.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefSetFormat(hTexRef._ptr[0], cfmt, NumPackedComponents)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fmt, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25832, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cfmt = __pyx_t_2;

  /* "cuda/cuda.pyx":25833
 *     """
 *     cdef ccuda.CUarray_format cfmt = fmt.value
 *     err = ccuda.cuTexRefSetFormat(hTexRef._ptr[0], cfmt, NumPackedComponents)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuTexRefSetFormat((__pyx_v_hTexRef->_ptr[0]), __pyx_v_cfmt, __pyx_v_NumPackedComponents); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25833, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":25834
 *     cdef ccuda.CUarray_format cfmt = fmt.value
 *     err = ccuda.cuTexRefSetFormat(hTexRef._ptr[0], cfmt, NumPackedComponents)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25781
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFormat(hTexRef not None : CUtexref, fmt not None : CUarray_format, int NumPackedComponents):             # <<<<<<<<<<<<<<
 *     """ Sets the format for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetFormat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25837
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddressMode(hTexRef not None : CUtexref, int dim, am not None : CUaddress_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the addressing mode for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_611cuTexRefSetAddressMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_610cuTexRefSetAddressMode[] = "cuTexRefSetAddressMode(CUtexref hTexRef: CUtexref, int dim, am: CUaddress_mode)\n Sets the addressing mode for a texture reference.\n\n    Deprecated\n\n    Specifies the addressing mode `am` for the given dimension `dim` of the\n    texture reference `hTexRef`. If `dim` is zero, the addressing mode is\n    applied to the first parameter of the functions used to fetch from the\n    texture; if `dim` is 1, the second, and so on. CUaddress_mode is\n    defined as: typedefenumCUaddress_mode_enum{ CU_TR_ADDRESS_MODE_WRAP=0,\n    CU_TR_ADDRESS_MODE_CLAMP=1, CU_TR_ADDRESS_MODE_MIRROR=2,\n    CU_TR_ADDRESS_MODE_BORDER=3 }CUaddress_mode;\n\n    Note that this call has no effect if `hTexRef` is bound to linear\n    memory. Also, if the flag, CU_TRSF_NORMALIZED_COORDINATES, is not set,\n    the only supported address mode is CU_TR_ADDRESS_MODE_CLAMP.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    dim : int\n        Dimension\n    am : CUaddress_mode\n        Addressing mode to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTexture\n    cudaBindTexture2D\n    cudaBindTextureToArray\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_611cuTexRefSetAddressMode = {"cuTexRefSetAddressMode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_611cuTexRefSetAddressMode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_610cuTexRefSetAddressMode};
static PyObject *__pyx_pw_4cuda_4cuda_611cuTexRefSetAddressMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  int __pyx_v_dim;
  PyObject *__pyx_v_am = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetAddressMode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_dim,&__pyx_n_s_am,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddressMode", 1, 3, 3, 1); __PYX_ERR(0, 25837, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_am)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddressMode", 1, 3, 3, 2); __PYX_ERR(0, 25837, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetAddressMode") < 0)) __PYX_ERR(0, 25837, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_dim = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_dim == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25837, __pyx_L3_error)
    __pyx_v_am = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetAddressMode", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25837, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetAddressMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25837, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_am) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "am"); __PYX_ERR(0, 25837, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_610cuTexRefSetAddressMode(__pyx_self, __pyx_v_hTexRef, __pyx_v_dim, __pyx_v_am);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_610cuTexRefSetAddressMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, int __pyx_v_dim, PyObject *__pyx_v_am) {
  __pyx_t_4cuda_5ccuda_CUaddress_mode __pyx_v_cam;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUaddress_mode __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__833)
  __Pyx_RefNannySetupContext("cuTexRefSetAddressMode", 0);
  __Pyx_TraceCall("cuTexRefSetAddressMode", __pyx_f[0], 25837, 0, __PYX_ERR(0, 25837, __pyx_L1_error));

  /* "cuda/cuda.pyx":25893
 *     cudaBindTextureToMipmappedArray
 *     """
 *     cdef ccuda.CUaddress_mode cam = am.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefSetAddressMode(hTexRef._ptr[0], dim, cam)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_am, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cam = __pyx_t_2;

  /* "cuda/cuda.pyx":25894
 *     """
 *     cdef ccuda.CUaddress_mode cam = am.value
 *     err = ccuda.cuTexRefSetAddressMode(hTexRef._ptr[0], dim, cam)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuTexRefSetAddressMode((__pyx_v_hTexRef->_ptr[0]), __pyx_v_dim, __pyx_v_cam); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25894, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":25895
 *     cdef ccuda.CUaddress_mode cam = am.value
 *     err = ccuda.cuTexRefSetAddressMode(hTexRef._ptr[0], dim, cam)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25837
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddressMode(hTexRef not None : CUtexref, int dim, am not None : CUaddress_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the addressing mode for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetAddressMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25898
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the filtering mode for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_613cuTexRefSetFilterMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_612cuTexRefSetFilterMode[] = "cuTexRefSetFilterMode(CUtexref hTexRef: CUtexref, fm: CUfilter_mode)\n Sets the filtering mode for a texture reference.\n\n    Deprecated\n\n    Specifies the filtering mode `fm` to be used when reading memory\n    through the texture reference `hTexRef`. CUfilter_mode_enum is defined\n    as:\n\n    typedefenumCUfilter_mode_enum{ CU_TR_FILTER_MODE_POINT=0,\n    CU_TR_FILTER_MODE_LINEAR=1 }CUfilter_mode;\n\n    Note that this call has no effect if `hTexRef` is bound to linear\n    memory.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    fm : CUfilter_mode\n        Filtering mode to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_613cuTexRefSetFilterMode = {"cuTexRefSetFilterMode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_613cuTexRefSetFilterMode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_612cuTexRefSetFilterMode};
static PyObject *__pyx_pw_4cuda_4cuda_613cuTexRefSetFilterMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  PyObject *__pyx_v_fm = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetFilterMode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_fm,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fm)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetFilterMode", 1, 2, 2, 1); __PYX_ERR(0, 25898, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetFilterMode") < 0)) __PYX_ERR(0, 25898, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_fm = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetFilterMode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25898, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetFilterMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25898, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_fm) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "fm"); __PYX_ERR(0, 25898, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_612cuTexRefSetFilterMode(__pyx_self, __pyx_v_hTexRef, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_612cuTexRefSetFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, PyObject *__pyx_v_fm) {
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_v_cfm;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__834)
  __Pyx_RefNannySetupContext("cuTexRefSetFilterMode", 0);
  __Pyx_TraceCall("cuTexRefSetFilterMode", __pyx_f[0], 25898, 0, __PYX_ERR(0, 25898, __pyx_L1_error));

  /* "cuda/cuda.pyx":25947
 *     cudaBindTextureToArray
 *     """
 *     cdef ccuda.CUfilter_mode cfm = fm.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefSetFilterMode(hTexRef._ptr[0], cfm)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fm, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25947, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cfm = __pyx_t_2;

  /* "cuda/cuda.pyx":25948
 *     """
 *     cdef ccuda.CUfilter_mode cfm = fm.value
 *     err = ccuda.cuTexRefSetFilterMode(hTexRef._ptr[0], cfm)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuTexRefSetFilterMode((__pyx_v_hTexRef->_ptr[0]), __pyx_v_cfm); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 25948, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":25949
 *     cdef ccuda.CUfilter_mode cfm = fm.value
 *     err = ccuda.cuTexRefSetFilterMode(hTexRef._ptr[0], cfm)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25898
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the filtering mode for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetFilterMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":25952
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap filtering mode for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_615cuTexRefSetMipmapFilterMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_614cuTexRefSetMipmapFilterMode[] = "cuTexRefSetMipmapFilterMode(CUtexref hTexRef: CUtexref, fm: CUfilter_mode)\n Sets the mipmap filtering mode for a texture reference.\n\n    Deprecated\n\n    Specifies the mipmap filtering mode `fm` to be used when reading memory\n    through the texture reference `hTexRef`. CUfilter_mode_enum is defined\n    as:\n\n    typedefenumCUfilter_mode_enum{ CU_TR_FILTER_MODE_POINT=0,\n    CU_TR_FILTER_MODE_LINEAR=1 }CUfilter_mode;\n\n    Note that this call has no effect if `hTexRef` is not bound to a\n    mipmapped array.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    fm : CUfilter_mode\n        Filtering mode to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_615cuTexRefSetMipmapFilterMode = {"cuTexRefSetMipmapFilterMode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_615cuTexRefSetMipmapFilterMode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_614cuTexRefSetMipmapFilterMode};
static PyObject *__pyx_pw_4cuda_4cuda_615cuTexRefSetMipmapFilterMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  PyObject *__pyx_v_fm = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetMipmapFilterMode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_fm,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fm)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapFilterMode", 1, 2, 2, 1); __PYX_ERR(0, 25952, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetMipmapFilterMode") < 0)) __PYX_ERR(0, 25952, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_fm = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapFilterMode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25952, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmapFilterMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 25952, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_fm) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "fm"); __PYX_ERR(0, 25952, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_4cuda_4cuda_614cuTexRefSetMipmapFilterMode(__pyx_self, __pyx_v_hTexRef, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_614cuTexRefSetMipmapFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, PyObject *__pyx_v_fm) {
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_v_cfm;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__835)
  __Pyx_RefNannySetupContext("cuTexRefSetMipmapFilterMode", 0);
  __Pyx_TraceCall("cuTexRefSetMipmapFilterMode", __pyx_f[0], 25952, 0, __PYX_ERR(0, 25952, __pyx_L1_error));

  /* "cuda/cuda.pyx":26001
 *     cudaBindTextureToMipmappedArray
 *     """
 *     cdef ccuda.CUfilter_mode cfm = fm.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefSetMipmapFilterMode(hTexRef._ptr[0], cfm)
 *     return (CUresult(err),)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fm, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 26001, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cfm = __pyx_t_2;

  /* "cuda/cuda.pyx":26002
 *     """
 *     cdef ccuda.CUfilter_mode cfm = fm.value
 *     err = ccuda.cuTexRefSetMipmapFilterMode(hTexRef._ptr[0], cfm)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuTexRefSetMipmapFilterMode((__pyx_v_hTexRef->_ptr[0]), __pyx_v_cfm); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26002, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":26003
 *     cdef ccuda.CUfilter_mode cfm = fm.value
 *     err = ccuda.cuTexRefSetMipmapFilterMode(hTexRef._ptr[0], cfm)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":25952
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap filtering mode for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmapFilterMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26006
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelBias(hTexRef not None : CUtexref, float bias):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap level bias for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_617cuTexRefSetMipmapLevelBias(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_616cuTexRefSetMipmapLevelBias[] = "cuTexRefSetMipmapLevelBias(CUtexref hTexRef: CUtexref, float bias)\n Sets the mipmap level bias for a texture reference.\n\n    Deprecated\n\n    Specifies the mipmap level bias `bias` to be added to the specified\n    mipmap level when reading memory through the texture reference\n    `hTexRef`.\n\n    Note that this call has no effect if `hTexRef` is not bound to a\n    mipmapped array.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    bias : float\n        Mipmap level bias\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_617cuTexRefSetMipmapLevelBias = {"cuTexRefSetMipmapLevelBias", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_617cuTexRefSetMipmapLevelBias, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_616cuTexRefSetMipmapLevelBias};
static PyObject *__pyx_pw_4cuda_4cuda_617cuTexRefSetMipmapLevelBias(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  float __pyx_v_bias;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetMipmapLevelBias (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_bias,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bias)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapLevelBias", 1, 2, 2, 1); __PYX_ERR(0, 26006, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetMipmapLevelBias") < 0)) __PYX_ERR(0, 26006, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_bias = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_bias == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 26006, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapLevelBias", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26006, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmapLevelBias", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26006, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_616cuTexRefSetMipmapLevelBias(__pyx_self, __pyx_v_hTexRef, __pyx_v_bias);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_616cuTexRefSetMipmapLevelBias(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, float __pyx_v_bias) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__836)
  __Pyx_RefNannySetupContext("cuTexRefSetMipmapLevelBias", 0);
  __Pyx_TraceCall("cuTexRefSetMipmapLevelBias", __pyx_f[0], 26006, 0, __PYX_ERR(0, 26006, __pyx_L1_error));

  /* "cuda/cuda.pyx":26052
 *     cudaBindTextureToMipmappedArray
 *     """
 *     err = ccuda.cuTexRefSetMipmapLevelBias(hTexRef._ptr[0], bias)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetMipmapLevelBias((__pyx_v_hTexRef->_ptr[0]), __pyx_v_bias); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26052, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26053
 *     """
 *     err = ccuda.cuTexRefSetMipmapLevelBias(hTexRef._ptr[0], bias)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26006
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelBias(hTexRef not None : CUtexref, float bias):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap level bias for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmapLevelBias", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26056
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelClamp(hTexRef not None : CUtexref, float minMipmapLevelClamp, float maxMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap min/max mipmap level clamps for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_619cuTexRefSetMipmapLevelClamp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_618cuTexRefSetMipmapLevelClamp[] = "cuTexRefSetMipmapLevelClamp(CUtexref hTexRef: CUtexref, float minMipmapLevelClamp, float maxMipmapLevelClamp)\n Sets the mipmap min/max mipmap level clamps for a texture reference.\n\n    Deprecated\n\n    Specifies the min/max mipmap level clamps, `minMipmapLevelClamp` and\n    `maxMipmapLevelClamp` respectively, to be used when reading memory\n    through the texture reference `hTexRef`.\n\n    Note that this call has no effect if `hTexRef` is not bound to a\n    mipmapped array.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    minMipmapLevelClamp : float\n        Mipmap min level clamp\n    maxMipmapLevelClamp : float\n        Mipmap max level clamp\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_619cuTexRefSetMipmapLevelClamp = {"cuTexRefSetMipmapLevelClamp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_619cuTexRefSetMipmapLevelClamp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_618cuTexRefSetMipmapLevelClamp};
static PyObject *__pyx_pw_4cuda_4cuda_619cuTexRefSetMipmapLevelClamp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  float __pyx_v_minMipmapLevelClamp;
  float __pyx_v_maxMipmapLevelClamp;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetMipmapLevelClamp (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_minMipmapLevelClamp_2,&__pyx_n_s_maxMipmapLevelClamp_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_minMipmapLevelClamp_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapLevelClamp", 1, 3, 3, 1); __PYX_ERR(0, 26056, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxMipmapLevelClamp_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapLevelClamp", 1, 3, 3, 2); __PYX_ERR(0, 26056, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetMipmapLevelClamp") < 0)) __PYX_ERR(0, 26056, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_minMipmapLevelClamp = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_minMipmapLevelClamp == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 26056, __pyx_L3_error)
    __pyx_v_maxMipmapLevelClamp = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_maxMipmapLevelClamp == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 26056, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetMipmapLevelClamp", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26056, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmapLevelClamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26056, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_618cuTexRefSetMipmapLevelClamp(__pyx_self, __pyx_v_hTexRef, __pyx_v_minMipmapLevelClamp, __pyx_v_maxMipmapLevelClamp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_618cuTexRefSetMipmapLevelClamp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, float __pyx_v_minMipmapLevelClamp, float __pyx_v_maxMipmapLevelClamp) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__837)
  __Pyx_RefNannySetupContext("cuTexRefSetMipmapLevelClamp", 0);
  __Pyx_TraceCall("cuTexRefSetMipmapLevelClamp", __pyx_f[0], 26056, 0, __PYX_ERR(0, 26056, __pyx_L1_error));

  /* "cuda/cuda.pyx":26104
 *     cudaBindTextureToMipmappedArray
 *     """
 *     err = ccuda.cuTexRefSetMipmapLevelClamp(hTexRef._ptr[0], minMipmapLevelClamp, maxMipmapLevelClamp)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetMipmapLevelClamp((__pyx_v_hTexRef->_ptr[0]), __pyx_v_minMipmapLevelClamp, __pyx_v_maxMipmapLevelClamp); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26104, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26105
 *     """
 *     err = ccuda.cuTexRefSetMipmapLevelClamp(hTexRef._ptr[0], minMipmapLevelClamp, maxMipmapLevelClamp)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26056
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelClamp(hTexRef not None : CUtexref, float minMipmapLevelClamp, float maxMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap min/max mipmap level clamps for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMipmapLevelClamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26108
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMaxAnisotropy(hTexRef not None : CUtexref, unsigned int maxAniso):             # <<<<<<<<<<<<<<
 *     """ Sets the maximum anisotropy for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_621cuTexRefSetMaxAnisotropy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_620cuTexRefSetMaxAnisotropy[] = "cuTexRefSetMaxAnisotropy(CUtexref hTexRef: CUtexref, unsigned int maxAniso)\n Sets the maximum anisotropy for a texture reference.\n\n    Deprecated\n\n    Specifies the maximum anisotropy `maxAniso` to be used when reading\n    memory through the texture reference `hTexRef`.\n\n    Note that this call has no effect if `hTexRef` is bound to linear\n    memory.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    maxAniso : unsigned int\n        Maximum anisotropy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTextureToArray\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_621cuTexRefSetMaxAnisotropy = {"cuTexRefSetMaxAnisotropy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_621cuTexRefSetMaxAnisotropy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_620cuTexRefSetMaxAnisotropy};
static PyObject *__pyx_pw_4cuda_4cuda_621cuTexRefSetMaxAnisotropy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  unsigned int __pyx_v_maxAniso;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetMaxAnisotropy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_maxAniso,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxAniso)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetMaxAnisotropy", 1, 2, 2, 1); __PYX_ERR(0, 26108, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetMaxAnisotropy") < 0)) __PYX_ERR(0, 26108, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_maxAniso = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_maxAniso == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26108, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetMaxAnisotropy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26108, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMaxAnisotropy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26108, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_620cuTexRefSetMaxAnisotropy(__pyx_self, __pyx_v_hTexRef, __pyx_v_maxAniso);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_620cuTexRefSetMaxAnisotropy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, unsigned int __pyx_v_maxAniso) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__838)
  __Pyx_RefNannySetupContext("cuTexRefSetMaxAnisotropy", 0);
  __Pyx_TraceCall("cuTexRefSetMaxAnisotropy", __pyx_f[0], 26108, 0, __PYX_ERR(0, 26108, __pyx_L1_error));

  /* "cuda/cuda.pyx":26154
 *     cudaBindTextureToMipmappedArray
 *     """
 *     err = ccuda.cuTexRefSetMaxAnisotropy(hTexRef._ptr[0], maxAniso)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetMaxAnisotropy((__pyx_v_hTexRef->_ptr[0]), __pyx_v_maxAniso); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26154, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26155
 *     """
 *     err = ccuda.cuTexRefSetMaxAnisotropy(hTexRef._ptr[0], maxAniso)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26108
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMaxAnisotropy(hTexRef not None : CUtexref, unsigned int maxAniso):             # <<<<<<<<<<<<<<
 *     """ Sets the maximum anisotropy for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetMaxAnisotropy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26158
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetBorderColor(hTexRef not None : CUtexref, float pBorderColor):             # <<<<<<<<<<<<<<
 *     """ Sets the border color for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_623cuTexRefSetBorderColor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_622cuTexRefSetBorderColor[] = "cuTexRefSetBorderColor(CUtexref hTexRef: CUtexref, float pBorderColor)\n Sets the border color for a texture reference.\n\n    Deprecated\n\n    Specifies the value of the RGBA color via the `pBorderColor` to the\n    texture reference `hTexRef`. The color value supports only float type\n    and holds color components in the following sequence: pBorderColor[0]\n    holds 'R' component pBorderColor[1] holds 'G' component pBorderColor[2]\n    holds 'B' component pBorderColor[3] holds 'A' component\n\n    Note that the color values can be set only when the Address mode is set\n    to CU_TR_ADDRESS_MODE_BORDER using cuTexRefSetAddressMode. Applications\n    using integer border color values have to \"reinterpret_cast\" their\n    values to float.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    pBorderColor : float\n        RGBA color\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddressMode\n    cuTexRefGetAddressMode\n    cuTexRefGetBorderColor\n    cudaBindTexture\n    cudaBindTexture2D\n    cudaBindTextureToArray\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_623cuTexRefSetBorderColor = {"cuTexRefSetBorderColor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_623cuTexRefSetBorderColor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_622cuTexRefSetBorderColor};
static PyObject *__pyx_pw_4cuda_4cuda_623cuTexRefSetBorderColor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  float __pyx_v_pBorderColor;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetBorderColor (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_pBorderColor,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pBorderColor)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetBorderColor", 1, 2, 2, 1); __PYX_ERR(0, 26158, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetBorderColor") < 0)) __PYX_ERR(0, 26158, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_pBorderColor = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_pBorderColor == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 26158, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetBorderColor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26158, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetBorderColor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26158, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_622cuTexRefSetBorderColor(__pyx_self, __pyx_v_hTexRef, __pyx_v_pBorderColor);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_622cuTexRefSetBorderColor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, float __pyx_v_pBorderColor) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__839)
  __Pyx_RefNannySetupContext("cuTexRefSetBorderColor", 0);
  __Pyx_TraceCall("cuTexRefSetBorderColor", __pyx_f[0], 26158, 0, __PYX_ERR(0, 26158, __pyx_L1_error));

  /* "cuda/cuda.pyx":26202
 *     cudaBindTextureToMipmappedArray
 *     """
 *     err = ccuda.cuTexRefSetBorderColor(hTexRef._ptr[0], &pBorderColor)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetBorderColor((__pyx_v_hTexRef->_ptr[0]), (&__pyx_v_pBorderColor)); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26202, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26203
 *     """
 *     err = ccuda.cuTexRefSetBorderColor(hTexRef._ptr[0], &pBorderColor)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26158
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetBorderColor(hTexRef not None : CUtexref, float pBorderColor):             # <<<<<<<<<<<<<<
 *     """ Sets the border color for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetBorderColor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26206
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFlags(hTexRef not None : CUtexref, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the flags for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_625cuTexRefSetFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_624cuTexRefSetFlags[] = "cuTexRefSetFlags(CUtexref hTexRef: CUtexref, unsigned int Flags)\n Sets the flags for a texture reference.\n\n    Deprecated\n\n    Specifies optional flags via `Flags` to specify the behavior of data\n    returned through the texture reference `hTexRef`. The valid flags are:\n\n    CU_TRSF_READ_AS_INTEGER, which suppresses the default behavior of\n    having the texture promote integer data to floating point data in the\n    range [0, 1]. Note that texture with 32-bit integer format would not be\n    promoted, regardless of whether or not this flag is specified;\n    CU_TRSF_NORMALIZED_COORDINATES, which suppresses the default behavior\n    of having the texture coordinates range from [0, Dim) where Dim is the\n    width or height of the CUDA array. Instead, the texture coordinates [0,\n    1.0) reference the entire breadth of the array dimension;\n    CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION, which disables any trilinear\n    filtering optimizations. Trilinear optimizations improve texture\n    filtering performance by allowing bilinear filtering on textures in\n    scenarios where it can closely approximate the expected results.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    Flags : unsigned int\n        Optional flags to set\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    cudaBindTexture\n    cudaBindTexture2D\n    cudaBindTextureToArray\n    cudaBindTextureToMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_625cuTexRefSetFlags = {"cuTexRefSetFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_625cuTexRefSetFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_624cuTexRefSetFlags};
static PyObject *__pyx_pw_4cuda_4cuda_625cuTexRefSetFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefSetFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_Flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefSetFlags", 1, 2, 2, 1); __PYX_ERR(0, 26206, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefSetFlags") < 0)) __PYX_ERR(0, 26206, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26206, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefSetFlags", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26206, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26206, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_624cuTexRefSetFlags(__pyx_self, __pyx_v_hTexRef, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_624cuTexRefSetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__840)
  __Pyx_RefNannySetupContext("cuTexRefSetFlags", 0);
  __Pyx_TraceCall("cuTexRefSetFlags", __pyx_f[0], 26206, 0, __PYX_ERR(0, 26206, __pyx_L1_error));

  /* "cuda/cuda.pyx":26264
 *     cudaBindTextureToMipmappedArray
 *     """
 *     err = ccuda.cuTexRefSetFlags(hTexRef._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefSetFlags((__pyx_v_hTexRef->_ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26264, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26265
 *     """
 *     err = ccuda.cuTexRefSetFlags(hTexRef._ptr[0], Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26206
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFlags(hTexRef not None : CUtexref, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the flags for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefSetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26268
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddress(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the address associated with a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_627cuTexRefGetAddress(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_626cuTexRefGetAddress[] = "cuTexRefGetAddress(CUtexref hTexRef: CUtexref)\n Gets the address associated with a texture reference.\n\n    Deprecated\n\n    Returns in `*pdptr` the base address bound to the texture reference\n    `hTexRef`, or returns CUDA_ERROR_INVALID_VALUE if the texture reference\n    is not bound to any device memory range.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pdptr : CUdeviceptr\n        Returned device address\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_627cuTexRefGetAddress = {"cuTexRefGetAddress", (PyCFunction)__pyx_pw_4cuda_4cuda_627cuTexRefGetAddress, METH_O, __pyx_doc_4cuda_4cuda_626cuTexRefGetAddress};
static PyObject *__pyx_pw_4cuda_4cuda_627cuTexRefGetAddress(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetAddress (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26268, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_626cuTexRefGetAddress(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_626cuTexRefGetAddress(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_pdptr = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__841)
  __Pyx_RefNannySetupContext("cuTexRefGetAddress", 0);
  __Pyx_TraceCall("cuTexRefGetAddress", __pyx_f[0], 26268, 0, __PYX_ERR(0, 26268, __pyx_L1_error));

  /* "cuda/cuda.pyx":26308
 *     cuTexRefGetFormat
 *     """
 *     cdef CUdeviceptr pdptr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetAddress(pdptr._ptr, hTexRef._ptr[0])
 *     return (CUresult(err), pdptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pdptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26309
 *     """
 *     cdef CUdeviceptr pdptr = CUdeviceptr()
 *     err = ccuda.cuTexRefGetAddress(pdptr._ptr, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pdptr)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexRefGetAddress(__pyx_v_pdptr->_ptr, (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26309, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":26310
 *     cdef CUdeviceptr pdptr = CUdeviceptr()
 *     err = ccuda.cuTexRefGetAddress(pdptr._ptr, hTexRef._ptr[0])
 *     return (CUresult(err), pdptr)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pdptr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pdptr));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pdptr));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26268
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddress(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the address associated with a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetAddress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pdptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26313
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the array bound to a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_629cuTexRefGetArray(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_628cuTexRefGetArray[] = "cuTexRefGetArray(CUtexref hTexRef: CUtexref)\n Gets the array bound to a texture reference.\n\n    Deprecated\n\n    Returns in `*phArray` the CUDA array bound to the texture reference\n    `hTexRef`, or returns CUDA_ERROR_INVALID_VALUE if the texture reference\n    is not bound to any CUDA array.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    phArray : CUarray\n        Returned array\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_629cuTexRefGetArray = {"cuTexRefGetArray", (PyCFunction)__pyx_pw_4cuda_4cuda_629cuTexRefGetArray, METH_O, __pyx_doc_4cuda_4cuda_628cuTexRefGetArray};
static PyObject *__pyx_pw_4cuda_4cuda_629cuTexRefGetArray(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26313, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_628cuTexRefGetArray(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_628cuTexRefGetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_phArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__842)
  __Pyx_RefNannySetupContext("cuTexRefGetArray", 0);
  __Pyx_TraceCall("cuTexRefGetArray", __pyx_f[0], 26313, 0, __PYX_ERR(0, 26313, __pyx_L1_error));

  /* "cuda/cuda.pyx":26353
 *     cuTexRefGetFormat
 *     """
 *     cdef CUarray phArray = CUarray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetArray(phArray._ptr, hTexRef._ptr[0])
 *     return (CUresult(err), phArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26354
 *     """
 *     cdef CUarray phArray = CUarray()
 *     err = ccuda.cuTexRefGetArray(phArray._ptr, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexRefGetArray(__pyx_v_phArray->_ptr, (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26354, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":26355
 *     cdef CUarray phArray = CUarray()
 *     err = ccuda.cuTexRefGetArray(phArray._ptr, hTexRef._ptr[0])
 *     return (CUresult(err), phArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26313
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the array bound to a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26358
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmappedArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmapped array bound to a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_631cuTexRefGetMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_630cuTexRefGetMipmappedArray[] = "cuTexRefGetMipmappedArray(CUtexref hTexRef: CUtexref)\n Gets the mipmapped array bound to a texture reference.\n\n    Deprecated\n\n    Returns in `*phMipmappedArray` the CUDA mipmapped array bound to the\n    texture reference `hTexRef`, or returns CUDA_ERROR_INVALID_VALUE if the\n    texture reference is not bound to any CUDA mipmapped array.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    phMipmappedArray : CUmipmappedArray\n        Returned mipmapped array\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_631cuTexRefGetMipmappedArray = {"cuTexRefGetMipmappedArray", (PyCFunction)__pyx_pw_4cuda_4cuda_631cuTexRefGetMipmappedArray, METH_O, __pyx_doc_4cuda_4cuda_630cuTexRefGetMipmappedArray};
static PyObject *__pyx_pw_4cuda_4cuda_631cuTexRefGetMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetMipmappedArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26358, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_630cuTexRefGetMipmappedArray(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_630cuTexRefGetMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_phMipmappedArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__843)
  __Pyx_RefNannySetupContext("cuTexRefGetMipmappedArray", 0);
  __Pyx_TraceCall("cuTexRefGetMipmappedArray", __pyx_f[0], 26358, 0, __PYX_ERR(0, 26358, __pyx_L1_error));

  /* "cuda/cuda.pyx":26398
 *     cuTexRefGetFormat
 *     """
 *     cdef CUmipmappedArray phMipmappedArray = CUmipmappedArray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetMipmappedArray(phMipmappedArray._ptr, hTexRef._ptr[0])
 *     return (CUresult(err), phMipmappedArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26399
 *     """
 *     cdef CUmipmappedArray phMipmappedArray = CUmipmappedArray()
 *     err = ccuda.cuTexRefGetMipmappedArray(phMipmappedArray._ptr, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phMipmappedArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexRefGetMipmappedArray(__pyx_v_phMipmappedArray->_ptr, (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26399, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":26400
 *     cdef CUmipmappedArray phMipmappedArray = CUmipmappedArray()
 *     err = ccuda.cuTexRefGetMipmappedArray(phMipmappedArray._ptr, hTexRef._ptr[0])
 *     return (CUresult(err), phMipmappedArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phMipmappedArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phMipmappedArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phMipmappedArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26358
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmappedArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmapped array bound to a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetMipmappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phMipmappedArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26403
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddressMode(hTexRef not None : CUtexref, int dim):             # <<<<<<<<<<<<<<
 *     """ Gets the addressing mode used by a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_633cuTexRefGetAddressMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_632cuTexRefGetAddressMode[] = "cuTexRefGetAddressMode(CUtexref hTexRef: CUtexref, int dim)\n Gets the addressing mode used by a texture reference.\n\n    Deprecated\n\n    Returns in `*pam` the addressing mode corresponding to the dimension\n    `dim` of the texture reference `hTexRef`. Currently, the only valid\n    value for `dim` are 0 and 1.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n    dim : int\n        Dimension\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pam : CUaddress_mode\n        Returned addressing mode\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_633cuTexRefGetAddressMode = {"cuTexRefGetAddressMode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_633cuTexRefGetAddressMode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_632cuTexRefGetAddressMode};
static PyObject *__pyx_pw_4cuda_4cuda_633cuTexRefGetAddressMode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef = 0;
  int __pyx_v_dim;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetAddressMode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hTexRef,&__pyx_n_s_dim,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hTexRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexRefGetAddressMode", 1, 2, 2, 1); __PYX_ERR(0, 26403, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexRefGetAddressMode") < 0)) __PYX_ERR(0, 26403, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_hTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)values[0]);
    __pyx_v_dim = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_dim == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26403, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexRefGetAddressMode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26403, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetAddressMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26403, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_632cuTexRefGetAddressMode(__pyx_self, __pyx_v_hTexRef, __pyx_v_dim);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_632cuTexRefGetAddressMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef, int __pyx_v_dim) {
  __pyx_t_4cuda_5ccuda_CUaddress_mode __pyx_v_pam;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__844)
  __Pyx_RefNannySetupContext("cuTexRefGetAddressMode", 0);
  __Pyx_TraceCall("cuTexRefGetAddressMode", __pyx_f[0], 26403, 0, __PYX_ERR(0, 26403, __pyx_L1_error));

  /* "cuda/cuda.pyx":26446
 *     """
 *     cdef ccuda.CUaddress_mode pam
 *     err = ccuda.cuTexRefGetAddressMode(&pam, hTexRef._ptr[0], dim)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUaddress_mode(pam))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetAddressMode((&__pyx_v_pam), (__pyx_v_hTexRef->_ptr[0]), __pyx_v_dim); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26446, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26447
 *     cdef ccuda.CUaddress_mode pam
 *     err = ccuda.cuTexRefGetAddressMode(&pam, hTexRef._ptr[0], dim)
 *     return (CUresult(err), CUaddress_mode(pam))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUaddress_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_v_pam); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26403
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddressMode(hTexRef not None : CUtexref, int dim):             # <<<<<<<<<<<<<<
 *     """ Gets the addressing mode used by a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetAddressMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26450
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the filter-mode used by a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_635cuTexRefGetFilterMode(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_634cuTexRefGetFilterMode[] = "cuTexRefGetFilterMode(CUtexref hTexRef: CUtexref)\n Gets the filter-mode used by a texture reference.\n\n    Deprecated\n\n    Returns in `*pfm` the filtering mode of the texture reference\n    `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pfm : CUfilter_mode\n        Returned filtering mode\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_635cuTexRefGetFilterMode = {"cuTexRefGetFilterMode", (PyCFunction)__pyx_pw_4cuda_4cuda_635cuTexRefGetFilterMode, METH_O, __pyx_doc_4cuda_4cuda_634cuTexRefGetFilterMode};
static PyObject *__pyx_pw_4cuda_4cuda_635cuTexRefGetFilterMode(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetFilterMode (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26450, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_634cuTexRefGetFilterMode(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_634cuTexRefGetFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_v_pfm;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__845)
  __Pyx_RefNannySetupContext("cuTexRefGetFilterMode", 0);
  __Pyx_TraceCall("cuTexRefGetFilterMode", __pyx_f[0], 26450, 0, __PYX_ERR(0, 26450, __pyx_L1_error));

  /* "cuda/cuda.pyx":26490
 *     """
 *     cdef ccuda.CUfilter_mode pfm
 *     err = ccuda.cuTexRefGetFilterMode(&pfm, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUfilter_mode(pfm))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetFilterMode((&__pyx_v_pfm), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26490, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26491
 *     cdef ccuda.CUfilter_mode pfm
 *     err = ccuda.cuTexRefGetFilterMode(&pfm, hTexRef._ptr[0])
 *     return (CUresult(err), CUfilter_mode(pfm))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUfilter_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_v_pfm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26450
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the filter-mode used by a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetFilterMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26494
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFormat(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the format used by a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_637cuTexRefGetFormat(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_636cuTexRefGetFormat[] = "cuTexRefGetFormat(CUtexref hTexRef: CUtexref)\n Gets the format used by a texture reference.\n\n    Deprecated\n\n    Returns in `*pFormat` and `*pNumChannels` the format and number of\n    components of the CUDA array bound to the texture reference `hTexRef`.\n    If `pFormat` or `pNumChannels` is NULL, it will be ignored.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pFormat : CUarray_format\n        Returned format\n    pNumChannels : int\n        Returned number of components\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_637cuTexRefGetFormat = {"cuTexRefGetFormat", (PyCFunction)__pyx_pw_4cuda_4cuda_637cuTexRefGetFormat, METH_O, __pyx_doc_4cuda_4cuda_636cuTexRefGetFormat};
static PyObject *__pyx_pw_4cuda_4cuda_637cuTexRefGetFormat(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetFormat (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26494, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_636cuTexRefGetFormat(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_636cuTexRefGetFormat(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  __pyx_t_4cuda_5ccuda_CUarray_format __pyx_v_pFormat;
  int __pyx_v_pNumChannels;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__846)
  __Pyx_RefNannySetupContext("cuTexRefGetFormat", 0);
  __Pyx_TraceCall("cuTexRefGetFormat", __pyx_f[0], 26494, 0, __PYX_ERR(0, 26494, __pyx_L1_error));

  /* "cuda/cuda.pyx":26537
 *     """
 *     cdef ccuda.CUarray_format pFormat
 *     cdef int pNumChannels = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetFormat(&pFormat, &pNumChannels, hTexRef._ptr[0])
 *     return (CUresult(err), CUarray_format(pFormat), pNumChannels)
 */
  __pyx_v_pNumChannels = 0;

  /* "cuda/cuda.pyx":26538
 *     cdef ccuda.CUarray_format pFormat
 *     cdef int pNumChannels = 0
 *     err = ccuda.cuTexRefGetFormat(&pFormat, &pNumChannels, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUarray_format(pFormat), pNumChannels)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetFormat((&__pyx_v_pFormat), (&__pyx_v_pNumChannels), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26538, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26539
 *     cdef int pNumChannels = 0
 *     err = ccuda.cuTexRefGetFormat(&pFormat, &pNumChannels, hTexRef._ptr[0])
 *     return (CUresult(err), CUarray_format(pFormat), pNumChannels)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_v_pFormat); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pNumChannels); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26494
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFormat(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the format used by a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetFormat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26542
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap filtering mode for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_639cuTexRefGetMipmapFilterMode(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_638cuTexRefGetMipmapFilterMode[] = "cuTexRefGetMipmapFilterMode(CUtexref hTexRef: CUtexref)\n Gets the mipmap filtering mode for a texture reference.\n\n    Deprecated\n\n    Returns the mipmap filtering mode in `pfm` that's used when reading\n    memory through the texture reference `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pfm : CUfilter_mode\n        Returned mipmap filtering mode\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_639cuTexRefGetMipmapFilterMode = {"cuTexRefGetMipmapFilterMode", (PyCFunction)__pyx_pw_4cuda_4cuda_639cuTexRefGetMipmapFilterMode, METH_O, __pyx_doc_4cuda_4cuda_638cuTexRefGetMipmapFilterMode};
static PyObject *__pyx_pw_4cuda_4cuda_639cuTexRefGetMipmapFilterMode(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetMipmapFilterMode (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26542, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_638cuTexRefGetMipmapFilterMode(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_638cuTexRefGetMipmapFilterMode(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  __pyx_t_4cuda_5ccuda_CUfilter_mode __pyx_v_pfm;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__847)
  __Pyx_RefNannySetupContext("cuTexRefGetMipmapFilterMode", 0);
  __Pyx_TraceCall("cuTexRefGetMipmapFilterMode", __pyx_f[0], 26542, 0, __PYX_ERR(0, 26542, __pyx_L1_error));

  /* "cuda/cuda.pyx":26582
 *     """
 *     cdef ccuda.CUfilter_mode pfm
 *     err = ccuda.cuTexRefGetMipmapFilterMode(&pfm, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), CUfilter_mode(pfm))
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetMipmapFilterMode((&__pyx_v_pfm), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26582, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26583
 *     cdef ccuda.CUfilter_mode pfm
 *     err = ccuda.cuTexRefGetMipmapFilterMode(&pfm, hTexRef._ptr[0])
 *     return (CUresult(err), CUfilter_mode(pfm))             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUfilter_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_v_pfm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26542
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap filtering mode for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetMipmapFilterMode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26586
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelBias(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap level bias for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_641cuTexRefGetMipmapLevelBias(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_640cuTexRefGetMipmapLevelBias[] = "cuTexRefGetMipmapLevelBias(CUtexref hTexRef: CUtexref)\n Gets the mipmap level bias for a texture reference.\n\n    Deprecated\n\n    Returns the mipmap level bias in `pBias` that's added to the specified\n    mipmap level when reading memory through the texture reference\n    `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pbias : float\n        Returned mipmap level bias\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_641cuTexRefGetMipmapLevelBias = {"cuTexRefGetMipmapLevelBias", (PyCFunction)__pyx_pw_4cuda_4cuda_641cuTexRefGetMipmapLevelBias, METH_O, __pyx_doc_4cuda_4cuda_640cuTexRefGetMipmapLevelBias};
static PyObject *__pyx_pw_4cuda_4cuda_641cuTexRefGetMipmapLevelBias(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetMipmapLevelBias (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26586, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_640cuTexRefGetMipmapLevelBias(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_640cuTexRefGetMipmapLevelBias(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  float __pyx_v_pbias;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__848)
  __Pyx_RefNannySetupContext("cuTexRefGetMipmapLevelBias", 0);
  __Pyx_TraceCall("cuTexRefGetMipmapLevelBias", __pyx_f[0], 26586, 0, __PYX_ERR(0, 26586, __pyx_L1_error));

  /* "cuda/cuda.pyx":26626
 *     cuTexRefGetFormat
 *     """
 *     cdef float pbias = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetMipmapLevelBias(&pbias, hTexRef._ptr[0])
 *     return (CUresult(err), pbias)
 */
  __pyx_v_pbias = 0.0;

  /* "cuda/cuda.pyx":26627
 *     """
 *     cdef float pbias = 0
 *     err = ccuda.cuTexRefGetMipmapLevelBias(&pbias, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pbias)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetMipmapLevelBias((&__pyx_v_pbias), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26627, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26628
 *     cdef float pbias = 0
 *     err = ccuda.cuTexRefGetMipmapLevelBias(&pbias, hTexRef._ptr[0])
 *     return (CUresult(err), pbias)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pbias); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26586
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelBias(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap level bias for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetMipmapLevelBias", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26631
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelClamp(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the min/max mipmap level clamps for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_643cuTexRefGetMipmapLevelClamp(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_642cuTexRefGetMipmapLevelClamp[] = "cuTexRefGetMipmapLevelClamp(CUtexref hTexRef: CUtexref)\n Gets the min/max mipmap level clamps for a texture reference.\n\n    Deprecated\n\n    Returns the min/max mipmap level clamps in `pminMipmapLevelClamp` and\n    `pmaxMipmapLevelClamp` that's used when reading memory through the\n    texture reference `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pminMipmapLevelClamp : float\n        Returned mipmap min level clamp\n    pmaxMipmapLevelClamp : float\n        Returned mipmap max level clamp\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_643cuTexRefGetMipmapLevelClamp = {"cuTexRefGetMipmapLevelClamp", (PyCFunction)__pyx_pw_4cuda_4cuda_643cuTexRefGetMipmapLevelClamp, METH_O, __pyx_doc_4cuda_4cuda_642cuTexRefGetMipmapLevelClamp};
static PyObject *__pyx_pw_4cuda_4cuda_643cuTexRefGetMipmapLevelClamp(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetMipmapLevelClamp (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26631, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_642cuTexRefGetMipmapLevelClamp(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_642cuTexRefGetMipmapLevelClamp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  float __pyx_v_pminMipmapLevelClamp;
  float __pyx_v_pmaxMipmapLevelClamp;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__849)
  __Pyx_RefNannySetupContext("cuTexRefGetMipmapLevelClamp", 0);
  __Pyx_TraceCall("cuTexRefGetMipmapLevelClamp", __pyx_f[0], 26631, 0, __PYX_ERR(0, 26631, __pyx_L1_error));

  /* "cuda/cuda.pyx":26673
 *     cuTexRefGetFormat
 *     """
 *     cdef float pminMipmapLevelClamp = 0             # <<<<<<<<<<<<<<
 *     cdef float pmaxMipmapLevelClamp = 0
 *     err = ccuda.cuTexRefGetMipmapLevelClamp(&pminMipmapLevelClamp, &pmaxMipmapLevelClamp, hTexRef._ptr[0])
 */
  __pyx_v_pminMipmapLevelClamp = 0.0;

  /* "cuda/cuda.pyx":26674
 *     """
 *     cdef float pminMipmapLevelClamp = 0
 *     cdef float pmaxMipmapLevelClamp = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetMipmapLevelClamp(&pminMipmapLevelClamp, &pmaxMipmapLevelClamp, hTexRef._ptr[0])
 *     return (CUresult(err), pminMipmapLevelClamp, pmaxMipmapLevelClamp)
 */
  __pyx_v_pmaxMipmapLevelClamp = 0.0;

  /* "cuda/cuda.pyx":26675
 *     cdef float pminMipmapLevelClamp = 0
 *     cdef float pmaxMipmapLevelClamp = 0
 *     err = ccuda.cuTexRefGetMipmapLevelClamp(&pminMipmapLevelClamp, &pmaxMipmapLevelClamp, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pminMipmapLevelClamp, pmaxMipmapLevelClamp)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetMipmapLevelClamp((&__pyx_v_pminMipmapLevelClamp), (&__pyx_v_pmaxMipmapLevelClamp), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26675, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26676
 *     cdef float pmaxMipmapLevelClamp = 0
 *     err = ccuda.cuTexRefGetMipmapLevelClamp(&pminMipmapLevelClamp, &pmaxMipmapLevelClamp, hTexRef._ptr[0])
 *     return (CUresult(err), pminMipmapLevelClamp, pmaxMipmapLevelClamp)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pminMipmapLevelClamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_pmaxMipmapLevelClamp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 26676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26631
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelClamp(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the min/max mipmap level clamps for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetMipmapLevelClamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26679
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMaxAnisotropy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the maximum anisotropy for a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_645cuTexRefGetMaxAnisotropy(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_644cuTexRefGetMaxAnisotropy[] = "cuTexRefGetMaxAnisotropy(CUtexref hTexRef: CUtexref)\n Gets the maximum anisotropy for a texture reference.\n\n    Deprecated\n\n    Returns the maximum anisotropy in `pmaxAniso` that's used when reading\n    memory through the texture reference `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pmaxAniso : int\n        Returned maximum anisotropy\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFlags\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_645cuTexRefGetMaxAnisotropy = {"cuTexRefGetMaxAnisotropy", (PyCFunction)__pyx_pw_4cuda_4cuda_645cuTexRefGetMaxAnisotropy, METH_O, __pyx_doc_4cuda_4cuda_644cuTexRefGetMaxAnisotropy};
static PyObject *__pyx_pw_4cuda_4cuda_645cuTexRefGetMaxAnisotropy(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetMaxAnisotropy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26679, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_644cuTexRefGetMaxAnisotropy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_644cuTexRefGetMaxAnisotropy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  int __pyx_v_pmaxAniso;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__850)
  __Pyx_RefNannySetupContext("cuTexRefGetMaxAnisotropy", 0);
  __Pyx_TraceCall("cuTexRefGetMaxAnisotropy", __pyx_f[0], 26679, 0, __PYX_ERR(0, 26679, __pyx_L1_error));

  /* "cuda/cuda.pyx":26718
 *     cuTexRefGetFormat
 *     """
 *     cdef int pmaxAniso = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetMaxAnisotropy(&pmaxAniso, hTexRef._ptr[0])
 *     return (CUresult(err), pmaxAniso)
 */
  __pyx_v_pmaxAniso = 0;

  /* "cuda/cuda.pyx":26719
 *     """
 *     cdef int pmaxAniso = 0
 *     err = ccuda.cuTexRefGetMaxAnisotropy(&pmaxAniso, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pmaxAniso)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetMaxAnisotropy((&__pyx_v_pmaxAniso), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26719, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26720
 *     cdef int pmaxAniso = 0
 *     err = ccuda.cuTexRefGetMaxAnisotropy(&pmaxAniso, hTexRef._ptr[0])
 *     return (CUresult(err), pmaxAniso)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_pmaxAniso); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26679
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMaxAnisotropy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the maximum anisotropy for a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetMaxAnisotropy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26723
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetBorderColor(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the border color used by a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_647cuTexRefGetBorderColor(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_646cuTexRefGetBorderColor[] = "cuTexRefGetBorderColor(CUtexref hTexRef: CUtexref)\n Gets the border color used by a texture reference.\n\n    Deprecated\n\n    Returns in `pBorderColor`, values of the RGBA color used by the texture\n    reference `hTexRef`. The color value is of type float and holds color\n    components in the following sequence: pBorderColor[0] holds 'R'\n    component pBorderColor[1] holds 'G' component pBorderColor[2] holds 'B'\n    component pBorderColor[3] holds 'A' component\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pBorderColor : float\n        Returned Type and Value of RGBA color\n\n    See Also\n    --------\n    cuTexRefSetAddressMode\n    cuTexRefSetBorderColor\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_647cuTexRefGetBorderColor = {"cuTexRefGetBorderColor", (PyCFunction)__pyx_pw_4cuda_4cuda_647cuTexRefGetBorderColor, METH_O, __pyx_doc_4cuda_4cuda_646cuTexRefGetBorderColor};
static PyObject *__pyx_pw_4cuda_4cuda_647cuTexRefGetBorderColor(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetBorderColor (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26723, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_646cuTexRefGetBorderColor(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_646cuTexRefGetBorderColor(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  float __pyx_v_pBorderColor;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__851)
  __Pyx_RefNannySetupContext("cuTexRefGetBorderColor", 0);
  __Pyx_TraceCall("cuTexRefGetBorderColor", __pyx_f[0], 26723, 0, __PYX_ERR(0, 26723, __pyx_L1_error));

  /* "cuda/cuda.pyx":26755
 *     cuTexRefSetBorderColor
 *     """
 *     cdef float pBorderColor = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetBorderColor(&pBorderColor, hTexRef._ptr[0])
 *     return (CUresult(err), pBorderColor)
 */
  __pyx_v_pBorderColor = 0.0;

  /* "cuda/cuda.pyx":26756
 *     """
 *     cdef float pBorderColor = 0
 *     err = ccuda.cuTexRefGetBorderColor(&pBorderColor, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pBorderColor)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetBorderColor((&__pyx_v_pBorderColor), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26756, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26757
 *     cdef float pBorderColor = 0
 *     err = ccuda.cuTexRefGetBorderColor(&pBorderColor, hTexRef._ptr[0])
 *     return (CUresult(err), pBorderColor)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pBorderColor); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26723
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetBorderColor(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the border color used by a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetBorderColor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26760
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFlags(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the flags used by a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_649cuTexRefGetFlags(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_648cuTexRefGetFlags[] = "cuTexRefGetFlags(CUtexref hTexRef: CUtexref)\n Gets the flags used by a texture reference.\n\n    Deprecated\n\n    Returns in `*pFlags` the flags of the texture reference `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pFlags : unsigned int\n        Returned flags\n\n    See Also\n    --------\n    cuTexRefSetAddress\n    cuTexRefSetAddress2D\n    cuTexRefSetAddressMode\n    cuTexRefSetArray\n    cuTexRefSetFilterMode\n    cuTexRefSetFlags\n    cuTexRefSetFormat\n    cuTexRefGetAddress\n    cuTexRefGetAddressMode\n    cuTexRefGetArray\n    cuTexRefGetFilterMode\n    cuTexRefGetFormat\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_649cuTexRefGetFlags = {"cuTexRefGetFlags", (PyCFunction)__pyx_pw_4cuda_4cuda_649cuTexRefGetFlags, METH_O, __pyx_doc_4cuda_4cuda_648cuTexRefGetFlags};
static PyObject *__pyx_pw_4cuda_4cuda_649cuTexRefGetFlags(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefGetFlags (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26760, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_648cuTexRefGetFlags(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_648cuTexRefGetFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  unsigned int __pyx_v_pFlags;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__852)
  __Pyx_RefNannySetupContext("cuTexRefGetFlags", 0);
  __Pyx_TraceCall("cuTexRefGetFlags", __pyx_f[0], 26760, 0, __PYX_ERR(0, 26760, __pyx_L1_error));

  /* "cuda/cuda.pyx":26798
 *     cuTexRefGetFormat
 *     """
 *     cdef unsigned int pFlags = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefGetFlags(&pFlags, hTexRef._ptr[0])
 *     return (CUresult(err), pFlags)
 */
  __pyx_v_pFlags = 0;

  /* "cuda/cuda.pyx":26799
 *     """
 *     cdef unsigned int pFlags = 0
 *     err = ccuda.cuTexRefGetFlags(&pFlags, hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pFlags)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefGetFlags((&__pyx_v_pFlags), (__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26799, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26800
 *     cdef unsigned int pFlags = 0
 *     err = ccuda.cuTexRefGetFlags(&pFlags, hTexRef._ptr[0])
 *     return (CUresult(err), pFlags)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_pFlags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26760
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFlags(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the flags used by a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefGetFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26803
 * 
 * @cython.embedsignature(True)
 * def cuTexRefCreate():             # <<<<<<<<<<<<<<
 *     """ Creates a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_651cuTexRefCreate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cuda_4cuda_650cuTexRefCreate[] = "cuTexRefCreate()\n Creates a texture reference.\n\n    Deprecated\n\n    Creates a texture reference and returns its handle in `*pTexRef`. Once\n    created, the application must call cuTexRefSetArray() or\n    cuTexRefSetAddress() to associate the reference with allocated memory.\n    Other texture reference functions are used to specify the format and\n    interpretation (addressing, filtering, etc.) to be used when the memory\n    is read through this texture reference.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pTexRef : CUtexref\n        Returned texture reference\n\n    See Also\n    --------\n    cuTexRefDestroy\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_651cuTexRefCreate = {"cuTexRefCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_651cuTexRefCreate, METH_NOARGS, __pyx_doc_4cuda_4cuda_650cuTexRefCreate};
static PyObject *__pyx_pw_4cuda_4cuda_651cuTexRefCreate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefCreate (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_650cuTexRefCreate(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_650cuTexRefCreate(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_pTexRef = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__853)
  __Pyx_RefNannySetupContext("cuTexRefCreate", 0);
  __Pyx_TraceCall("cuTexRefCreate", __pyx_f[0], 26803, 0, __PYX_ERR(0, 26803, __pyx_L1_error));

  /* "cuda/cuda.pyx":26830
 *     cuTexRefDestroy
 *     """
 *     cdef CUtexref pTexRef = CUtexref()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexRefCreate(pTexRef._ptr)
 *     return (CUresult(err), pTexRef)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexref)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pTexRef = ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26831
 *     """
 *     cdef CUtexref pTexRef = CUtexref()
 *     err = ccuda.cuTexRefCreate(pTexRef._ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pTexRef)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexRefCreate(__pyx_v_pTexRef->_ptr); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26831, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":26832
 *     cdef CUtexref pTexRef = CUtexref()
 *     err = ccuda.cuTexRefCreate(pTexRef._ptr)
 *     return (CUresult(err), pTexRef)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pTexRef));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pTexRef));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pTexRef));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26803
 * 
 * @cython.embedsignature(True)
 * def cuTexRefCreate():             # <<<<<<<<<<<<<<
 *     """ Creates a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pTexRef);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26835
 * 
 * @cython.embedsignature(True)
 * def cuTexRefDestroy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_653cuTexRefDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_652cuTexRefDestroy[] = "cuTexRefDestroy(CUtexref hTexRef: CUtexref)\n Destroys a texture reference.\n\n    Deprecated\n\n    Destroys the texture reference specified by `hTexRef`.\n\n    Parameters\n    ----------\n    hTexRef : CUtexref\n        Texture reference to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexRefCreate\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_653cuTexRefDestroy = {"cuTexRefDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_653cuTexRefDestroy, METH_O, __pyx_doc_4cuda_4cuda_652cuTexRefDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_653cuTexRefDestroy(PyObject *__pyx_self, PyObject *__pyx_v_hTexRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexRefDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hTexRef), __pyx_ptype_4cuda_4cuda_CUtexref, 0, "hTexRef", 0))) __PYX_ERR(0, 26835, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_652cuTexRefDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexref *)__pyx_v_hTexRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_652cuTexRefDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexref *__pyx_v_hTexRef) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__854)
  __Pyx_RefNannySetupContext("cuTexRefDestroy", 0);
  __Pyx_TraceCall("cuTexRefDestroy", __pyx_f[0], 26835, 0, __PYX_ERR(0, 26835, __pyx_L1_error));

  /* "cuda/cuda.pyx":26862
 *     cuTexRefCreate
 *     """
 *     err = ccuda.cuTexRefDestroy(hTexRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexRefDestroy((__pyx_v_hTexRef->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26862, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26863
 *     """
 *     err = ccuda.cuTexRefDestroy(hTexRef._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26835
 * 
 * @cython.embedsignature(True)
 * def cuTexRefDestroy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexRefDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26866
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefSetArray(hSurfRef not None : CUsurfref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the CUDA array for a surface reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_655cuSurfRefSetArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_654cuSurfRefSetArray[] = "cuSurfRefSetArray(CUsurfref hSurfRef: CUsurfref, CUarray hArray: CUarray, unsigned int Flags)\n Sets the CUDA array for a surface reference.\n\n    Deprecated\n\n    Sets the CUDA array `hArray` to be read and written by the surface\n    reference `hSurfRef`. Any previous CUDA array state associated with the\n    surface reference is superseded by this function. `Flags` must be set\n    to 0. The CUDA_ARRAY3D_SURFACE_LDST flag must have been set for the\n    CUDA array. Any CUDA array previously bound to `hSurfRef` is unbound.\n\n    Parameters\n    ----------\n    hSurfRef : CUsurfref\n        Surface reference handle\n    hArray : CUarray\n        CUDA array handle\n    Flags : unsigned int\n        set to 0\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuModuleGetSurfRef\n    cuSurfRefGetArray\n    cudaBindSurfaceToArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_655cuSurfRefSetArray = {"cuSurfRefSetArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_655cuSurfRefSetArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_654cuSurfRefSetArray};
static PyObject *__pyx_pw_4cuda_4cuda_655cuSurfRefSetArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_hSurfRef = 0;
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuSurfRefSetArray (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hSurfRef,&__pyx_n_s_hArray_2,&__pyx_n_s_Flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hSurfRef)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hArray_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuSurfRefSetArray", 1, 3, 3, 1); __PYX_ERR(0, 26866, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuSurfRefSetArray", 1, 3, 3, 2); __PYX_ERR(0, 26866, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuSurfRefSetArray") < 0)) __PYX_ERR(0, 26866, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_hSurfRef = ((struct __pyx_obj_4cuda_4cuda_CUsurfref *)values[0]);
    __pyx_v_hArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)values[1]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26866, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuSurfRefSetArray", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26866, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuSurfRefSetArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hSurfRef), __pyx_ptype_4cuda_4cuda_CUsurfref, 0, "hSurfRef", 0))) __PYX_ERR(0, 26866, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hArray), __pyx_ptype_4cuda_4cuda_CUarray, 0, "hArray", 0))) __PYX_ERR(0, 26866, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_654cuSurfRefSetArray(__pyx_self, __pyx_v_hSurfRef, __pyx_v_hArray, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_654cuSurfRefSetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_hSurfRef, struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_hArray, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__855)
  __Pyx_RefNannySetupContext("cuSurfRefSetArray", 0);
  __Pyx_TraceCall("cuSurfRefSetArray", __pyx_f[0], 26866, 0, __PYX_ERR(0, 26866, __pyx_L1_error));

  /* "cuda/cuda.pyx":26903
 *     cudaBindSurfaceToArray
 *     """
 *     err = ccuda.cuSurfRefSetArray(hSurfRef._ptr[0], hArray._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuSurfRefSetArray((__pyx_v_hSurfRef->_ptr[0]), (__pyx_v_hArray->_ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26903, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":26904
 *     """
 *     err = ccuda.cuSurfRefSetArray(hSurfRef._ptr[0], hArray._ptr[0], Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26866
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefSetArray(hSurfRef not None : CUsurfref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the CUDA array for a surface reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuSurfRefSetArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26907
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefGetArray(hSurfRef not None : CUsurfref):             # <<<<<<<<<<<<<<
 *     """ Passes back the CUDA array bound to a surface reference.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_657cuSurfRefGetArray(PyObject *__pyx_self, PyObject *__pyx_v_hSurfRef); /*proto*/
static char __pyx_doc_4cuda_4cuda_656cuSurfRefGetArray[] = "cuSurfRefGetArray(CUsurfref hSurfRef: CUsurfref)\n Passes back the CUDA array bound to a surface reference.\n\n    Deprecated\n\n    Returns in `*phArray` the CUDA array bound to the surface reference\n    `hSurfRef`, or returns CUDA_ERROR_INVALID_VALUE if the surface\n    reference is not bound to any CUDA array.\n\n    Parameters\n    ----------\n    hSurfRef : CUsurfref\n        Surface reference handle\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    phArray : CUarray\n        Surface reference handle\n\n    See Also\n    --------\n    cuModuleGetSurfRef\n    cuSurfRefSetArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_657cuSurfRefGetArray = {"cuSurfRefGetArray", (PyCFunction)__pyx_pw_4cuda_4cuda_657cuSurfRefGetArray, METH_O, __pyx_doc_4cuda_4cuda_656cuSurfRefGetArray};
static PyObject *__pyx_pw_4cuda_4cuda_657cuSurfRefGetArray(PyObject *__pyx_self, PyObject *__pyx_v_hSurfRef) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuSurfRefGetArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hSurfRef), __pyx_ptype_4cuda_4cuda_CUsurfref, 0, "hSurfRef", 0))) __PYX_ERR(0, 26907, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_656cuSurfRefGetArray(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUsurfref *)__pyx_v_hSurfRef));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_656cuSurfRefGetArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfref *__pyx_v_hSurfRef) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_phArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__856)
  __Pyx_RefNannySetupContext("cuSurfRefGetArray", 0);
  __Pyx_TraceCall("cuSurfRefGetArray", __pyx_f[0], 26907, 0, __PYX_ERR(0, 26907, __pyx_L1_error));

  /* "cuda/cuda.pyx":26937
 *     cuSurfRefSetArray
 *     """
 *     cdef CUarray phArray = CUarray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuSurfRefGetArray(phArray._ptr, hSurfRef._ptr[0])
 *     return (CUresult(err), phArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_phArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26938
 *     """
 *     cdef CUarray phArray = CUarray()
 *     err = ccuda.cuSurfRefGetArray(phArray._ptr, hSurfRef._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), phArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuSurfRefGetArray(__pyx_v_phArray->_ptr, (__pyx_v_hSurfRef->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 26938, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":26939
 *     cdef CUarray phArray = CUarray()
 *     err = ccuda.cuSurfRefGetArray(phArray._ptr, hSurfRef._ptr[0])
 *     return (CUresult(err), phArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_phArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_phArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_phArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26907
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefGetArray(hSurfRef not None : CUsurfref):             # <<<<<<<<<<<<<<
 *     """ Passes back the CUDA array bound to a surface reference.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuSurfRefGetArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_phArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":26942
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectCreate(pResDesc : CUDA_RESOURCE_DESC, pTexDesc : CUDA_TEXTURE_DESC, pResViewDesc : CUDA_RESOURCE_VIEW_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a texture object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_659cuTexObjectCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_658cuTexObjectCreate[] = "cuTexObjectCreate(CUDA_RESOURCE_DESC pResDesc: CUDA_RESOURCE_DESC, CUDA_TEXTURE_DESC pTexDesc: CUDA_TEXTURE_DESC, CUDA_RESOURCE_VIEW_DESC pResViewDesc: CUDA_RESOURCE_VIEW_DESC)\n Creates a texture object.\n\n    Creates a texture object and returns it in `pTexObject`. `pResDesc`\n    describes the data to texture from. `pTexDesc` describes how the data\n    should be sampled. `pResViewDesc` is an optional argument that\n    specifies an alternate format for the data described by `pResDesc`, and\n    also describes the subresource region to restrict access to when\n    texturing. `pResViewDesc` can only be specified if the type of resource\n    is a CUDA array or a CUDA mipmapped array.\n\n    Texture objects are only supported on devices of compute capability 3.0\n    or higher. Additionally, a texture object is an opaque value, and, as\n    such, should only be accessed through CUDA API calls.\n\n    The CUDA_RESOURCE_DESC structure is defined as:\n    typedefstructCUDA_RESOURCE_DESC_st { CUresourcetyperesType;  union{\n    struct{ CUarrayhArray; }array; struct{ CUmipmappedArrayhMipmappedArray;\n    }mipmap; struct{ CUdeviceptrdevPtr; CUarray_formatformat;\n    unsignedintnumChannels; size_tsizeInBytes; }linear; struct{\n    CUdeviceptrdevPtr; CUarray_formatformat; unsignedintnumChannels;\n    size_twidth; size_theight; size_tpitchInBytes; }pitch2D; }res;\n    unsignedintflags; }CUDA_RESOURCE_DESC; where:\n    CUDA_RESOURCE_DESC::resType specifies the type of resource to texture\n    from. CUresourceType is defined as: typedefenumCUresourcetype_enum{\n    CU_RESOURCE_TYPE_ARRAY=0x00, CU_RESOURCE_TYPE_MIPMAPPED_ARRAY=0x01,\n    CU_RESOURCE_TYPE_LINEAR=0x02, CU_RESOURCE_TYPE_PITCH2D=0x03\n    }CUresourcetype;\n\n    If CUDA_RESOURCE_DESC::resType is set to CU_RESOURCE_TYPE_ARRAY,\n    CUDA_RESOURCE_DESC::res::array::hArray must be set to a valid CUDA\n    array handle.\n\n    If CUDA_RESOURCE_DESC::resType is set to\n    CU_RESOURCE_TYPE_MIPMAPPED_ARRAY,\n    CUDA_RE""SOURCE_DESC::res::mipmap::hMipmappedArray must be set to a valid\n    CUDA mipmapped array handle.\n\n    If CUDA_RESOURCE_DESC::resType is set to CU_RESOURCE_TYPE_LINEAR,\n    CUDA_RESOURCE_DESC::res::linear::devPtr must be set to a valid device\n    pointer, that is aligned to CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT.\n    CUDA_RESOURCE_DESC::res::linear::format and\n    CUDA_RESOURCE_DESC::res::linear::numChannels describe the format of\n    each component and the number of components per array element.\n    CUDA_RESOURCE_DESC::res::linear::sizeInBytes specifies the size of the\n    array in bytes. The total number of elements in the linear address\n    range cannot exceed CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH.\n    The number of elements is computed as (sizeInBytes / (sizeof(format) *\n    numChannels)).\n\n    If CUDA_RESOURCE_DESC::resType is set to CU_RESOURCE_TYPE_PITCH2D,\n    CUDA_RESOURCE_DESC::res::pitch2D::devPtr must be set to a valid device\n    pointer, that is aligned to CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT.\n    CUDA_RESOURCE_DESC::res::pitch2D::format and\n    CUDA_RESOURCE_DESC::res::pitch2D::numChannels describe the format of\n    each component and the number of components per array element.\n    CUDA_RESOURCE_DESC::res::pitch2D::width and\n    CUDA_RESOURCE_DESC::res::pitch2D::height specify the width and height\n    of the array in elements, and cannot exceed\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH and\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT respectively.\n    CUDA_RESOURCE_DESC::res::pitch2D::pitchInBytes specifies the pitch\n    between two rows in bytes and has to be aligned to\n    CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT. Pitch cannot exceed\n    CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH.\n\n    The CUDA_TEXTURE_DESC struct is defined as\n    typedefstructCUDA_TEXTURE_DESC_st{ CUaddress_modeaddressMode[3];\n    CUfilter_modefilterMode; unsignedintflags; unsignedintmaxAnisotropy;""\n    CUfilter_modemipmapFilterMode; floatmipmapLevelBias;\n    floatminMipmapLevelClamp; floatmaxMipmapLevelClamp; }CUDA_TEXTURE_DESC;\n    where CUDA_TEXTURE_DESC::addressMode specifies the addressing mode for\n    each dimension of the texture data. CUaddress_mode is defined as:\n    typedefenumCUaddress_mode_enum{ CU_TR_ADDRESS_MODE_WRAP=0,\n    CU_TR_ADDRESS_MODE_CLAMP=1, CU_TR_ADDRESS_MODE_MIRROR=2,\n    CU_TR_ADDRESS_MODE_BORDER=3 }CUaddress_mode; This is ignored if\n    CUDA_RESOURCE_DESC::resType is CU_RESOURCE_TYPE_LINEAR. Also, if the\n    flag, CU_TRSF_NORMALIZED_COORDINATES is not set, the only supported\n    address mode is CU_TR_ADDRESS_MODE_CLAMP. CUDA_TEXTURE_DESC::filterMode\n    specifies the filtering mode to be used when fetching from the texture.\n    CUfilter_mode is defined as: typedefenumCUfilter_mode_enum{\n    CU_TR_FILTER_MODE_POINT=0, CU_TR_FILTER_MODE_LINEAR=1 }CUfilter_mode;\n    This is ignored if CUDA_RESOURCE_DESC::resType is\n    CU_RESOURCE_TYPE_LINEAR. CUDA_TEXTURE_DESC::flags can be any\n    combination of the following: CU_TRSF_READ_AS_INTEGER, which suppresses\n    the default behavior of having the texture promote integer data to\n    floating point data in the range [0, 1]. Note that texture with 32-bit\n    integer format would not be promoted, regardless of whether or not this\n    flag is specified. CU_TRSF_NORMALIZED_COORDINATES, which suppresses the\n    default behavior of having the texture coordinates range from [0, Dim)\n    where Dim is the width or height of the CUDA array. Instead, the\n    texture coordinates [0, 1.0) reference the entire breadth of the array\n    dimension; Note that for CUDA mipmapped arrays, this flag has to be\n    set. CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION, which disables any\n    trilinear filtering optimizations. Trilinear optimizations improve\n    texture filtering performance by allowing bilinear filtering on\n    textures in scenarios where it can closely approximate the expected""\n    results.   CUDA_TEXTURE_DESC::maxAnisotropy specifies the maximum\n    anisotropy ratio to be used when doing anisotropic filtering. This\n    value will be clamped to the range [1,16].\n    CUDA_TEXTURE_DESC::mipmapFilterMode specifies the filter mode when the\n    calculated mipmap level lies between two defined mipmap levels.\n    CUDA_TEXTURE_DESC::mipmapLevelBias specifies the offset to be applied\n    to the calculated mipmap level. CUDA_TEXTURE_DESC::minMipmapLevelClamp\n    specifies the lower end of the mipmap level range to clamp access to.\n    CUDA_TEXTURE_DESC::maxMipmapLevelClamp specifies the upper end of the\n    mipmap level range to clamp access to.\n\n    The CUDA_RESOURCE_VIEW_DESC struct is defined as\n    typedefstructCUDA_RESOURCE_VIEW_DESC_st { CUresourceViewFormatformat;\n    size_twidth; size_theight; size_tdepth; unsignedintfirstMipmapLevel;\n    unsignedintlastMipmapLevel; unsignedintfirstLayer;\n    unsignedintlastLayer; }CUDA_RESOURCE_VIEW_DESC; where:\n    CUDA_RESOURCE_VIEW_DESC::format specifies how the data contained in the\n    CUDA array or CUDA mipmapped array should be interpreted. Note that\n    this can incur a change in size of the texture data. If the resource\n    view format is a block compressed format, then the underlying CUDA\n    array or CUDA mipmapped array has to have a base of format\n    CU_AD_FORMAT_UNSIGNED_INT32. with 2 or 4 channels, depending on the\n    block compressed format. For ex., BC1 and BC4 require the underlying\n    CUDA array to have a format of CU_AD_FORMAT_UNSIGNED_INT32 with 2\n    channels. The other BC formats require the underlying resource to have\n    the same base format but with 4 channels.\n    CUDA_RESOURCE_VIEW_DESC::width specifies the new width of the texture\n    data. If the resource view format is a block compressed format, this\n    value has to be 4 times the original width of the resource. For non\n    block compressed formats, this value has to be equal to that of the""\n    original resource. CUDA_RESOURCE_VIEW_DESC::height specifies the new\n    height of the texture data. If the resource view format is a block\n    compressed format, this value has to be 4 times the original height of\n    the resource. For non block compressed formats, this value has to be\n    equal to that of the original resource. CUDA_RESOURCE_VIEW_DESC::depth\n    specifies the new depth of the texture data. This value has to be equal\n    to that of the original resource.\n    CUDA_RESOURCE_VIEW_DESC::firstMipmapLevel specifies the most detailed\n    mipmap level. This will be the new mipmap level zero. For non-mipmapped\n    resources, this value has to be\n    zero.CUDA_TEXTURE_DESC::minMipmapLevelClamp and\n    CUDA_TEXTURE_DESC::maxMipmapLevelClamp will be relative to this value.\n    For ex., if the firstMipmapLevel is set to 2, and a minMipmapLevelClamp\n    of 1.2 is specified, then the actual minimum mipmap level clamp will be\n    3.2. CUDA_RESOURCE_VIEW_DESC::lastMipmapLevel specifies the least\n    detailed mipmap level. For non-mipmapped resources, this value has to\n    be zero. CUDA_RESOURCE_VIEW_DESC::firstLayer specifies the first layer\n    index for layered textures. This will be the new layer zero. For non-\n    layered resources, this value has to be zero.\n    CUDA_RESOURCE_VIEW_DESC::lastLayer specifies the last layer index for\n    layered textures. For non-layered resources, this value has to be zero.\n\n    Parameters\n    ----------\n    pResDesc : CUDA_RESOURCE_DESC\n        Resource descriptor\n    pTexDesc : CUDA_TEXTURE_DESC\n        Texture descriptor\n    pResViewDesc : CUDA_RESOURCE_VIEW_DESC\n        Resource view descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pTexObject : CUtexObject\n        Texture object to create\n\n    See Also\n    --------""\n    cuTexObjectDestroy\n    cudaCreateTextureObject\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_659cuTexObjectCreate = {"cuTexObjectCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_659cuTexObjectCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_658cuTexObjectCreate};
static PyObject *__pyx_pw_4cuda_4cuda_659cuTexObjectCreate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC *__pyx_v_pTexDesc = 0;
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC *__pyx_v_pResViewDesc = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexObjectCreate (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pResDesc,&__pyx_n_s_pTexDesc,&__pyx_n_s_pResViewDesc,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pResDesc)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pTexDesc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexObjectCreate", 1, 3, 3, 1); __PYX_ERR(0, 26942, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pResViewDesc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuTexObjectCreate", 1, 3, 3, 2); __PYX_ERR(0, 26942, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuTexObjectCreate") < 0)) __PYX_ERR(0, 26942, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_pResDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *)values[0]);
    __pyx_v_pTexDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC *)values[1]);
    __pyx_v_pResViewDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuTexObjectCreate", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26942, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuTexObjectCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pResDesc), __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC, 1, "pResDesc", 0))) __PYX_ERR(0, 26942, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pTexDesc), __pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC, 1, "pTexDesc", 0))) __PYX_ERR(0, 26942, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pResViewDesc), __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC, 1, "pResViewDesc", 0))) __PYX_ERR(0, 26942, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_658cuTexObjectCreate(__pyx_self, __pyx_v_pResDesc, __pyx_v_pTexDesc, __pyx_v_pResViewDesc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_658cuTexObjectCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc, struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC *__pyx_v_pTexDesc, struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC *__pyx_v_pResViewDesc) {
  struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_pTexObject = 0;
  __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC *__pyx_v_cpResDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC *__pyx_v_cpTexDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC *__pyx_v_cpResViewDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *__pyx_t_2;
  int __pyx_t_3;
  struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st *__pyx_t_4;
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st *__pyx_t_5;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__857)
  __Pyx_RefNannySetupContext("cuTexObjectCreate", 0);
  __Pyx_TraceCall("cuTexObjectCreate", __pyx_f[0], 26942, 0, __PYX_ERR(0, 26942, __pyx_L1_error));

  /* "cuda/cuda.pyx":27116
 *     cudaCreateTextureObject
 *     """
 *     cdef CUtexObject pTexObject = CUtexObject()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL
 *     cdef ccuda.CUDA_TEXTURE_DESC* cpTexDesc_ptr = pTexDesc._ptr if pTexDesc != None else NULL
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexObject)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pTexObject = ((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27117
 *     """
 *     cdef CUtexObject pTexObject = CUtexObject()
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_TEXTURE_DESC* cpTexDesc_ptr = pTexDesc._ptr if pTexDesc != None else NULL
 *     cdef ccuda.CUDA_RESOURCE_VIEW_DESC* cpResViewDesc_ptr = pResViewDesc._ptr if pResViewDesc != None else NULL
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pResDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27117, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_pResDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cpResDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":27118
 *     cdef CUtexObject pTexObject = CUtexObject()
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL
 *     cdef ccuda.CUDA_TEXTURE_DESC* cpTexDesc_ptr = pTexDesc._ptr if pTexDesc != None else NULL             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_RESOURCE_VIEW_DESC* cpResViewDesc_ptr = pResViewDesc._ptr if pResViewDesc != None else NULL
 *     err = ccuda.cuTexObjectCreate(pTexObject._ptr, cpResDesc_ptr, cpTexDesc_ptr, cpResViewDesc_ptr)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pTexDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27118, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_4 = __pyx_v_pTexDesc->__pyx_base._ptr;
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_cpTexDesc_ptr = __pyx_t_4;

  /* "cuda/cuda.pyx":27119
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL
 *     cdef ccuda.CUDA_TEXTURE_DESC* cpTexDesc_ptr = pTexDesc._ptr if pTexDesc != None else NULL
 *     cdef ccuda.CUDA_RESOURCE_VIEW_DESC* cpResViewDesc_ptr = pResViewDesc._ptr if pResViewDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexObjectCreate(pTexObject._ptr, cpResDesc_ptr, cpTexDesc_ptr, cpResViewDesc_ptr)
 *     return (CUresult(err), pTexObject)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pResViewDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27119, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_5 = __pyx_v_pResViewDesc->__pyx_base._ptr;
  } else {
    __pyx_t_5 = NULL;
  }
  __pyx_v_cpResViewDesc_ptr = __pyx_t_5;

  /* "cuda/cuda.pyx":27120
 *     cdef ccuda.CUDA_TEXTURE_DESC* cpTexDesc_ptr = pTexDesc._ptr if pTexDesc != None else NULL
 *     cdef ccuda.CUDA_RESOURCE_VIEW_DESC* cpResViewDesc_ptr = pResViewDesc._ptr if pResViewDesc != None else NULL
 *     err = ccuda.cuTexObjectCreate(pTexObject._ptr, cpResDesc_ptr, cpTexDesc_ptr, cpResViewDesc_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pTexObject)
 * 
 */
  __pyx_t_6 = __pyx_f_4cuda_5ccuda_cuTexObjectCreate(__pyx_v_pTexObject->_ptr, __pyx_v_cpResDesc_ptr, __pyx_v_cpTexDesc_ptr, __pyx_v_cpResViewDesc_ptr); if (unlikely(__pyx_t_6 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27120, __pyx_L1_error)
  __pyx_v_err = __pyx_t_6;

  /* "cuda/cuda.pyx":27121
 *     cdef ccuda.CUDA_RESOURCE_VIEW_DESC* cpResViewDesc_ptr = pResViewDesc._ptr if pResViewDesc != None else NULL
 *     err = ccuda.cuTexObjectCreate(pTexObject._ptr, cpResDesc_ptr, cpTexDesc_ptr, cpResViewDesc_ptr)
 *     return (CUresult(err), pTexObject)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 27121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pTexObject));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pTexObject));
  PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_pTexObject));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":26942
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectCreate(pResDesc : CUDA_RESOURCE_DESC, pTexDesc : CUDA_TEXTURE_DESC, pResViewDesc : CUDA_RESOURCE_VIEW_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a texture object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("cuda.cuda.cuTexObjectCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pTexObject);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27124
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectDestroy(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_661cuTexObjectDestroy(PyObject *__pyx_self, PyObject *__pyx_v_texObject); /*proto*/
static char __pyx_doc_4cuda_4cuda_660cuTexObjectDestroy[] = "cuTexObjectDestroy(CUtexObject texObject: CUtexObject)\n Destroys a texture object.\n\n    Destroys the texture object specified by `texObject`.\n\n    Parameters\n    ----------\n    texObject : CUtexObject\n        Texture object to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuTexObjectCreate\n    cudaDestroyTextureObject\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_661cuTexObjectDestroy = {"cuTexObjectDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_661cuTexObjectDestroy, METH_O, __pyx_doc_4cuda_4cuda_660cuTexObjectDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_661cuTexObjectDestroy(PyObject *__pyx_self, PyObject *__pyx_v_texObject) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexObjectDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_texObject), __pyx_ptype_4cuda_4cuda_CUtexObject, 0, "texObject", 0))) __PYX_ERR(0, 27124, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_660cuTexObjectDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_texObject));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_660cuTexObjectDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__858)
  __Pyx_RefNannySetupContext("cuTexObjectDestroy", 0);
  __Pyx_TraceCall("cuTexObjectDestroy", __pyx_f[0], 27124, 0, __PYX_ERR(0, 27124, __pyx_L1_error));

  /* "cuda/cuda.pyx":27150
 *     cudaDestroyTextureObject
 *     """
 *     err = ccuda.cuTexObjectDestroy(texObject._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuTexObjectDestroy((__pyx_v_texObject->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27150, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27151
 *     """
 *     err = ccuda.cuTexObjectDestroy(texObject._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27124
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectDestroy(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexObjectDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27154
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource descriptor.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_663cuTexObjectGetResourceDesc(PyObject *__pyx_self, PyObject *__pyx_v_texObject); /*proto*/
static char __pyx_doc_4cuda_4cuda_662cuTexObjectGetResourceDesc[] = "cuTexObjectGetResourceDesc(CUtexObject texObject: CUtexObject)\n Returns a texture object's resource descriptor.\n\n    Returns the resource descriptor for the texture object specified by\n    `texObject`.\n\n    Parameters\n    ----------\n    texObject : CUtexObject\n        Texture object\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pResDesc : CUDA_RESOURCE_DESC\n        Resource descriptor\n\n    See Also\n    --------\n    cuTexObjectCreate\n    cudaGetTextureObjectResourceDesc\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_663cuTexObjectGetResourceDesc = {"cuTexObjectGetResourceDesc", (PyCFunction)__pyx_pw_4cuda_4cuda_663cuTexObjectGetResourceDesc, METH_O, __pyx_doc_4cuda_4cuda_662cuTexObjectGetResourceDesc};
static PyObject *__pyx_pw_4cuda_4cuda_663cuTexObjectGetResourceDesc(PyObject *__pyx_self, PyObject *__pyx_v_texObject) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexObjectGetResourceDesc (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_texObject), __pyx_ptype_4cuda_4cuda_CUtexObject, 0, "texObject", 0))) __PYX_ERR(0, 27154, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_662cuTexObjectGetResourceDesc(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_texObject));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_662cuTexObjectGetResourceDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject) {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__859)
  __Pyx_RefNannySetupContext("cuTexObjectGetResourceDesc", 0);
  __Pyx_TraceCall("cuTexObjectGetResourceDesc", __pyx_f[0], 27154, 0, __PYX_ERR(0, 27154, __pyx_L1_error));

  /* "cuda/cuda.pyx":27181
 *     cudaGetTextureObjectResourceDesc
 *     """
 *     cdef CUDA_RESOURCE_DESC pResDesc = CUDA_RESOURCE_DESC()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexObjectGetResourceDesc(pResDesc._ptr, texObject._ptr[0])
 *     return (CUresult(err), pResDesc)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pResDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27182
 *     """
 *     cdef CUDA_RESOURCE_DESC pResDesc = CUDA_RESOURCE_DESC()
 *     err = ccuda.cuTexObjectGetResourceDesc(pResDesc._ptr, texObject._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pResDesc)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexObjectGetResourceDesc(__pyx_v_pResDesc->__pyx_base._ptr, (__pyx_v_texObject->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27182, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27183
 *     cdef CUDA_RESOURCE_DESC pResDesc = CUDA_RESOURCE_DESC()
 *     err = ccuda.cuTexObjectGetResourceDesc(pResDesc._ptr, texObject._ptr[0])
 *     return (CUresult(err), pResDesc)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pResDesc));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pResDesc));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pResDesc));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27154
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource descriptor.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexObjectGetResourceDesc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pResDesc);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27186
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetTextureDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's texture descriptor.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_665cuTexObjectGetTextureDesc(PyObject *__pyx_self, PyObject *__pyx_v_texObject); /*proto*/
static char __pyx_doc_4cuda_4cuda_664cuTexObjectGetTextureDesc[] = "cuTexObjectGetTextureDesc(CUtexObject texObject: CUtexObject)\n Returns a texture object's texture descriptor.\n\n    Returns the texture descriptor for the texture object specified by\n    `texObject`.\n\n    Parameters\n    ----------\n    texObject : CUtexObject\n        Texture object\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pTexDesc : CUDA_TEXTURE_DESC\n        Texture descriptor\n\n    See Also\n    --------\n    cuTexObjectCreate\n    cudaGetTextureObjectTextureDesc\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_665cuTexObjectGetTextureDesc = {"cuTexObjectGetTextureDesc", (PyCFunction)__pyx_pw_4cuda_4cuda_665cuTexObjectGetTextureDesc, METH_O, __pyx_doc_4cuda_4cuda_664cuTexObjectGetTextureDesc};
static PyObject *__pyx_pw_4cuda_4cuda_665cuTexObjectGetTextureDesc(PyObject *__pyx_self, PyObject *__pyx_v_texObject) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexObjectGetTextureDesc (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_texObject), __pyx_ptype_4cuda_4cuda_CUtexObject, 0, "texObject", 0))) __PYX_ERR(0, 27186, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_664cuTexObjectGetTextureDesc(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_texObject));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_664cuTexObjectGetTextureDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject) {
  struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC *__pyx_v_pTexDesc = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__860)
  __Pyx_RefNannySetupContext("cuTexObjectGetTextureDesc", 0);
  __Pyx_TraceCall("cuTexObjectGetTextureDesc", __pyx_f[0], 27186, 0, __PYX_ERR(0, 27186, __pyx_L1_error));

  /* "cuda/cuda.pyx":27213
 *     cudaGetTextureObjectTextureDesc
 *     """
 *     cdef CUDA_TEXTURE_DESC pTexDesc = CUDA_TEXTURE_DESC()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexObjectGetTextureDesc(pTexDesc._ptr, texObject._ptr[0])
 *     return (CUresult(err), pTexDesc)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pTexDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27214
 *     """
 *     cdef CUDA_TEXTURE_DESC pTexDesc = CUDA_TEXTURE_DESC()
 *     err = ccuda.cuTexObjectGetTextureDesc(pTexDesc._ptr, texObject._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pTexDesc)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexObjectGetTextureDesc(__pyx_v_pTexDesc->__pyx_base._ptr, (__pyx_v_texObject->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27214, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27215
 *     cdef CUDA_TEXTURE_DESC pTexDesc = CUDA_TEXTURE_DESC()
 *     err = ccuda.cuTexObjectGetTextureDesc(pTexDesc._ptr, texObject._ptr[0])
 *     return (CUresult(err), pTexDesc)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pTexDesc));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pTexDesc));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pTexDesc));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27186
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetTextureDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's texture descriptor.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexObjectGetTextureDesc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pTexDesc);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27218
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceViewDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource view descriptor.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_667cuTexObjectGetResourceViewDesc(PyObject *__pyx_self, PyObject *__pyx_v_texObject); /*proto*/
static char __pyx_doc_4cuda_4cuda_666cuTexObjectGetResourceViewDesc[] = "cuTexObjectGetResourceViewDesc(CUtexObject texObject: CUtexObject)\n Returns a texture object's resource view descriptor.\n\n    Returns the resource view descriptor for the texture object specified\n    by `texObject`. If no resource view was set for `texObject`, the\n    CUDA_ERROR_INVALID_VALUE is returned.\n\n    Parameters\n    ----------\n    texObject : CUtexObject\n        Texture object\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pResViewDesc : CUDA_RESOURCE_VIEW_DESC\n        Resource view descriptor\n\n    See Also\n    --------\n    cuTexObjectCreate\n    cudaGetTextureObjectResourceViewDesc\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_667cuTexObjectGetResourceViewDesc = {"cuTexObjectGetResourceViewDesc", (PyCFunction)__pyx_pw_4cuda_4cuda_667cuTexObjectGetResourceViewDesc, METH_O, __pyx_doc_4cuda_4cuda_666cuTexObjectGetResourceViewDesc};
static PyObject *__pyx_pw_4cuda_4cuda_667cuTexObjectGetResourceViewDesc(PyObject *__pyx_self, PyObject *__pyx_v_texObject) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuTexObjectGetResourceViewDesc (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_texObject), __pyx_ptype_4cuda_4cuda_CUtexObject, 0, "texObject", 0))) __PYX_ERR(0, 27218, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_666cuTexObjectGetResourceViewDesc(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUtexObject *)__pyx_v_texObject));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_666cuTexObjectGetResourceViewDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUtexObject *__pyx_v_texObject) {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC *__pyx_v_pResViewDesc = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__861)
  __Pyx_RefNannySetupContext("cuTexObjectGetResourceViewDesc", 0);
  __Pyx_TraceCall("cuTexObjectGetResourceViewDesc", __pyx_f[0], 27218, 0, __PYX_ERR(0, 27218, __pyx_L1_error));

  /* "cuda/cuda.pyx":27246
 *     cudaGetTextureObjectResourceViewDesc
 *     """
 *     cdef CUDA_RESOURCE_VIEW_DESC pResViewDesc = CUDA_RESOURCE_VIEW_DESC()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuTexObjectGetResourceViewDesc(pResViewDesc._ptr, texObject._ptr[0])
 *     return (CUresult(err), pResViewDesc)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pResViewDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27247
 *     """
 *     cdef CUDA_RESOURCE_VIEW_DESC pResViewDesc = CUDA_RESOURCE_VIEW_DESC()
 *     err = ccuda.cuTexObjectGetResourceViewDesc(pResViewDesc._ptr, texObject._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pResViewDesc)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuTexObjectGetResourceViewDesc(__pyx_v_pResViewDesc->__pyx_base._ptr, (__pyx_v_texObject->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27247, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27248
 *     cdef CUDA_RESOURCE_VIEW_DESC pResViewDesc = CUDA_RESOURCE_VIEW_DESC()
 *     err = ccuda.cuTexObjectGetResourceViewDesc(pResViewDesc._ptr, texObject._ptr[0])
 *     return (CUresult(err), pResViewDesc)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pResViewDesc));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pResViewDesc));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pResViewDesc));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27218
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceViewDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource view descriptor.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuTexObjectGetResourceViewDesc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pResViewDesc);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27251
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectCreate(pResDesc : CUDA_RESOURCE_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a surface object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_669cuSurfObjectCreate(PyObject *__pyx_self, PyObject *__pyx_v_pResDesc); /*proto*/
static char __pyx_doc_4cuda_4cuda_668cuSurfObjectCreate[] = "cuSurfObjectCreate(CUDA_RESOURCE_DESC pResDesc: CUDA_RESOURCE_DESC)\n Creates a surface object.\n\n    Creates a surface object and returns it in `pSurfObject`. `pResDesc`\n    describes the data to perform surface load/stores on.\n    CUDA_RESOURCE_DESC::resType must be CU_RESOURCE_TYPE_ARRAY and\n    CUDA_RESOURCE_DESC::res::array::hArray must be set to a valid CUDA\n    array handle. CUDA_RESOURCE_DESC::flags must be set to zero.\n\n    Surface objects are only supported on devices of compute capability 3.0\n    or higher. Additionally, a surface object is an opaque value, and, as\n    such, should only be accessed through CUDA API calls.\n\n    Parameters\n    ----------\n    pResDesc : CUDA_RESOURCE_DESC\n        Resource descriptor\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pSurfObject : CUsurfObject\n        Surface object to create\n\n    See Also\n    --------\n    cuSurfObjectDestroy\n    cudaCreateSurfaceObject\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_669cuSurfObjectCreate = {"cuSurfObjectCreate", (PyCFunction)__pyx_pw_4cuda_4cuda_669cuSurfObjectCreate, METH_O, __pyx_doc_4cuda_4cuda_668cuSurfObjectCreate};
static PyObject *__pyx_pw_4cuda_4cuda_669cuSurfObjectCreate(PyObject *__pyx_self, PyObject *__pyx_v_pResDesc) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuSurfObjectCreate (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pResDesc), __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC, 1, "pResDesc", 0))) __PYX_ERR(0, 27251, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_668cuSurfObjectCreate(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *)__pyx_v_pResDesc));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_668cuSurfObjectCreate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc) {
  struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_pSurfObject = 0;
  __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC *__pyx_v_cpResDesc_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st *__pyx_t_2;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__862)
  __Pyx_RefNannySetupContext("cuSurfObjectCreate", 0);
  __Pyx_TraceCall("cuSurfObjectCreate", __pyx_f[0], 27251, 0, __PYX_ERR(0, 27251, __pyx_L1_error));

  /* "cuda/cuda.pyx":27285
 *     cudaCreateSurfaceObject
 *     """
 *     cdef CUsurfObject pSurfObject = CUsurfObject()             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL
 *     err = ccuda.cuSurfObjectCreate(pSurfObject._ptr, cpResDesc_ptr)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfObject)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pSurfObject = ((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27286
 *     """
 *     cdef CUsurfObject pSurfObject = CUsurfObject()
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuSurfObjectCreate(pSurfObject._ptr, cpResDesc_ptr)
 *     return (CUresult(err), pSurfObject)
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_pResDesc), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27286, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = __pyx_v_pResDesc->__pyx_base._ptr;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_cpResDesc_ptr = __pyx_t_2;

  /* "cuda/cuda.pyx":27287
 *     cdef CUsurfObject pSurfObject = CUsurfObject()
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL
 *     err = ccuda.cuSurfObjectCreate(pSurfObject._ptr, cpResDesc_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pSurfObject)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuSurfObjectCreate(__pyx_v_pSurfObject->_ptr, __pyx_v_cpResDesc_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27287, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":27288
 *     cdef ccuda.CUDA_RESOURCE_DESC* cpResDesc_ptr = pResDesc._ptr if pResDesc != None else NULL
 *     err = ccuda.cuSurfObjectCreate(pSurfObject._ptr, cpResDesc_ptr)
 *     return (CUresult(err), pSurfObject)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 27288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pSurfObject));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pSurfObject));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_pSurfObject));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27251
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectCreate(pResDesc : CUDA_RESOURCE_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a surface object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuSurfObjectCreate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pSurfObject);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27291
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectDestroy(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a surface object.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_671cuSurfObjectDestroy(PyObject *__pyx_self, PyObject *__pyx_v_surfObject); /*proto*/
static char __pyx_doc_4cuda_4cuda_670cuSurfObjectDestroy[] = "cuSurfObjectDestroy(CUsurfObject surfObject: CUsurfObject)\n Destroys a surface object.\n\n    Destroys the surface object specified by `surfObject`.\n\n    Parameters\n    ----------\n    surfObject : CUsurfObject\n        Surface object to destroy\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuSurfObjectCreate\n    cudaDestroySurfaceObject\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_671cuSurfObjectDestroy = {"cuSurfObjectDestroy", (PyCFunction)__pyx_pw_4cuda_4cuda_671cuSurfObjectDestroy, METH_O, __pyx_doc_4cuda_4cuda_670cuSurfObjectDestroy};
static PyObject *__pyx_pw_4cuda_4cuda_671cuSurfObjectDestroy(PyObject *__pyx_self, PyObject *__pyx_v_surfObject) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuSurfObjectDestroy (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_surfObject), __pyx_ptype_4cuda_4cuda_CUsurfObject, 0, "surfObject", 0))) __PYX_ERR(0, 27291, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_670cuSurfObjectDestroy(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_surfObject));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_670cuSurfObjectDestroy(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_surfObject) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__863)
  __Pyx_RefNannySetupContext("cuSurfObjectDestroy", 0);
  __Pyx_TraceCall("cuSurfObjectDestroy", __pyx_f[0], 27291, 0, __PYX_ERR(0, 27291, __pyx_L1_error));

  /* "cuda/cuda.pyx":27317
 *     cudaDestroySurfaceObject
 *     """
 *     err = ccuda.cuSurfObjectDestroy(surfObject._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuSurfObjectDestroy((__pyx_v_surfObject->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27317, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27318
 *     """
 *     err = ccuda.cuSurfObjectDestroy(surfObject._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27291
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectDestroy(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a surface object.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuSurfObjectDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27321
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectGetResourceDesc(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Returns a surface object's resource descriptor.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_673cuSurfObjectGetResourceDesc(PyObject *__pyx_self, PyObject *__pyx_v_surfObject); /*proto*/
static char __pyx_doc_4cuda_4cuda_672cuSurfObjectGetResourceDesc[] = "cuSurfObjectGetResourceDesc(CUsurfObject surfObject: CUsurfObject)\n Returns a surface object's resource descriptor.\n\n    Returns the resource descriptor for the surface object specified by\n    `surfObject`.\n\n    Parameters\n    ----------\n    surfObject : CUsurfObject\n        Surface object\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n    pResDesc : CUDA_RESOURCE_DESC\n        Resource descriptor\n\n    See Also\n    --------\n    cuSurfObjectCreate\n    cudaGetSurfaceObjectResourceDesc\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_673cuSurfObjectGetResourceDesc = {"cuSurfObjectGetResourceDesc", (PyCFunction)__pyx_pw_4cuda_4cuda_673cuSurfObjectGetResourceDesc, METH_O, __pyx_doc_4cuda_4cuda_672cuSurfObjectGetResourceDesc};
static PyObject *__pyx_pw_4cuda_4cuda_673cuSurfObjectGetResourceDesc(PyObject *__pyx_self, PyObject *__pyx_v_surfObject) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuSurfObjectGetResourceDesc (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_surfObject), __pyx_ptype_4cuda_4cuda_CUsurfObject, 0, "surfObject", 0))) __PYX_ERR(0, 27321, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_672cuSurfObjectGetResourceDesc(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUsurfObject *)__pyx_v_surfObject));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_672cuSurfObjectGetResourceDesc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUsurfObject *__pyx_v_surfObject) {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *__pyx_v_pResDesc = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__864)
  __Pyx_RefNannySetupContext("cuSurfObjectGetResourceDesc", 0);
  __Pyx_TraceCall("cuSurfObjectGetResourceDesc", __pyx_f[0], 27321, 0, __PYX_ERR(0, 27321, __pyx_L1_error));

  /* "cuda/cuda.pyx":27348
 *     cudaGetSurfaceObjectResourceDesc
 *     """
 *     cdef CUDA_RESOURCE_DESC pResDesc = CUDA_RESOURCE_DESC()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuSurfObjectGetResourceDesc(pResDesc._ptr, surfObject._ptr[0])
 *     return (CUresult(err), pResDesc)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pResDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27349
 *     """
 *     cdef CUDA_RESOURCE_DESC pResDesc = CUDA_RESOURCE_DESC()
 *     err = ccuda.cuSurfObjectGetResourceDesc(pResDesc._ptr, surfObject._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pResDesc)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuSurfObjectGetResourceDesc(__pyx_v_pResDesc->__pyx_base._ptr, (__pyx_v_surfObject->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27349, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27350
 *     cdef CUDA_RESOURCE_DESC pResDesc = CUDA_RESOURCE_DESC()
 *     err = ccuda.cuSurfObjectGetResourceDesc(pResDesc._ptr, surfObject._ptr[0])
 *     return (CUresult(err), pResDesc)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pResDesc));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pResDesc));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pResDesc));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27321
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectGetResourceDesc(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Returns a surface object's resource descriptor.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuSurfObjectGetResourceDesc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pResDesc);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27353
 * 
 * @cython.embedsignature(True)
 * def cuDeviceCanAccessPeer(dev not None : CUdevice, peerDev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries if a device may directly access a peer device's memory.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_675cuDeviceCanAccessPeer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_674cuDeviceCanAccessPeer[] = "cuDeviceCanAccessPeer(CUdevice dev: CUdevice, CUdevice peerDev: CUdevice)\n Queries if a device may directly access a peer device's memory.\n\n    Returns in `*canAccessPeer` a value of 1 if contexts on `dev` are\n    capable of directly accessing memory from contexts on `peerDev` and 0\n    otherwise. If direct access of `peerDev` from `dev` is possible, then\n    access may be enabled on two specific contexts by calling\n    cuCtxEnablePeerAccess().\n\n    Parameters\n    ----------\n    dev : CUdevice\n        Device from which allocations on `peerDev` are to be directly\n        accessed.\n    peerDev : CUdevice\n        Device on which the allocations to be directly accessed by `dev`\n        reside.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_DEVICE\n    canAccessPeer : int\n        Returned access capability\n\n    See Also\n    --------\n    cuCtxEnablePeerAccess\n    cuCtxDisablePeerAccess\n    cudaDeviceCanAccessPeer\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_675cuDeviceCanAccessPeer = {"cuDeviceCanAccessPeer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_675cuDeviceCanAccessPeer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_674cuDeviceCanAccessPeer};
static PyObject *__pyx_pw_4cuda_4cuda_675cuDeviceCanAccessPeer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev = 0;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_peerDev = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceCanAccessPeer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dev,&__pyx_n_s_peerDev,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dev)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_peerDev)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceCanAccessPeer", 1, 2, 2, 1); __PYX_ERR(0, 27353, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceCanAccessPeer") < 0)) __PYX_ERR(0, 27353, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_dev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[0]);
    __pyx_v_peerDev = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceCanAccessPeer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27353, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceCanAccessPeer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dev", 0))) __PYX_ERR(0, 27353, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_peerDev), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "peerDev", 0))) __PYX_ERR(0, 27353, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_674cuDeviceCanAccessPeer(__pyx_self, __pyx_v_dev, __pyx_v_peerDev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_674cuDeviceCanAccessPeer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dev, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_peerDev) {
  int __pyx_v_canAccessPeer;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__865)
  __Pyx_RefNannySetupContext("cuDeviceCanAccessPeer", 0);
  __Pyx_TraceCall("cuDeviceCanAccessPeer", __pyx_f[0], 27353, 0, __PYX_ERR(0, 27353, __pyx_L1_error));

  /* "cuda/cuda.pyx":27387
 *     cudaDeviceCanAccessPeer
 *     """
 *     cdef int canAccessPeer = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceCanAccessPeer(&canAccessPeer, dev._ptr[0], peerDev._ptr[0])
 *     return (CUresult(err), canAccessPeer)
 */
  __pyx_v_canAccessPeer = 0;

  /* "cuda/cuda.pyx":27388
 *     """
 *     cdef int canAccessPeer = 0
 *     err = ccuda.cuDeviceCanAccessPeer(&canAccessPeer, dev._ptr[0], peerDev._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), canAccessPeer)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuDeviceCanAccessPeer((&__pyx_v_canAccessPeer), (__pyx_v_dev->_ptr[0]), (__pyx_v_peerDev->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27388, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27389
 *     cdef int canAccessPeer = 0
 *     err = ccuda.cuDeviceCanAccessPeer(&canAccessPeer, dev._ptr[0], peerDev._ptr[0])
 *     return (CUresult(err), canAccessPeer)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_canAccessPeer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27353
 * 
 * @cython.embedsignature(True)
 * def cuDeviceCanAccessPeer(dev not None : CUdevice, peerDev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries if a device may directly access a peer device's memory.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceCanAccessPeer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27392
 * 
 * @cython.embedsignature(True)
 * def cuCtxEnablePeerAccess(peerContext not None : CUcontext, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Enables direct access to memory allocations in a peer context.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_677cuCtxEnablePeerAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_676cuCtxEnablePeerAccess[] = "cuCtxEnablePeerAccess(CUcontext peerContext: CUcontext, unsigned int Flags)\n Enables direct access to memory allocations in a peer context.\n\n    If both the current context and `peerContext` are on devices which\n    support unified addressing (as may be queried using\n    CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING) and same major compute\n    capability, then on success all allocations from `peerContext` will\n    immediately be accessible by the current context. See Unified\n    Addressing for additional details.\n\n    Note that access granted by this call is unidirectional and that in\n    order to access memory from the current context in `peerContext`, a\n    separate symmetric call to cuCtxEnablePeerAccess() is required.\n\n    Note that there are both device-wide and system-wide limitations per\n    system configuration, as noted in the CUDA Programming Guide under the\n    section \"Peer-to-Peer Memory Access\".\n\n    Returns CUDA_ERROR_PEER_ACCESS_UNSUPPORTED if cuDeviceCanAccessPeer()\n    indicates that the CUdevice of the current context cannot directly\n    access memory from the CUdevice of `peerContext`.\n\n    Returns CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED if direct access of\n    `peerContext` from the current context has already been enabled.\n\n    Returns CUDA_ERROR_TOO_MANY_PEERS if direct peer access is not possible\n    because hardware resources required for peer access have been\n    exhausted.\n\n    Returns CUDA_ERROR_INVALID_CONTEXT if there is no current context,\n    `peerContext` is not a valid context, or if the current context is\n    `peerContext`.\n\n    Returns CUDA_ERROR_INVALID_VALUE if `Flags` is not 0.\n\n    Parameters\n    ----------\n    peerContext : CUcontext\n        Peer context to enable direct access to from the current context\n    Flags : unsigned int\n        Reserved for future use and must be set to 0\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_""ERROR_NOT_INITIALIZED\n        CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED\n        CUDA_ERROR_TOO_MANY_PEERS\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_PEER_ACCESS_UNSUPPORTED\n        CUDA_ERROR_INVALID_VALUE\n    None\n        None\n\n    See Also\n    --------\n    cuDeviceCanAccessPeer\n    cuCtxDisablePeerAccess\n    cudaDeviceEnablePeerAccess\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_677cuCtxEnablePeerAccess = {"cuCtxEnablePeerAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_677cuCtxEnablePeerAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_676cuCtxEnablePeerAccess};
static PyObject *__pyx_pw_4cuda_4cuda_677cuCtxEnablePeerAccess(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_peerContext = 0;
  unsigned int __pyx_v_Flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxEnablePeerAccess (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_peerContext,&__pyx_n_s_Flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_peerContext)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuCtxEnablePeerAccess", 1, 2, 2, 1); __PYX_ERR(0, 27392, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuCtxEnablePeerAccess") < 0)) __PYX_ERR(0, 27392, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_peerContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)values[0]);
    __pyx_v_Flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_Flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27392, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuCtxEnablePeerAccess", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27392, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuCtxEnablePeerAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_peerContext), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "peerContext", 0))) __PYX_ERR(0, 27392, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_676cuCtxEnablePeerAccess(__pyx_self, __pyx_v_peerContext, __pyx_v_Flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_676cuCtxEnablePeerAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_peerContext, unsigned int __pyx_v_Flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__866)
  __Pyx_RefNannySetupContext("cuCtxEnablePeerAccess", 0);
  __Pyx_TraceCall("cuCtxEnablePeerAccess", __pyx_f[0], 27392, 0, __PYX_ERR(0, 27392, __pyx_L1_error));

  /* "cuda/cuda.pyx":27454
 *     cudaDeviceEnablePeerAccess
 *     """
 *     err = ccuda.cuCtxEnablePeerAccess(peerContext._ptr[0], Flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxEnablePeerAccess((__pyx_v_peerContext->_ptr[0]), __pyx_v_Flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27454, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27455
 *     """
 *     err = ccuda.cuCtxEnablePeerAccess(peerContext._ptr[0], Flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27392
 * 
 * @cython.embedsignature(True)
 * def cuCtxEnablePeerAccess(peerContext not None : CUcontext, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Enables direct access to memory allocations in a peer context.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxEnablePeerAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27458
 * 
 * @cython.embedsignature(True)
 * def cuCtxDisablePeerAccess(peerContext not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Disables direct access to memory allocations in a peer context and unregisters any registered allocations.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_679cuCtxDisablePeerAccess(PyObject *__pyx_self, PyObject *__pyx_v_peerContext); /*proto*/
static char __pyx_doc_4cuda_4cuda_678cuCtxDisablePeerAccess[] = "cuCtxDisablePeerAccess(CUcontext peerContext: CUcontext)\n Disables direct access to memory allocations in a peer context and unregisters any registered allocations.\n\n    Returns CUDA_ERROR_PEER_ACCESS_NOT_ENABLED if direct peer access has\n    not yet been enabled from `peerContext` to the current context.\n\n    Returns CUDA_ERROR_INVALID_CONTEXT if there is no current context, or\n    if `peerContext` is not a valid context.\n\n    Parameters\n    ----------\n    peerContext : CUcontext\n        Peer context to disable direct access to\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_PEER_ACCESS_NOT_ENABLED\n        CUDA_ERROR_INVALID_CONTEXT\n    None\n        None\n\n    See Also\n    --------\n    cuDeviceCanAccessPeer\n    cuCtxEnablePeerAccess\n    cudaDeviceDisablePeerAccess\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_679cuCtxDisablePeerAccess = {"cuCtxDisablePeerAccess", (PyCFunction)__pyx_pw_4cuda_4cuda_679cuCtxDisablePeerAccess, METH_O, __pyx_doc_4cuda_4cuda_678cuCtxDisablePeerAccess};
static PyObject *__pyx_pw_4cuda_4cuda_679cuCtxDisablePeerAccess(PyObject *__pyx_self, PyObject *__pyx_v_peerContext) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuCtxDisablePeerAccess (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_peerContext), __pyx_ptype_4cuda_4cuda_CUcontext, 0, "peerContext", 0))) __PYX_ERR(0, 27458, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_678cuCtxDisablePeerAccess(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUcontext *)__pyx_v_peerContext));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_678cuCtxDisablePeerAccess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUcontext *__pyx_v_peerContext) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__867)
  __Pyx_RefNannySetupContext("cuCtxDisablePeerAccess", 0);
  __Pyx_TraceCall("cuCtxDisablePeerAccess", __pyx_f[0], 27458, 0, __PYX_ERR(0, 27458, __pyx_L1_error));

  /* "cuda/cuda.pyx":27489
 *     cudaDeviceDisablePeerAccess
 *     """
 *     err = ccuda.cuCtxDisablePeerAccess(peerContext._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuCtxDisablePeerAccess((__pyx_v_peerContext->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27489, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27490
 *     """
 *     err = ccuda.cuCtxDisablePeerAccess(peerContext._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27458
 * 
 * @cython.embedsignature(True)
 * def cuCtxDisablePeerAccess(peerContext not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Disables direct access to memory allocations in a peer context and unregisters any registered allocations.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuCtxDisablePeerAccess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27493
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetP2PAttribute(attrib not None : CUdevice_P2PAttribute, srcDevice not None : CUdevice, dstDevice not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries attributes of the link between two devices.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_681cuDeviceGetP2PAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_680cuDeviceGetP2PAttribute[] = "cuDeviceGetP2PAttribute(attrib: CUdevice_P2PAttribute, CUdevice srcDevice: CUdevice, CUdevice dstDevice: CUdevice)\n Queries attributes of the link between two devices.\n\n    Returns in `*value` the value of the requested attribute `attrib` of\n    the link between `srcDevice` and `dstDevice`. The supported attributes\n    are: CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK: A relative value\n    indicating the performance of the link between two devices.\n    CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED P2P: 1 if P2P Access is\n    enable. CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED: 1 if Atomic\n    operations over the link are supported.\n    CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED: 1 if cudaArray can\n    be accessed over the link.\n\n    Returns CUDA_ERROR_INVALID_DEVICE if `srcDevice` or `dstDevice` are not\n    valid or if they represent the same device.\n\n    Returns CUDA_ERROR_INVALID_VALUE if `attrib` is not valid or if `value`\n    is a null pointer.\n\n    Parameters\n    ----------\n    attrib : CUdevice_P2PAttribute\n        The requested attribute of the link between `srcDevice` and\n        `dstDevice`.\n    srcDevice : CUdevice\n        The source device of the target link.\n    dstDevice : CUdevice\n        The destination device of the target link.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_DEVICE\n        CUDA_ERROR_INVALID_VALUE\n    value : int\n        Returned value of the requested attribute\n\n    See Also\n    --------\n    cuCtxEnablePeerAccess\n    cuCtxDisablePeerAccess\n    cuDeviceCanAccessPeer\n    cudaDeviceGetP2PAttribute\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_681cuDeviceGetP2PAttribute = {"cuDeviceGetP2PAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_681cuDeviceGetP2PAttribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_680cuDeviceGetP2PAttribute};
static PyObject *__pyx_pw_4cuda_4cuda_681cuDeviceGetP2PAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_attrib = 0;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_srcDevice = 0;
  struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dstDevice = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuDeviceGetP2PAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_attrib,&__pyx_n_s_srcDevice_2,&__pyx_n_s_dstDevice_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attrib)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_srcDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetP2PAttribute", 1, 3, 3, 1); __PYX_ERR(0, 27493, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstDevice_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuDeviceGetP2PAttribute", 1, 3, 3, 2); __PYX_ERR(0, 27493, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuDeviceGetP2PAttribute") < 0)) __PYX_ERR(0, 27493, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_attrib = values[0];
    __pyx_v_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[1]);
    __pyx_v_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdevice *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuDeviceGetP2PAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27493, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetP2PAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_attrib) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "attrib"); __PYX_ERR(0, 27493, __pyx_L1_error)
  }
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_srcDevice), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "srcDevice", 0))) __PYX_ERR(0, 27493, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstDevice), __pyx_ptype_4cuda_4cuda_CUdevice, 0, "dstDevice", 0))) __PYX_ERR(0, 27493, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_680cuDeviceGetP2PAttribute(__pyx_self, __pyx_v_attrib, __pyx_v_srcDevice, __pyx_v_dstDevice);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_680cuDeviceGetP2PAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_attrib, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_srcDevice, struct __pyx_obj_4cuda_4cuda_CUdevice *__pyx_v_dstDevice) {
  int __pyx_v_value;
  __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute __pyx_v_cattrib;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute __pyx_t_2;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__868)
  __Pyx_RefNannySetupContext("cuDeviceGetP2PAttribute", 0);
  __Pyx_TraceCall("cuDeviceGetP2PAttribute", __pyx_f[0], 27493, 0, __PYX_ERR(0, 27493, __pyx_L1_error));

  /* "cuda/cuda.pyx":27540
 *     cudaDeviceGetP2PAttribute
 *     """
 *     cdef int value = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUdevice_P2PAttribute cattrib = attrib.value
 *     err = ccuda.cuDeviceGetP2PAttribute(&value, cattrib, srcDevice._ptr[0], dstDevice._ptr[0])
 */
  __pyx_v_value = 0;

  /* "cuda/cuda.pyx":27541
 *     """
 *     cdef int value = 0
 *     cdef ccuda.CUdevice_P2PAttribute cattrib = attrib.value             # <<<<<<<<<<<<<<
 *     err = ccuda.cuDeviceGetP2PAttribute(&value, cattrib, srcDevice._ptr[0], dstDevice._ptr[0])
 *     return (CUresult(err), value)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 27541, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cattrib = __pyx_t_2;

  /* "cuda/cuda.pyx":27542
 *     cdef int value = 0
 *     cdef ccuda.CUdevice_P2PAttribute cattrib = attrib.value
 *     err = ccuda.cuDeviceGetP2PAttribute(&value, cattrib, srcDevice._ptr[0], dstDevice._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), value)
 * 
 */
  __pyx_t_3 = __pyx_f_4cuda_5ccuda_cuDeviceGetP2PAttribute((&__pyx_v_value), __pyx_v_cattrib, (__pyx_v_srcDevice->_ptr[0]), (__pyx_v_dstDevice->_ptr[0])); if (unlikely(__pyx_t_3 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27542, __pyx_L1_error)
  __pyx_v_err = __pyx_t_3;

  /* "cuda/cuda.pyx":27543
 *     cdef ccuda.CUdevice_P2PAttribute cattrib = attrib.value
 *     err = ccuda.cuDeviceGetP2PAttribute(&value, cattrib, srcDevice._ptr[0], dstDevice._ptr[0])
 *     return (CUresult(err), value)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27493
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetP2PAttribute(attrib not None : CUdevice_P2PAttribute, srcDevice not None : CUdevice, dstDevice not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries attributes of the link between two devices.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cuda.cuda.cuDeviceGetP2PAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27546
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnregisterResource(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Unregisters a graphics resource for access by CUDA.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_683cuGraphicsUnregisterResource(PyObject *__pyx_self, PyObject *__pyx_v_resource); /*proto*/
static char __pyx_doc_4cuda_4cuda_682cuGraphicsUnregisterResource[] = "cuGraphicsUnregisterResource(CUgraphicsResource resource: CUgraphicsResource)\n Unregisters a graphics resource for access by CUDA.\n\n    Unregisters the graphics resource `resource` so it is not accessible by\n    CUDA unless registered again.\n\n    If `resource` is invalid then CUDA_ERROR_INVALID_HANDLE is returned.\n\n    Parameters\n    ----------\n    resource : CUgraphicsResource\n        Resource to unregister\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_UNKNOWN\n    None\n        None\n\n    See Also\n    --------\n    cudaGraphicsUnregisterResource\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_683cuGraphicsUnregisterResource = {"cuGraphicsUnregisterResource", (PyCFunction)__pyx_pw_4cuda_4cuda_683cuGraphicsUnregisterResource, METH_O, __pyx_doc_4cuda_4cuda_682cuGraphicsUnregisterResource};
static PyObject *__pyx_pw_4cuda_4cuda_683cuGraphicsUnregisterResource(PyObject *__pyx_self, PyObject *__pyx_v_resource) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsUnregisterResource (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resource), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 0, "resource", 0))) __PYX_ERR(0, 27546, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_682cuGraphicsUnregisterResource(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_resource));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_682cuGraphicsUnregisterResource(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__869)
  __Pyx_RefNannySetupContext("cuGraphicsUnregisterResource", 0);
  __Pyx_TraceCall("cuGraphicsUnregisterResource", __pyx_f[0], 27546, 0, __PYX_ERR(0, 27546, __pyx_L1_error));

  /* "cuda/cuda.pyx":27575
 *     cudaGraphicsUnregisterResource
 *     """
 *     err = ccuda.cuGraphicsUnregisterResource(resource._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphicsUnregisterResource((__pyx_v_resource->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27575, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27576
 *     """
 *     err = ccuda.cuGraphicsUnregisterResource(resource._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27546
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnregisterResource(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Unregisters a graphics resource for access by CUDA.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsUnregisterResource", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27579
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsSubResourceGetMappedArray(resource not None : CUgraphicsResource, unsigned int arrayIndex, unsigned int mipLevel):             # <<<<<<<<<<<<<<
 *     """ Get an array through which to access a subresource of a mapped graphics resource.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_685cuGraphicsSubResourceGetMappedArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_684cuGraphicsSubResourceGetMappedArray[] = "cuGraphicsSubResourceGetMappedArray(CUgraphicsResource resource: CUgraphicsResource, unsigned int arrayIndex, unsigned int mipLevel)\n Get an array through which to access a subresource of a mapped graphics resource.\n\n    Returns in `*pArray` an array through which the subresource of the\n    mapped graphics resource `resource` which corresponds to array index\n    `arrayIndex` and mipmap level `mipLevel` may be accessed. The value set\n    in `*pArray` may change every time that `resource` is mapped.\n\n    If `resource` is not a texture then it cannot be accessed via an array\n    and CUDA_ERROR_NOT_MAPPED_AS_ARRAY is returned. If `arrayIndex` is not\n    a valid array index for `resource` then CUDA_ERROR_INVALID_VALUE is\n    returned. If `mipLevel` is not a valid mipmap level for `resource` then\n    CUDA_ERROR_INVALID_VALUE is returned. If `resource` is not mapped then\n    CUDA_ERROR_NOT_MAPPED is returned.\n\n    Parameters\n    ----------\n    resource : CUgraphicsResource\n        Mapped resource to access\n    arrayIndex : unsigned int\n        Array index for array textures or cubemap face index as defined by\n        CUarray_cubemap_face for cubemap textures for the subresource to\n        access\n    mipLevel : unsigned int\n        Mipmap level for the subresource to access\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_MAPPED\n        CUDA_ERROR_NOT_MAPPED_AS_ARRAY\n    pArray : CUarray\n        Returned array through which a subresource of `resource` may be\n        accessed\n\n    See Also\n    --------\n    cuGraphicsResourceGetMappedPointer\n    cudaGraphicsSubResourceGetMappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_685cuGraphicsSubResourceGetMappedArray = {"cuGraphicsSubResourceGetMappedArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_685cuGraphicsSubResourceGetMappedArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_684cuGraphicsSubResourceGetMappedArray};
static PyObject *__pyx_pw_4cuda_4cuda_685cuGraphicsSubResourceGetMappedArray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource = 0;
  unsigned int __pyx_v_arrayIndex;
  unsigned int __pyx_v_mipLevel;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsSubResourceGetMappedArray (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_resource_2,&__pyx_n_s_arrayIndex,&__pyx_n_s_mipLevel,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resource_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arrayIndex)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsSubResourceGetMappedArray", 1, 3, 3, 1); __PYX_ERR(0, 27579, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mipLevel)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsSubResourceGetMappedArray", 1, 3, 3, 2); __PYX_ERR(0, 27579, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphicsSubResourceGetMappedArray") < 0)) __PYX_ERR(0, 27579, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_resource = ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)values[0]);
    __pyx_v_arrayIndex = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_arrayIndex == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27579, __pyx_L3_error)
    __pyx_v_mipLevel = __Pyx_PyInt_As_unsigned_int(values[2]); if (unlikely((__pyx_v_mipLevel == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27579, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphicsSubResourceGetMappedArray", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27579, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsSubResourceGetMappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resource), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 0, "resource", 0))) __PYX_ERR(0, 27579, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_684cuGraphicsSubResourceGetMappedArray(__pyx_self, __pyx_v_resource, __pyx_v_arrayIndex, __pyx_v_mipLevel);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_684cuGraphicsSubResourceGetMappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource, unsigned int __pyx_v_arrayIndex, unsigned int __pyx_v_mipLevel) {
  struct __pyx_obj_4cuda_4cuda_CUarray *__pyx_v_pArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__870)
  __Pyx_RefNannySetupContext("cuGraphicsSubResourceGetMappedArray", 0);
  __Pyx_TraceCall("cuGraphicsSubResourceGetMappedArray", __pyx_f[0], 27579, 0, __PYX_ERR(0, 27579, __pyx_L1_error));

  /* "cuda/cuda.pyx":27625
 *     cudaGraphicsSubResourceGetMappedArray
 *     """
 *     cdef CUarray pArray = CUarray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphicsSubResourceGetMappedArray(pArray._ptr, resource._ptr[0], arrayIndex, mipLevel)
 *     return (CUresult(err), pArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27626
 *     """
 *     cdef CUarray pArray = CUarray()
 *     err = ccuda.cuGraphicsSubResourceGetMappedArray(pArray._ptr, resource._ptr[0], arrayIndex, mipLevel)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphicsSubResourceGetMappedArray(__pyx_v_pArray->_ptr, (__pyx_v_resource->_ptr[0]), __pyx_v_arrayIndex, __pyx_v_mipLevel); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27626, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27627
 *     cdef CUarray pArray = CUarray()
 *     err = ccuda.cuGraphicsSubResourceGetMappedArray(pArray._ptr, resource._ptr[0], arrayIndex, mipLevel)
 *     return (CUresult(err), pArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27579
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsSubResourceGetMappedArray(resource not None : CUgraphicsResource, unsigned int arrayIndex, unsigned int mipLevel):             # <<<<<<<<<<<<<<
 *     """ Get an array through which to access a subresource of a mapped graphics resource.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsSubResourceGetMappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27630
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedMipmappedArray(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a mipmapped array through which to access a mapped graphics resource.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_687cuGraphicsResourceGetMappedMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_v_resource); /*proto*/
static char __pyx_doc_4cuda_4cuda_686cuGraphicsResourceGetMappedMipmappedArray[] = "cuGraphicsResourceGetMappedMipmappedArray(CUgraphicsResource resource: CUgraphicsResource)\n Get a mipmapped array through which to access a mapped graphics resource.\n\n    Returns in `*pMipmappedArray` a mipmapped array through which the\n    mapped graphics resource `resource`. The value set in\n    `*pMipmappedArray` may change every time that `resource` is mapped.\n\n    If `resource` is not a texture then it cannot be accessed via a\n    mipmapped array and CUDA_ERROR_NOT_MAPPED_AS_ARRAY is returned. If\n    `resource` is not mapped then CUDA_ERROR_NOT_MAPPED is returned.\n\n    Parameters\n    ----------\n    resource : CUgraphicsResource\n        Mapped resource to access\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_MAPPED\n        CUDA_ERROR_NOT_MAPPED_AS_ARRAY\n    pMipmappedArray : CUmipmappedArray\n        Returned mipmapped array through which `resource` may be accessed\n\n    See Also\n    --------\n    cuGraphicsResourceGetMappedPointer\n    cudaGraphicsResourceGetMappedMipmappedArray\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_687cuGraphicsResourceGetMappedMipmappedArray = {"cuGraphicsResourceGetMappedMipmappedArray", (PyCFunction)__pyx_pw_4cuda_4cuda_687cuGraphicsResourceGetMappedMipmappedArray, METH_O, __pyx_doc_4cuda_4cuda_686cuGraphicsResourceGetMappedMipmappedArray};
static PyObject *__pyx_pw_4cuda_4cuda_687cuGraphicsResourceGetMappedMipmappedArray(PyObject *__pyx_self, PyObject *__pyx_v_resource) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsResourceGetMappedMipmappedArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resource), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 0, "resource", 0))) __PYX_ERR(0, 27630, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_686cuGraphicsResourceGetMappedMipmappedArray(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_resource));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_686cuGraphicsResourceGetMappedMipmappedArray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource) {
  struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *__pyx_v_pMipmappedArray = 0;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__871)
  __Pyx_RefNannySetupContext("cuGraphicsResourceGetMappedMipmappedArray", 0);
  __Pyx_TraceCall("cuGraphicsResourceGetMappedMipmappedArray", __pyx_f[0], 27630, 0, __PYX_ERR(0, 27630, __pyx_L1_error));

  /* "cuda/cuda.pyx":27665
 *     cudaGraphicsResourceGetMappedMipmappedArray
 *     """
 *     cdef CUmipmappedArray pMipmappedArray = CUmipmappedArray()             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphicsResourceGetMappedMipmappedArray(pMipmappedArray._ptr, resource._ptr[0])
 *     return (CUresult(err), pMipmappedArray)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27666
 *     """
 *     cdef CUmipmappedArray pMipmappedArray = CUmipmappedArray()
 *     err = ccuda.cuGraphicsResourceGetMappedMipmappedArray(pMipmappedArray._ptr, resource._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pMipmappedArray)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphicsResourceGetMappedMipmappedArray(__pyx_v_pMipmappedArray->_ptr, (__pyx_v_resource->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27666, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27667
 *     cdef CUmipmappedArray pMipmappedArray = CUmipmappedArray()
 *     err = ccuda.cuGraphicsResourceGetMappedMipmappedArray(pMipmappedArray._ptr, resource._ptr[0])
 *     return (CUresult(err), pMipmappedArray)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pMipmappedArray));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pMipmappedArray));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_pMipmappedArray));
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27630
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedMipmappedArray(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a mipmapped array through which to access a mapped graphics resource.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsResourceGetMappedMipmappedArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pMipmappedArray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27670
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedPointer(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a device pointer through which to access a mapped graphics resource.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_689cuGraphicsResourceGetMappedPointer(PyObject *__pyx_self, PyObject *__pyx_v_resource); /*proto*/
static char __pyx_doc_4cuda_4cuda_688cuGraphicsResourceGetMappedPointer[] = "cuGraphicsResourceGetMappedPointer(CUgraphicsResource resource: CUgraphicsResource)\n Get a device pointer through which to access a mapped graphics resource.\n\n    Returns in `*pDevPtr` a pointer through which the mapped graphics\n    resource `resource` may be accessed. Returns in `pSize` the size of the\n    memory in bytes which may be accessed from that pointer. The value set\n    in `pPointer` may change every time that `resource` is mapped.\n\n    If `resource` is not a buffer then it cannot be accessed via a pointer\n    and CUDA_ERROR_NOT_MAPPED_AS_POINTER is returned. If `resource` is not\n    mapped then CUDA_ERROR_NOT_MAPPED is returned.   pDevPtr   - Returned\n    pointer through which `resource` may be accessed      pSize   -\n    Returned size of the buffer accessible starting at `*pPointer`\n    resource   - Mapped resource to access    CUDA_SUCCESS,\n    CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED,\n    CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE,\n    CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED,\n    CUDA_ERROR_NOT_MAPPED_AS_POINTER \notefnerr  cuGraphicsMapResources,\n    cuGraphicsSubResourceGetMappedArray,\n    cudaGraphicsResourceGetMappedPointer\n\n    Returns\n    -------\n    CUresult\n\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_689cuGraphicsResourceGetMappedPointer = {"cuGraphicsResourceGetMappedPointer", (PyCFunction)__pyx_pw_4cuda_4cuda_689cuGraphicsResourceGetMappedPointer, METH_O, __pyx_doc_4cuda_4cuda_688cuGraphicsResourceGetMappedPointer};
static PyObject *__pyx_pw_4cuda_4cuda_689cuGraphicsResourceGetMappedPointer(PyObject *__pyx_self, PyObject *__pyx_v_resource) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsResourceGetMappedPointer (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resource), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 0, "resource", 0))) __PYX_ERR(0, 27670, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_688cuGraphicsResourceGetMappedPointer(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)__pyx_v_resource));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_688cuGraphicsResourceGetMappedPointer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource) {
  struct __pyx_obj_4cuda_4cuda_CUdeviceptr *__pyx_v_pDevPtr = 0;
  size_t __pyx_v_pSize;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__872)
  __Pyx_RefNannySetupContext("cuGraphicsResourceGetMappedPointer", 0);
  __Pyx_TraceCall("cuGraphicsResourceGetMappedPointer", __pyx_f[0], 27670, 0, __PYX_ERR(0, 27670, __pyx_L1_error));

  /* "cuda/cuda.pyx":27698
 *         None
 *     """
 *     cdef CUdeviceptr pDevPtr = CUdeviceptr()             # <<<<<<<<<<<<<<
 *     cdef size_t pSize = 0
 *     err = ccuda.cuGraphicsResourceGetMappedPointer(pDevPtr._ptr, &pSize, resource._ptr[0])
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pDevPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27699
 *     """
 *     cdef CUdeviceptr pDevPtr = CUdeviceptr()
 *     cdef size_t pSize = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphicsResourceGetMappedPointer(pDevPtr._ptr, &pSize, resource._ptr[0])
 *     return (CUresult(err), pDevPtr, pSize)
 */
  __pyx_v_pSize = 0;

  /* "cuda/cuda.pyx":27700
 *     cdef CUdeviceptr pDevPtr = CUdeviceptr()
 *     cdef size_t pSize = 0
 *     err = ccuda.cuGraphicsResourceGetMappedPointer(pDevPtr._ptr, &pSize, resource._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pDevPtr, pSize)
 * 
 */
  __pyx_t_2 = __pyx_f_4cuda_5ccuda_cuGraphicsResourceGetMappedPointer(__pyx_v_pDevPtr->_ptr, (&__pyx_v_pSize), (__pyx_v_resource->_ptr[0])); if (unlikely(__pyx_t_2 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27700, __pyx_L1_error)
  __pyx_v_err = __pyx_t_2;

  /* "cuda/cuda.pyx":27701
 *     cdef size_t pSize = 0
 *     err = ccuda.cuGraphicsResourceGetMappedPointer(pDevPtr._ptr, &pSize, resource._ptr[0])
 *     return (CUresult(err), pDevPtr, pSize)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_pSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_pDevPtr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pDevPtr));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_pDevPtr));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27670
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedPointer(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a device pointer through which to access a mapped graphics resource.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsResourceGetMappedPointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pDevPtr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27704
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceSetMapFlags(resource not None : CUgraphicsResource, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set usage flags for mapping a graphics resource.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_691cuGraphicsResourceSetMapFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_690cuGraphicsResourceSetMapFlags[] = "cuGraphicsResourceSetMapFlags(CUgraphicsResource resource: CUgraphicsResource, unsigned int flags)\n Set usage flags for mapping a graphics resource.\n\n    Set `flags` for mapping the graphics resource `resource`.\n\n    Changes to `flags` will take effect the next time `resource` is mapped.\n    The `flags` argument may be any of the following:\n\n    ::CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE: Specifies no hints about how\n    this resource will be used. It is therefore assumed that this resource\n    will be read from and written to by CUDA kernels. This is the default\n    value. ::CU_GRAPHICS_MAP_RESOURCE_FLAGS_READONLY: Specifies that CUDA\n    kernels which access this resource will not write to this resource.\n    ::CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITEDISCARD: Specifies that CUDA\n    kernels which access this resource will not read from this resource and\n    will write over the entire contents of the resource, so none of the\n    data previously stored in the resource will be preserved.\n\n    If `resource` is presently mapped for access by CUDA then\n    CUDA_ERROR_ALREADY_MAPPED is returned. If `flags` is not one of the\n    above values then CUDA_ERROR_INVALID_VALUE is returned.\n\n    Parameters\n    ----------\n    resource : CUgraphicsResource\n        Registered resource to set flags for\n    flags : unsigned int\n        Parameters for resource mapping\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_ALREADY_MAPPED\n    None\n        None\n\n    See Also\n    --------\n    cuGraphicsMapResources\n    cudaGraphicsResourceSetMapFlags\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_691cuGraphicsResourceSetMapFlags = {"cuGraphicsResourceSetMapFlags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_691cuGraphicsResourceSetMapFlags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_690cuGraphicsResourceSetMapFlags};
static PyObject *__pyx_pw_4cuda_4cuda_691cuGraphicsResourceSetMapFlags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource = 0;
  unsigned int __pyx_v_flags;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsResourceSetMapFlags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_resource_2,&__pyx_n_s_flags_2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resource_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsResourceSetMapFlags", 1, 2, 2, 1); __PYX_ERR(0, 27704, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphicsResourceSetMapFlags") < 0)) __PYX_ERR(0, 27704, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_resource = ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)values[0]);
    __pyx_v_flags = __Pyx_PyInt_As_unsigned_int(values[1]); if (unlikely((__pyx_v_flags == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27704, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphicsResourceSetMapFlags", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27704, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsResourceSetMapFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resource), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 0, "resource", 0))) __PYX_ERR(0, 27704, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_690cuGraphicsResourceSetMapFlags(__pyx_self, __pyx_v_resource, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_690cuGraphicsResourceSetMapFlags(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resource, unsigned int __pyx_v_flags) {
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__873)
  __Pyx_RefNannySetupContext("cuGraphicsResourceSetMapFlags", 0);
  __Pyx_TraceCall("cuGraphicsResourceSetMapFlags", __pyx_f[0], 27704, 0, __PYX_ERR(0, 27704, __pyx_L1_error));

  /* "cuda/cuda.pyx":27751
 *     cudaGraphicsResourceSetMapFlags
 *     """
 *     err = ccuda.cuGraphicsResourceSetMapFlags(resource._ptr[0], flags)             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGraphicsResourceSetMapFlags((__pyx_v_resource->_ptr[0]), __pyx_v_flags); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27751, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27752
 *     """
 *     err = ccuda.cuGraphicsResourceSetMapFlags(resource._ptr[0], flags)
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27704
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceSetMapFlags(resource not None : CUgraphicsResource, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set usage flags for mapping a graphics resource.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsResourceSetMapFlags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27755
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsMapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Map graphics resources for access by CUDA.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_693cuGraphicsMapResources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_692cuGraphicsMapResources[] = "cuGraphicsMapResources(unsigned int count, CUgraphicsResource resources: CUgraphicsResource, CUstream hStream: CUstream)\n Map graphics resources for access by CUDA.\n\n    Maps the `count` graphics resources in `resources` for access by CUDA.\n\n    The resources in `resources` may be accessed by CUDA until they are\n    unmapped. The graphics API from which `resources` were registered\n    should not access any resources while they are mapped by CUDA. If an\n    application does so, the results are undefined.\n\n    This function provides the synchronization guarantee that any graphics\n    calls issued before cuGraphicsMapResources() will complete before any\n    subsequent CUDA work issued in `stream` begins.\n\n    If `resources` includes any duplicate entries then\n    CUDA_ERROR_INVALID_HANDLE is returned. If any of `resources` are\n    presently mapped for access by CUDA then CUDA_ERROR_ALREADY_MAPPED is\n    returned.\n\n    Parameters\n    ----------\n    count : unsigned int\n        Number of resources to map\n    resources : CUgraphicsResource\n        Resources to map for CUDA usage\n    hStream : CUstream\n        Stream with which to synchronize\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_ALREADY_MAPPED\n        CUDA_ERROR_UNKNOWN\n    None\n        None\n\n    See Also\n    --------\n    cuGraphicsResourceGetMappedPointer\n    cuGraphicsSubResourceGetMappedArray\n    cuGraphicsUnmapResources\n    cudaGraphicsMapResources\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_693cuGraphicsMapResources = {"cuGraphicsMapResources", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_693cuGraphicsMapResources, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_692cuGraphicsMapResources};
static PyObject *__pyx_pw_4cuda_4cuda_693cuGraphicsMapResources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned int __pyx_v_count;
  struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resources = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsMapResources (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_count,&__pyx_n_s_resources,&__pyx_n_s_hStream_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsMapResources", 1, 3, 3, 1); __PYX_ERR(0, 27755, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsMapResources", 1, 3, 3, 2); __PYX_ERR(0, 27755, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphicsMapResources") < 0)) __PYX_ERR(0, 27755, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[0]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27755, __pyx_L3_error)
    __pyx_v_resources = ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)values[1]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphicsMapResources", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27755, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsMapResources", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resources), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 1, "resources", 0))) __PYX_ERR(0, 27755, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 27755, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_692cuGraphicsMapResources(__pyx_self, __pyx_v_count, __pyx_v_resources, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_692cuGraphicsMapResources(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resources, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUgraphicsResource *__pyx_v_cresources_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUgraphicsResource *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__874)
  __Pyx_RefNannySetupContext("cuGraphicsMapResources", 0);
  __Pyx_TraceCall("cuGraphicsMapResources", __pyx_f[0], 27755, 0, __PYX_ERR(0, 27755, __pyx_L1_error));

  /* "cuda/cuda.pyx":27803
 *     cudaGraphicsMapResources
 *     """
 *     cdef ccuda.CUgraphicsResource* cresources_ptr = resources._ptr if resources != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphicsMapResources(count, cresources_ptr, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_resources), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27803, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_resources->_ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cresources_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":27804
 *     """
 *     cdef ccuda.CUgraphicsResource* cresources_ptr = resources._ptr if resources != None else NULL
 *     err = ccuda.cuGraphicsMapResources(count, cresources_ptr, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphicsMapResources(__pyx_v_count, __pyx_v_cresources_ptr, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27804, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":27805
 *     cdef ccuda.CUgraphicsResource* cresources_ptr = resources._ptr if resources != None else NULL
 *     err = ccuda.cuGraphicsMapResources(count, cresources_ptr, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 27805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27755
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsMapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Map graphics resources for access by CUDA.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsMapResources", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27808
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnmapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Unmap graphics resources.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_695cuGraphicsUnmapResources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_694cuGraphicsUnmapResources[] = "cuGraphicsUnmapResources(unsigned int count, CUgraphicsResource resources: CUgraphicsResource, CUstream hStream: CUstream)\n Unmap graphics resources.\n\n    Unmaps the `count` graphics resources in `resources`.\n\n    Once unmapped, the resources in `resources` may not be accessed by CUDA\n    until they are mapped again.\n\n    This function provides the synchronization guarantee that any CUDA work\n    issued in `stream` before cuGraphicsUnmapResources() will complete\n    before any subsequently issued graphics work begins.\n\n    If `resources` includes any duplicate entries then\n    CUDA_ERROR_INVALID_HANDLE is returned. If any of `resources` are not\n    presently mapped for access by CUDA then CUDA_ERROR_NOT_MAPPED is\n    returned.\n\n    Parameters\n    ----------\n    count : unsigned int\n        Number of resources to unmap\n    resources : CUgraphicsResource\n        Resources to unmap\n    hStream : CUstream\n        Stream with which to synchronize\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_DEINITIALIZED\n        CUDA_ERROR_NOT_INITIALIZED\n        CUDA_ERROR_INVALID_CONTEXT\n        CUDA_ERROR_INVALID_HANDLE\n        CUDA_ERROR_NOT_MAPPED\n        CUDA_ERROR_UNKNOWN\n    None\n        None\n\n    See Also\n    --------\n    cuGraphicsMapResources\n    cudaGraphicsUnmapResources\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_695cuGraphicsUnmapResources = {"cuGraphicsUnmapResources", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_695cuGraphicsUnmapResources, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_694cuGraphicsUnmapResources};
static PyObject *__pyx_pw_4cuda_4cuda_695cuGraphicsUnmapResources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  unsigned int __pyx_v_count;
  struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resources = 0;
  struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGraphicsUnmapResources (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_count,&__pyx_n_s_resources,&__pyx_n_s_hStream_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsUnmapResources", 1, 3, 3, 1); __PYX_ERR(0, 27808, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hStream_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGraphicsUnmapResources", 1, 3, 3, 2); __PYX_ERR(0, 27808, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGraphicsUnmapResources") < 0)) __PYX_ERR(0, 27808, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_count = __Pyx_PyInt_As_unsigned_int(values[0]); if (unlikely((__pyx_v_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27808, __pyx_L3_error)
    __pyx_v_resources = ((struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *)values[1]);
    __pyx_v_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGraphicsUnmapResources", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27808, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsUnmapResources", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_resources), __pyx_ptype_4cuda_4cuda_CUgraphicsResource, 1, "resources", 0))) __PYX_ERR(0, 27808, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hStream), __pyx_ptype_4cuda_4cuda_CUstream, 0, "hStream", 0))) __PYX_ERR(0, 27808, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_694cuGraphicsUnmapResources(__pyx_self, __pyx_v_count, __pyx_v_resources, __pyx_v_hStream);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_694cuGraphicsUnmapResources(CYTHON_UNUSED PyObject *__pyx_self, unsigned int __pyx_v_count, struct __pyx_obj_4cuda_4cuda_CUgraphicsResource *__pyx_v_resources, struct __pyx_obj_4cuda_4cuda_CUstream *__pyx_v_hStream) {
  __pyx_t_4cuda_5ccuda_CUgraphicsResource *__pyx_v_cresources_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUgraphicsResource *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__875)
  __Pyx_RefNannySetupContext("cuGraphicsUnmapResources", 0);
  __Pyx_TraceCall("cuGraphicsUnmapResources", __pyx_f[0], 27808, 0, __PYX_ERR(0, 27808, __pyx_L1_error));

  /* "cuda/cuda.pyx":27852
 *     cudaGraphicsUnmapResources
 *     """
 *     cdef ccuda.CUgraphicsResource* cresources_ptr = resources._ptr if resources != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGraphicsUnmapResources(count, cresources_ptr, hStream._ptr[0])
 *     return (CUresult(err),)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_resources), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27852, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27852, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_resources->_ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cresources_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":27853
 *     """
 *     cdef ccuda.CUgraphicsResource* cresources_ptr = resources._ptr if resources != None else NULL
 *     err = ccuda.cuGraphicsUnmapResources(count, cresources_ptr, hStream._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err),)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGraphicsUnmapResources(__pyx_v_count, __pyx_v_cresources_ptr, (__pyx_v_hStream->_ptr[0])); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27853, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":27854
 *     cdef ccuda.CUgraphicsResource* cresources_ptr = resources._ptr if resources != None else NULL
 *     err = ccuda.cuGraphicsUnmapResources(count, cresources_ptr, hStream._ptr[0])
 *     return (CUresult(err),)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 27854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27808
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnmapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Unmap graphics resources.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGraphicsUnmapResources", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27857
 * 
 * @cython.embedsignature(True)
 * def cuGetProcAddress(char* symbol, int cudaVersion, flags not None : cuuint64_t):             # <<<<<<<<<<<<<<
 *     """ Returns the requested driver API function pointer.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_697cuGetProcAddress(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cuda_4cuda_696cuGetProcAddress[] = "cuGetProcAddress(char *symbol, int cudaVersion, cuuint64_t flags: cuuint64_t)\n Returns the requested driver API function pointer.\n\n    Returns in `**pfn` the address of the CUDA driver function for the\n    requested CUDA version and flags.\n\n    The CUDA version is specified as (1000 * major + 10 * minor), so CUDA\n    11.2 should be specified as 11020. For a requested driver symbol, if\n    the specified CUDA version is greater than or equal to the CUDA version\n    in which the driver symbol was introduced, this API will return the\n    function pointer to the corresponding versioned function.\n\n    The pointer returned by the API should be cast to a function pointer\n    matching the requested driver function's definition in the API header\n    file. The function pointer typedef can be picked up from the\n    corresponding typedefs header file. For example, cudaTypedefs.h\n    consists of function pointer typedefs for driver APIs defined in\n    cuda.h.\n\n    The API will return CUDA_ERROR_NOT_FOUND if the requested driver\n    function is not supported on the platform, no ABI compatible driver\n    function exists for the specified `cudaVersion` or if the driver symbol\n    is invalid.\n\n    The requested flags can be: CU_GET_PROC_ADDRESS_DEFAULT: This is the\n    default mode. This is equivalent to\n    CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM if the code is compiled\n    with default-stream per-thread compilation flag or the macro\n    CUDA_API_PER_THREAD_DEFAULT_STREAM is defined;\n    CU_GET_PROC_ADDRESS_LEGACY_STREAM otherwise.\n    CU_GET_PROC_ADDRESS_LEGACY_STREAM: This will enable the search for all\n    driver symbols that match the requested driver symbol name except the\n    corresponding per-thread versions.\n    CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM: This will enable the\n    search for all driver symbols that match the requested driver symbol\n    name including the per-thread versions. If a per-thread version is not\n    found"", the API will return the legacy version of the driver function.\n\n    Parameters\n    ----------\n    symbol : bytes\n        The base name of the driver API function to look for. As an\n        example, for the driver API cuMemAlloc_v2, `symbol` would be\n        cuMemAlloc and `cudaVersion` would be the ABI compatible CUDA\n        version for the _v2 variant.\n    cudaVersion : int\n        The CUDA version to look for the requested driver symbol\n    flags : cuuint64_t\n        Flags to specify search options.\n\n    Returns\n    -------\n    CUresult\n        CUDA_SUCCESS\n        CUDA_ERROR_INVALID_VALUE\n        CUDA_ERROR_NOT_SUPPORTED\n        CUDA_ERROR_NOT_FOUND\n    pfn : int\n        Location to return the function pointer to the requested driver\n        function\n\n    See Also\n    --------\n    cudaGetDriverEntryPoint\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_697cuGetProcAddress = {"cuGetProcAddress", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cuda_4cuda_697cuGetProcAddress, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cuda_4cuda_696cuGetProcAddress};
static PyObject *__pyx_pw_4cuda_4cuda_697cuGetProcAddress(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_symbol;
  int __pyx_v_cudaVersion;
  struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_flags = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGetProcAddress (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_symbol,&__pyx_n_s_cudaVersion,&__pyx_n_s_flags_2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_symbol)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cudaVersion)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGetProcAddress", 1, 3, 3, 1); __PYX_ERR(0, 27857, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cuGetProcAddress", 1, 3, 3, 2); __PYX_ERR(0, 27857, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cuGetProcAddress") < 0)) __PYX_ERR(0, 27857, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_symbol = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_symbol) && PyErr_Occurred())) __PYX_ERR(0, 27857, __pyx_L3_error)
    __pyx_v_cudaVersion = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_cudaVersion == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27857, __pyx_L3_error)
    __pyx_v_flags = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuGetProcAddress", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27857, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cuda.cuda.cuGetProcAddress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags), __pyx_ptype_4cuda_4cuda_cuuint64_t, 0, "flags", 0))) __PYX_ERR(0, 27857, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_696cuGetProcAddress(__pyx_self, __pyx_v_symbol, __pyx_v_cudaVersion, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_696cuGetProcAddress(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_symbol, int __pyx_v_cudaVersion, struct __pyx_obj_4cuda_4cuda_cuuint64_t *__pyx_v_flags) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_pfn;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__876)
  __Pyx_RefNannySetupContext("cuGetProcAddress", 0);
  __Pyx_TraceCall("cuGetProcAddress", __pyx_f[0], 27857, 0, __PYX_ERR(0, 27857, __pyx_L1_error));

  /* "cuda/cuda.pyx":27922
 *     cudaGetDriverEntryPoint
 *     """
 *     cdef void_ptr pfn = 0             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGetProcAddress(symbol, <void**>&pfn, cudaVersion, flags._ptr[0])
 *     return (CUresult(err), pfn)
 */
  __pyx_v_pfn = 0;

  /* "cuda/cuda.pyx":27923
 *     """
 *     cdef void_ptr pfn = 0
 *     err = ccuda.cuGetProcAddress(symbol, <void**>&pfn, cudaVersion, flags._ptr[0])             # <<<<<<<<<<<<<<
 *     return (CUresult(err), pfn)
 * 
 */
  __pyx_t_1 = __pyx_f_4cuda_5ccuda_cuGetProcAddress(__pyx_v_symbol, ((void **)(&__pyx_v_pfn)), __pyx_v_cudaVersion, (__pyx_v_flags->_ptr[0])); if (unlikely(__pyx_t_1 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27923, __pyx_L1_error)
  __pyx_v_err = __pyx_t_1;

  /* "cuda/cuda.pyx":27924
 *     cdef void_ptr pfn = 0
 *     err = ccuda.cuGetProcAddress(symbol, <void**>&pfn, cudaVersion, flags._ptr[0])
 *     return (CUresult(err), pfn)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_pfn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27857
 * 
 * @cython.embedsignature(True)
 * def cuGetProcAddress(char* symbol, int cudaVersion, flags not None : cuuint64_t):             # <<<<<<<<<<<<<<
 *     """ Returns the requested driver API function pointer.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cuda.cuda.cuGetProcAddress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27927
 * 
 * @cython.embedsignature(True)
 * def cuGetExportTable(pExportTableId : CUuuid):             # <<<<<<<<<<<<<<
 *     """
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_699cuGetExportTable(PyObject *__pyx_self, PyObject *__pyx_v_pExportTableId); /*proto*/
static char __pyx_doc_4cuda_4cuda_698cuGetExportTable[] = "cuGetExportTable(CUuuid pExportTableId: CUuuid)\n \n\n    Returns\n    -------\n    CUresult\n\n    None\n        None\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_699cuGetExportTable = {"cuGetExportTable", (PyCFunction)__pyx_pw_4cuda_4cuda_699cuGetExportTable, METH_O, __pyx_doc_4cuda_4cuda_698cuGetExportTable};
static PyObject *__pyx_pw_4cuda_4cuda_699cuGetExportTable(PyObject *__pyx_self, PyObject *__pyx_v_pExportTableId) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuGetExportTable (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pExportTableId), __pyx_ptype_4cuda_4cuda_CUuuid, 1, "pExportTableId", 0))) __PYX_ERR(0, 27927, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cuda_4cuda_698cuGetExportTable(__pyx_self, ((struct __pyx_obj_4cuda_4cuda_CUuuid *)__pyx_v_pExportTableId));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_698cuGetExportTable(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cuda_4cuda_CUuuid *__pyx_v_pExportTableId) {
  __pyx_t_4cuda_4cuda_void_ptr __pyx_v_ppExportTable;
  __pyx_t_4cuda_5ccuda_CUuuid *__pyx_v_cpExportTableId_ptr;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  struct __pyx_t_4cuda_5ccuda_CUuuid_st *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  __pyx_t_4cuda_5ccuda_CUresult __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__877)
  __Pyx_RefNannySetupContext("cuGetExportTable", 0);
  __Pyx_TraceCall("cuGetExportTable", __pyx_f[0], 27927, 0, __PYX_ERR(0, 27927, __pyx_L1_error));

  /* "cuda/cuda.pyx":27937
 *         None
 *     """
 *     cdef void_ptr ppExportTable = 0             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUuuid* cpExportTableId_ptr = pExportTableId._ptr if pExportTableId != None else NULL
 *     err = ccuda.cuGetExportTable(<const void**>&ppExportTable, cpExportTableId_ptr)
 */
  __pyx_v_ppExportTable = 0;

  /* "cuda/cuda.pyx":27938
 *     """
 *     cdef void_ptr ppExportTable = 0
 *     cdef ccuda.CUuuid* cpExportTableId_ptr = pExportTableId._ptr if pExportTableId != None else NULL             # <<<<<<<<<<<<<<
 *     err = ccuda.cuGetExportTable(<const void**>&ppExportTable, cpExportTableId_ptr)
 *     return (CUresult(err), ppExportTable)
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_pExportTableId), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27938, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = __pyx_v_pExportTableId->__pyx_base._ptr;
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_v_cpExportTableId_ptr = __pyx_t_1;

  /* "cuda/cuda.pyx":27939
 *     cdef void_ptr ppExportTable = 0
 *     cdef ccuda.CUuuid* cpExportTableId_ptr = pExportTableId._ptr if pExportTableId != None else NULL
 *     err = ccuda.cuGetExportTable(<const void**>&ppExportTable, cpExportTableId_ptr)             # <<<<<<<<<<<<<<
 *     return (CUresult(err), ppExportTable)
 * 
 */
  __pyx_t_4 = __pyx_f_4cuda_5ccuda_cuGetExportTable(((void const **)(&__pyx_v_ppExportTable)), __pyx_v_cpExportTableId_ptr); if (unlikely(__pyx_t_4 == ((__pyx_t_4cuda_5ccuda_CUresult)__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND) && PyErr_Occurred())) __PYX_ERR(0, 27939, __pyx_L1_error)
  __pyx_v_err = __pyx_t_4;

  /* "cuda/cuda.pyx":27940
 *     cdef ccuda.CUuuid* cpExportTableId_ptr = pExportTableId._ptr if pExportTableId != None else NULL
 *     err = ccuda.cuGetExportTable(<const void**>&ppExportTable, cpExportTableId_ptr)
 *     return (CUresult(err), ppExportTable)             # <<<<<<<<<<<<<<
 * 
 * @cython.embedsignature(True)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_v_err); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 27940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyInt_From_unsigned_PY_LONG_LONG(__pyx_v_ppExportTable); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 27940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "cuda/cuda.pyx":27927
 * 
 * @cython.embedsignature(True)
 * def cuGetExportTable(pExportTableId : CUuuid):             # <<<<<<<<<<<<<<
 *     """
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cuda.cuda.cuGetExportTable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cuda/cuda.pyx":27943
 * 
 * @cython.embedsignature(True)
 * def sizeof(objType):             # <<<<<<<<<<<<<<
 *     """ Returns the size of provided CUDA Python structure in bytes
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cuda_4cuda_701sizeof(PyObject *__pyx_self, PyObject *__pyx_v_objType); /*proto*/
static char __pyx_doc_4cuda_4cuda_700sizeof[] = "sizeof(objType)\n Returns the size of provided CUDA Python structure in bytes\n\n    Parameters\n    ----------\n    objType : Any\n        CUDA Python object\n\n    Returns\n    -------\n    lowered_name : int\n        The size of `objType` in bytes\n    ";
static PyMethodDef __pyx_mdef_4cuda_4cuda_701sizeof = {"sizeof", (PyCFunction)__pyx_pw_4cuda_4cuda_701sizeof, METH_O, __pyx_doc_4cuda_4cuda_700sizeof};
static PyObject *__pyx_pw_4cuda_4cuda_701sizeof(PyObject *__pyx_self, PyObject *__pyx_v_objType) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sizeof (wrapper)", 0);
  __pyx_r = __pyx_pf_4cuda_4cuda_700sizeof(__pyx_self, ((PyObject *)__pyx_v_objType));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cuda_4cuda_700sizeof(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_objType) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__878)
  __Pyx_RefNannySetupContext("sizeof", 0);
  __Pyx_TraceCall("sizeof", __pyx_f[0], 27943, 0, __PYX_ERR(0, 27943, __pyx_L1_error));

  /* "cuda/cuda.pyx":27956
 *         The size of `objType` in bytes
 *     """
 *     if objType == CUuuid_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUuuid_st)
 *     if objType == CUipcEventHandle_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUuuid_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27956, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27957
 *     """
 *     if objType == CUuuid_st:
 *         return sizeof(ccuda.CUuuid_st)             # <<<<<<<<<<<<<<
 *     if objType == CUipcEventHandle_st:
 *         return sizeof(ccuda.CUipcEventHandle_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUuuid_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27956
 *         The size of `objType` in bytes
 *     """
 *     if objType == CUuuid_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUuuid_st)
 *     if objType == CUipcEventHandle_st:
 */
  }

  /* "cuda/cuda.pyx":27958
 *     if objType == CUuuid_st:
 *         return sizeof(ccuda.CUuuid_st)
 *     if objType == CUipcEventHandle_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcEventHandle_st)
 *     if objType == CUipcMemHandle_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcEventHandle_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27958, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27959
 *         return sizeof(ccuda.CUuuid_st)
 *     if objType == CUipcEventHandle_st:
 *         return sizeof(ccuda.CUipcEventHandle_st)             # <<<<<<<<<<<<<<
 *     if objType == CUipcMemHandle_st:
 *         return sizeof(ccuda.CUipcMemHandle_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUipcEventHandle_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27958
 *     if objType == CUuuid_st:
 *         return sizeof(ccuda.CUuuid_st)
 *     if objType == CUipcEventHandle_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcEventHandle_st)
 *     if objType == CUipcMemHandle_st:
 */
  }

  /* "cuda/cuda.pyx":27960
 *     if objType == CUipcEventHandle_st:
 *         return sizeof(ccuda.CUipcEventHandle_st)
 *     if objType == CUipcMemHandle_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcMemHandle_st)
 *     if objType == CUstreamMemOpWaitValueParams_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcMemHandle_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27960, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27960, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27961
 *         return sizeof(ccuda.CUipcEventHandle_st)
 *     if objType == CUipcMemHandle_st:
 *         return sizeof(ccuda.CUipcMemHandle_st)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamMemOpWaitValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUipcMemHandle_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27960
 *     if objType == CUipcEventHandle_st:
 *         return sizeof(ccuda.CUipcEventHandle_st)
 *     if objType == CUipcMemHandle_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcMemHandle_st)
 *     if objType == CUstreamMemOpWaitValueParams_st:
 */
  }

  /* "cuda/cuda.pyx":27962
 *     if objType == CUipcMemHandle_st:
 *         return sizeof(ccuda.CUipcMemHandle_st)
 *     if objType == CUstreamMemOpWaitValueParams_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)
 *     if objType == CUstreamMemOpWriteValueParams_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27962, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27962, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27963
 *         return sizeof(ccuda.CUipcMemHandle_st)
 *     if objType == CUstreamMemOpWaitValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamMemOpWriteValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWaitValueParams_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27962
 *     if objType == CUipcMemHandle_st:
 *         return sizeof(ccuda.CUipcMemHandle_st)
 *     if objType == CUstreamMemOpWaitValueParams_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)
 *     if objType == CUstreamMemOpWriteValueParams_st:
 */
  }

  /* "cuda/cuda.pyx":27964
 *     if objType == CUstreamMemOpWaitValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)
 *     if objType == CUstreamMemOpWriteValueParams_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27964, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27964, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27965
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)
 *     if objType == CUstreamMemOpWriteValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpWriteValueParams_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27964
 *     if objType == CUstreamMemOpWaitValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWaitValueParams_st)
 *     if objType == CUstreamMemOpWriteValueParams_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:
 */
  }

  /* "cuda/cuda.pyx":27966
 *     if objType == CUstreamMemOpWriteValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)
 *     if objType == CUstreamBatchMemOpParams_union:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27966, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27966, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27967
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamBatchMemOpParams_union:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUstreamMemOpFlushRemoteWritesParams_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27966
 *     if objType == CUstreamMemOpWriteValueParams_st:
 *         return sizeof(ccuda.CUstreamMemOpWriteValueParams_st)
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)
 *     if objType == CUstreamBatchMemOpParams_union:
 */
  }

  /* "cuda/cuda.pyx":27968
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)
 *     if objType == CUstreamBatchMemOpParams_union:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)
 *     if objType == CUdevprop_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27968, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27968, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27969
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)
 *     if objType == CUstreamBatchMemOpParams_union:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)             # <<<<<<<<<<<<<<
 *     if objType == CUdevprop_st:
 *         return sizeof(ccuda.CUdevprop_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(union __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_union))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27968
 *     if objType == CUstreamMemOpFlushRemoteWritesParams_st:
 *         return sizeof(ccuda.CUstreamMemOpFlushRemoteWritesParams_st)
 *     if objType == CUstreamBatchMemOpParams_union:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)
 *     if objType == CUdevprop_st:
 */
  }

  /* "cuda/cuda.pyx":27970
 *     if objType == CUstreamBatchMemOpParams_union:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)
 *     if objType == CUdevprop_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevprop_st)
 *     if objType == CUaccessPolicyWindow_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevprop_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27970, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27971
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)
 *     if objType == CUdevprop_st:
 *         return sizeof(ccuda.CUdevprop_st)             # <<<<<<<<<<<<<<
 *     if objType == CUaccessPolicyWindow_st:
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUdevprop_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27971, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27970
 *     if objType == CUstreamBatchMemOpParams_union:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_union)
 *     if objType == CUdevprop_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevprop_st)
 *     if objType == CUaccessPolicyWindow_st:
 */
  }

  /* "cuda/cuda.pyx":27972
 *     if objType == CUdevprop_st:
 *         return sizeof(ccuda.CUdevprop_st)
 *     if objType == CUaccessPolicyWindow_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27972, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27972, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27973
 *         return sizeof(ccuda.CUdevprop_st)
 *     if objType == CUaccessPolicyWindow_st:
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27972
 *     if objType == CUdevprop_st:
 *         return sizeof(ccuda.CUdevprop_st)
 *     if objType == CUaccessPolicyWindow_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":27974
 *     if objType == CUaccessPolicyWindow_st:
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27974, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27974, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27975
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27974
 *     if objType == CUaccessPolicyWindow_st:
 *         return sizeof(ccuda.CUaccessPolicyWindow_st)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":27976
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)
 *     if objType == CUDA_HOST_NODE_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27976, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27977
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_HOST_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27977, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27976
 *     if objType == CUDA_KERNEL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_st)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)
 *     if objType == CUDA_HOST_NODE_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":27978
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)
 *     if objType == CUDA_HOST_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)
 *     if objType == CUkernelNodeAttrValue_union:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27978, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27978, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27979
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)
 *     if objType == CUDA_HOST_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUkernelNodeAttrValue_union:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27978
 *     if objType == CUDA_MEMSET_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_st)
 *     if objType == CUDA_HOST_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)
 *     if objType == CUkernelNodeAttrValue_union:
 */
  }

  /* "cuda/cuda.pyx":27980
 *     if objType == CUDA_HOST_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)
 *     if objType == CUkernelNodeAttrValue_union:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)
 *     if objType == CUstreamAttrValue_union:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27980, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27980, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27981
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)
 *     if objType == CUkernelNodeAttrValue_union:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamAttrValue_union:
 *         return sizeof(ccuda.CUstreamAttrValue_union)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(union __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_union))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27981, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27980
 *     if objType == CUDA_HOST_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_st)
 *     if objType == CUkernelNodeAttrValue_union:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)
 *     if objType == CUstreamAttrValue_union:
 */
  }

  /* "cuda/cuda.pyx":27982
 *     if objType == CUkernelNodeAttrValue_union:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)
 *     if objType == CUstreamAttrValue_union:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamAttrValue_union)
 *     if objType == CUexecAffinitySmCount_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27982, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27983
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)
 *     if objType == CUstreamAttrValue_union:
 *         return sizeof(ccuda.CUstreamAttrValue_union)             # <<<<<<<<<<<<<<
 *     if objType == CUexecAffinitySmCount_st:
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(union __pyx_t_4cuda_5ccuda_CUstreamAttrValue_union))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27982
 *     if objType == CUkernelNodeAttrValue_union:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_union)
 *     if objType == CUstreamAttrValue_union:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamAttrValue_union)
 *     if objType == CUexecAffinitySmCount_st:
 */
  }

  /* "cuda/cuda.pyx":27984
 *     if objType == CUstreamAttrValue_union:
 *         return sizeof(ccuda.CUstreamAttrValue_union)
 *     if objType == CUexecAffinitySmCount_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)
 *     if objType == CUexecAffinityParam_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27984, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27984, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27985
 *         return sizeof(ccuda.CUstreamAttrValue_union)
 *     if objType == CUexecAffinitySmCount_st:
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)             # <<<<<<<<<<<<<<
 *     if objType == CUexecAffinityParam_st:
 *         return sizeof(ccuda.CUexecAffinityParam_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27984
 *     if objType == CUstreamAttrValue_union:
 *         return sizeof(ccuda.CUstreamAttrValue_union)
 *     if objType == CUexecAffinitySmCount_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)
 *     if objType == CUexecAffinityParam_st:
 */
  }

  /* "cuda/cuda.pyx":27986
 *     if objType == CUexecAffinitySmCount_st:
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)
 *     if objType == CUexecAffinityParam_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinityParam_st)
 *     if objType == CUDA_MEMCPY2D_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27986, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27986, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27987
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)
 *     if objType == CUexecAffinityParam_st:
 *         return sizeof(ccuda.CUexecAffinityParam_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY2D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUexecAffinityParam_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27986
 *     if objType == CUexecAffinitySmCount_st:
 *         return sizeof(ccuda.CUexecAffinitySmCount_st)
 *     if objType == CUexecAffinityParam_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinityParam_st)
 *     if objType == CUDA_MEMCPY2D_st:
 */
  }

  /* "cuda/cuda.pyx":27988
 *     if objType == CUexecAffinityParam_st:
 *         return sizeof(ccuda.CUexecAffinityParam_st)
 *     if objType == CUDA_MEMCPY2D_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)
 *     if objType == CUDA_MEMCPY3D_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27988, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27989
 *         return sizeof(ccuda.CUexecAffinityParam_st)
 *     if objType == CUDA_MEMCPY2D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY3D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27989, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27988
 *     if objType == CUexecAffinityParam_st:
 *         return sizeof(ccuda.CUexecAffinityParam_st)
 *     if objType == CUDA_MEMCPY2D_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)
 *     if objType == CUDA_MEMCPY3D_st:
 */
  }

  /* "cuda/cuda.pyx":27990
 *     if objType == CUDA_MEMCPY2D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)
 *     if objType == CUDA_MEMCPY3D_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)
 *     if objType == CUDA_MEMCPY3D_PEER_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27990, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27990, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27991
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)
 *     if objType == CUDA_MEMCPY3D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY3D_PEER_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27990
 *     if objType == CUDA_MEMCPY2D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_st)
 *     if objType == CUDA_MEMCPY3D_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)
 *     if objType == CUDA_MEMCPY3D_PEER_st:
 */
  }

  /* "cuda/cuda.pyx":27992
 *     if objType == CUDA_MEMCPY3D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)
 *     if objType == CUDA_MEMCPY3D_PEER_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27992, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27992, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27993
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)
 *     if objType == CUDA_MEMCPY3D_PEER_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27992
 *     if objType == CUDA_MEMCPY3D_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_st)
 *     if objType == CUDA_MEMCPY3D_PEER_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:
 */
  }

  /* "cuda/cuda.pyx":27994
 *     if objType == CUDA_MEMCPY3D_PEER_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27994, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27994, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27995
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27995, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27994
 *     if objType == CUDA_MEMCPY3D_PEER_st:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_st)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:
 */
  }

  /* "cuda/cuda.pyx":27996
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27996, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27996, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27997
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27996
 *     if objType == CUDA_ARRAY_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:
 */
  }

  /* "cuda/cuda.pyx":27998
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)
 *     if objType == CUDA_RESOURCE_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27998, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 27998, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":27999
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_RESOURCE_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27999, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":27998
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_st:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_st)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)
 *     if objType == CUDA_RESOURCE_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28000
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)
 *     if objType == CUDA_RESOURCE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)
 *     if objType == CUDA_TEXTURE_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28000, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28000, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28001
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)
 *     if objType == CUDA_RESOURCE_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_TEXTURE_DESC_st:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28001, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28000
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_st:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_st)
 *     if objType == CUDA_RESOURCE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)
 *     if objType == CUDA_TEXTURE_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28002
 *     if objType == CUDA_RESOURCE_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)
 *     if objType == CUDA_TEXTURE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28002, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28002, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28003
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)
 *     if objType == CUDA_TEXTURE_DESC_st:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28003, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28002
 *     if objType == CUDA_RESOURCE_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_st)
 *     if objType == CUDA_TEXTURE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28004
 *     if objType == CUDA_TEXTURE_DESC_st:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28004, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28004, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28005
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28005, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28004
 *     if objType == CUDA_TEXTURE_DESC_st:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_st)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 */
  }

  /* "cuda/cuda.pyx":28006
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)
 *     if objType == CUDA_LAUNCH_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28006, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28007
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_LAUNCH_PARAMS_st:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28007, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28006
 *     if objType == CUDA_RESOURCE_VIEW_DESC_st:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_st)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)
 *     if objType == CUDA_LAUNCH_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":28008
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)
 *     if objType == CUDA_LAUNCH_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28008, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28008, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28009
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)
 *     if objType == CUDA_LAUNCH_PARAMS_st:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28008
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st)
 *     if objType == CUDA_LAUNCH_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28010
 *     if objType == CUDA_LAUNCH_PARAMS_st:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28010, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28011
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28010
 *     if objType == CUDA_LAUNCH_PARAMS_st:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28012
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28012, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28012, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28013
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28013, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28012
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28014
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28014, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28015
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28015, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28014
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 */
  }

  /* "cuda/cuda.pyx":28016
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28016, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28016, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28017
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28017, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28016
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":28018
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28018, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28018, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28019
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28018
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":28020
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28020, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28020, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28021
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28020
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":28022
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28022, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28023
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28023, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28022
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":28024
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)
 *     if objType == CUarrayMapInfo_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28024, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28024, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28025
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUarrayMapInfo_st:
 *         return sizeof(ccuda.CUarrayMapInfo_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28024
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)
 *     if objType == CUarrayMapInfo_st:
 */
  }

  /* "cuda/cuda.pyx":28026
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)
 *     if objType == CUarrayMapInfo_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarrayMapInfo_st)
 *     if objType == CUmemLocation_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28026, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28027
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)
 *     if objType == CUarrayMapInfo_st:
 *         return sizeof(ccuda.CUarrayMapInfo_st)             # <<<<<<<<<<<<<<
 *     if objType == CUmemLocation_st:
 *         return sizeof(ccuda.CUmemLocation_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUarrayMapInfo_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28026
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)
 *     if objType == CUarrayMapInfo_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarrayMapInfo_st)
 *     if objType == CUmemLocation_st:
 */
  }

  /* "cuda/cuda.pyx":28028
 *     if objType == CUarrayMapInfo_st:
 *         return sizeof(ccuda.CUarrayMapInfo_st)
 *     if objType == CUmemLocation_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemLocation_st)
 *     if objType == CUmemAllocationProp_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28028, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28028, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28029
 *         return sizeof(ccuda.CUarrayMapInfo_st)
 *     if objType == CUmemLocation_st:
 *         return sizeof(ccuda.CUmemLocation_st)             # <<<<<<<<<<<<<<
 *     if objType == CUmemAllocationProp_st:
 *         return sizeof(ccuda.CUmemAllocationProp_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemLocation_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28028
 *     if objType == CUarrayMapInfo_st:
 *         return sizeof(ccuda.CUarrayMapInfo_st)
 *     if objType == CUmemLocation_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemLocation_st)
 *     if objType == CUmemAllocationProp_st:
 */
  }

  /* "cuda/cuda.pyx":28030
 *     if objType == CUmemLocation_st:
 *         return sizeof(ccuda.CUmemLocation_st)
 *     if objType == CUmemAllocationProp_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAllocationProp_st)
 *     if objType == CUmemAccessDesc_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28030, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28030, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28031
 *         return sizeof(ccuda.CUmemLocation_st)
 *     if objType == CUmemAllocationProp_st:
 *         return sizeof(ccuda.CUmemAllocationProp_st)             # <<<<<<<<<<<<<<
 *     if objType == CUmemAccessDesc_st:
 *         return sizeof(ccuda.CUmemAccessDesc_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemAllocationProp_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28030
 *     if objType == CUmemLocation_st:
 *         return sizeof(ccuda.CUmemLocation_st)
 *     if objType == CUmemAllocationProp_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAllocationProp_st)
 *     if objType == CUmemAccessDesc_st:
 */
  }

  /* "cuda/cuda.pyx":28032
 *     if objType == CUmemAllocationProp_st:
 *         return sizeof(ccuda.CUmemAllocationProp_st)
 *     if objType == CUmemAccessDesc_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAccessDesc_st)
 *     if objType == CUmemPoolProps_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28032, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28032, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28033
 *         return sizeof(ccuda.CUmemAllocationProp_st)
 *     if objType == CUmemAccessDesc_st:
 *         return sizeof(ccuda.CUmemAccessDesc_st)             # <<<<<<<<<<<<<<
 *     if objType == CUmemPoolProps_st:
 *         return sizeof(ccuda.CUmemPoolProps_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemAccessDesc_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28033, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28032
 *     if objType == CUmemAllocationProp_st:
 *         return sizeof(ccuda.CUmemAllocationProp_st)
 *     if objType == CUmemAccessDesc_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAccessDesc_st)
 *     if objType == CUmemPoolProps_st:
 */
  }

  /* "cuda/cuda.pyx":28034
 *     if objType == CUmemAccessDesc_st:
 *         return sizeof(ccuda.CUmemAccessDesc_st)
 *     if objType == CUmemPoolProps_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolProps_st)
 *     if objType == CUmemPoolPtrExportData_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolProps_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28034, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28035
 *         return sizeof(ccuda.CUmemAccessDesc_st)
 *     if objType == CUmemPoolProps_st:
 *         return sizeof(ccuda.CUmemPoolProps_st)             # <<<<<<<<<<<<<<
 *     if objType == CUmemPoolPtrExportData_st:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemPoolProps_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28035, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28034
 *     if objType == CUmemAccessDesc_st:
 *         return sizeof(ccuda.CUmemAccessDesc_st)
 *     if objType == CUmemPoolProps_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolProps_st)
 *     if objType == CUmemPoolPtrExportData_st:
 */
  }

  /* "cuda/cuda.pyx":28036
 *     if objType == CUmemPoolProps_st:
 *         return sizeof(ccuda.CUmemPoolProps_st)
 *     if objType == CUmemPoolPtrExportData_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28036, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28037
 *         return sizeof(ccuda.CUmemPoolProps_st)
 *     if objType == CUmemPoolPtrExportData_st:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28037, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28036
 *     if objType == CUmemPoolProps_st:
 *         return sizeof(ccuda.CUmemPoolProps_st)
 *     if objType == CUmemPoolPtrExportData_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:
 */
  }

  /* "cuda/cuda.pyx":28038
 *     if objType == CUmemPoolPtrExportData_st:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)
 *     if objType == CUcontext:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28038, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28039
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)             # <<<<<<<<<<<<<<
 *     if objType == CUcontext:
 *         return sizeof(ccuda.CUcontext)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS_st))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28039, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28038
 *     if objType == CUmemPoolPtrExportData_st:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_st)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)
 *     if objType == CUcontext:
 */
  }

  /* "cuda/cuda.pyx":28040
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)
 *     if objType == CUcontext:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUcontext)
 *     if objType == CUmodule:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28040, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28041
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)
 *     if objType == CUcontext:
 *         return sizeof(ccuda.CUcontext)             # <<<<<<<<<<<<<<
 *     if objType == CUmodule:
 *         return sizeof(ccuda.CUmodule)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUcontext))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28040
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS_st:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS_st)
 *     if objType == CUcontext:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUcontext)
 *     if objType == CUmodule:
 */
  }

  /* "cuda/cuda.pyx":28042
 *     if objType == CUcontext:
 *         return sizeof(ccuda.CUcontext)
 *     if objType == CUmodule:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmodule)
 *     if objType == CUfunction:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28042, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28042, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28043
 *         return sizeof(ccuda.CUcontext)
 *     if objType == CUmodule:
 *         return sizeof(ccuda.CUmodule)             # <<<<<<<<<<<<<<
 *     if objType == CUfunction:
 *         return sizeof(ccuda.CUfunction)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmodule))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28042
 *     if objType == CUcontext:
 *         return sizeof(ccuda.CUcontext)
 *     if objType == CUmodule:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmodule)
 *     if objType == CUfunction:
 */
  }

  /* "cuda/cuda.pyx":28044
 *     if objType == CUmodule:
 *         return sizeof(ccuda.CUmodule)
 *     if objType == CUfunction:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUfunction)
 *     if objType == CUarray:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUfunction), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28044, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28044, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28045
 *         return sizeof(ccuda.CUmodule)
 *     if objType == CUfunction:
 *         return sizeof(ccuda.CUfunction)             # <<<<<<<<<<<<<<
 *     if objType == CUarray:
 *         return sizeof(ccuda.CUarray)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUfunction))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28044
 *     if objType == CUmodule:
 *         return sizeof(ccuda.CUmodule)
 *     if objType == CUfunction:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUfunction)
 *     if objType == CUarray:
 */
  }

  /* "cuda/cuda.pyx":28046
 *     if objType == CUfunction:
 *         return sizeof(ccuda.CUfunction)
 *     if objType == CUarray:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarray)
 *     if objType == CUmipmappedArray:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28046, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28046, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28047
 *         return sizeof(ccuda.CUfunction)
 *     if objType == CUarray:
 *         return sizeof(ccuda.CUarray)             # <<<<<<<<<<<<<<
 *     if objType == CUmipmappedArray:
 *         return sizeof(ccuda.CUmipmappedArray)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUarray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28046
 *     if objType == CUfunction:
 *         return sizeof(ccuda.CUfunction)
 *     if objType == CUarray:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarray)
 *     if objType == CUmipmappedArray:
 */
  }

  /* "cuda/cuda.pyx":28048
 *     if objType == CUarray:
 *         return sizeof(ccuda.CUarray)
 *     if objType == CUmipmappedArray:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmipmappedArray)
 *     if objType == CUtexref:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28048, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28048, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28049
 *         return sizeof(ccuda.CUarray)
 *     if objType == CUmipmappedArray:
 *         return sizeof(ccuda.CUmipmappedArray)             # <<<<<<<<<<<<<<
 *     if objType == CUtexref:
 *         return sizeof(ccuda.CUtexref)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmipmappedArray))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28049, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28048
 *     if objType == CUarray:
 *         return sizeof(ccuda.CUarray)
 *     if objType == CUmipmappedArray:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmipmappedArray)
 *     if objType == CUtexref:
 */
  }

  /* "cuda/cuda.pyx":28050
 *     if objType == CUmipmappedArray:
 *         return sizeof(ccuda.CUmipmappedArray)
 *     if objType == CUtexref:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUtexref)
 *     if objType == CUsurfref:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexref), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28050, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28050, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28051
 *         return sizeof(ccuda.CUmipmappedArray)
 *     if objType == CUtexref:
 *         return sizeof(ccuda.CUtexref)             # <<<<<<<<<<<<<<
 *     if objType == CUsurfref:
 *         return sizeof(ccuda.CUsurfref)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUtexref))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28050
 *     if objType == CUmipmappedArray:
 *         return sizeof(ccuda.CUmipmappedArray)
 *     if objType == CUtexref:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUtexref)
 *     if objType == CUsurfref:
 */
  }

  /* "cuda/cuda.pyx":28052
 *     if objType == CUtexref:
 *         return sizeof(ccuda.CUtexref)
 *     if objType == CUsurfref:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUsurfref)
 *     if objType == CUevent:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfref), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28052, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28052, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28053
 *         return sizeof(ccuda.CUtexref)
 *     if objType == CUsurfref:
 *         return sizeof(ccuda.CUsurfref)             # <<<<<<<<<<<<<<
 *     if objType == CUevent:
 *         return sizeof(ccuda.CUevent)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUsurfref))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28053, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28052
 *     if objType == CUtexref:
 *         return sizeof(ccuda.CUtexref)
 *     if objType == CUsurfref:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUsurfref)
 *     if objType == CUevent:
 */
  }

  /* "cuda/cuda.pyx":28054
 *     if objType == CUsurfref:
 *         return sizeof(ccuda.CUsurfref)
 *     if objType == CUevent:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUevent)
 *     if objType == CUstream:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUevent), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28054, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28055
 *         return sizeof(ccuda.CUsurfref)
 *     if objType == CUevent:
 *         return sizeof(ccuda.CUevent)             # <<<<<<<<<<<<<<
 *     if objType == CUstream:
 *         return sizeof(ccuda.CUstream)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUevent))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28055, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28054
 *     if objType == CUsurfref:
 *         return sizeof(ccuda.CUsurfref)
 *     if objType == CUevent:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUevent)
 *     if objType == CUstream:
 */
  }

  /* "cuda/cuda.pyx":28056
 *     if objType == CUevent:
 *         return sizeof(ccuda.CUevent)
 *     if objType == CUstream:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstream)
 *     if objType == CUgraphicsResource:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstream), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28056, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28056, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28057
 *         return sizeof(ccuda.CUevent)
 *     if objType == CUstream:
 *         return sizeof(ccuda.CUstream)             # <<<<<<<<<<<<<<
 *     if objType == CUgraphicsResource:
 *         return sizeof(ccuda.CUgraphicsResource)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstream))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28056
 *     if objType == CUevent:
 *         return sizeof(ccuda.CUevent)
 *     if objType == CUstream:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstream)
 *     if objType == CUgraphicsResource:
 */
  }

  /* "cuda/cuda.pyx":28058
 *     if objType == CUstream:
 *         return sizeof(ccuda.CUstream)
 *     if objType == CUgraphicsResource:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraphicsResource)
 *     if objType == CUexternalMemory:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphicsResource), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28058, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28058, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28059
 *         return sizeof(ccuda.CUstream)
 *     if objType == CUgraphicsResource:
 *         return sizeof(ccuda.CUgraphicsResource)             # <<<<<<<<<<<<<<
 *     if objType == CUexternalMemory:
 *         return sizeof(ccuda.CUexternalMemory)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphicsResource))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28059, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28058
 *     if objType == CUstream:
 *         return sizeof(ccuda.CUstream)
 *     if objType == CUgraphicsResource:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraphicsResource)
 *     if objType == CUexternalMemory:
 */
  }

  /* "cuda/cuda.pyx":28060
 *     if objType == CUgraphicsResource:
 *         return sizeof(ccuda.CUgraphicsResource)
 *     if objType == CUexternalMemory:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexternalMemory)
 *     if objType == CUexternalSemaphore:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalMemory), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28060, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28060, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28061
 *         return sizeof(ccuda.CUgraphicsResource)
 *     if objType == CUexternalMemory:
 *         return sizeof(ccuda.CUexternalMemory)             # <<<<<<<<<<<<<<
 *     if objType == CUexternalSemaphore:
 *         return sizeof(ccuda.CUexternalSemaphore)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalMemory))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28060
 *     if objType == CUgraphicsResource:
 *         return sizeof(ccuda.CUgraphicsResource)
 *     if objType == CUexternalMemory:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexternalMemory)
 *     if objType == CUexternalSemaphore:
 */
  }

  /* "cuda/cuda.pyx":28062
 *     if objType == CUexternalMemory:
 *         return sizeof(ccuda.CUexternalMemory)
 *     if objType == CUexternalSemaphore:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexternalSemaphore)
 *     if objType == CUgraph:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28062, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28062, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28063
 *         return sizeof(ccuda.CUexternalMemory)
 *     if objType == CUexternalSemaphore:
 *         return sizeof(ccuda.CUexternalSemaphore)             # <<<<<<<<<<<<<<
 *     if objType == CUgraph:
 *         return sizeof(ccuda.CUgraph)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexternalSemaphore))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28062
 *     if objType == CUexternalMemory:
 *         return sizeof(ccuda.CUexternalMemory)
 *     if objType == CUexternalSemaphore:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexternalSemaphore)
 *     if objType == CUgraph:
 */
  }

  /* "cuda/cuda.pyx":28064
 *     if objType == CUexternalSemaphore:
 *         return sizeof(ccuda.CUexternalSemaphore)
 *     if objType == CUgraph:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraph)
 *     if objType == CUgraphNode:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28064, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28064, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28065
 *         return sizeof(ccuda.CUexternalSemaphore)
 *     if objType == CUgraph:
 *         return sizeof(ccuda.CUgraph)             # <<<<<<<<<<<<<<
 *     if objType == CUgraphNode:
 *         return sizeof(ccuda.CUgraphNode)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraph))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28064
 *     if objType == CUexternalSemaphore:
 *         return sizeof(ccuda.CUexternalSemaphore)
 *     if objType == CUgraph:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraph)
 *     if objType == CUgraphNode:
 */
  }

  /* "cuda/cuda.pyx":28066
 *     if objType == CUgraph:
 *         return sizeof(ccuda.CUgraph)
 *     if objType == CUgraphNode:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraphNode)
 *     if objType == CUgraphExec:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28066, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28066, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28067
 *         return sizeof(ccuda.CUgraph)
 *     if objType == CUgraphNode:
 *         return sizeof(ccuda.CUgraphNode)             # <<<<<<<<<<<<<<
 *     if objType == CUgraphExec:
 *         return sizeof(ccuda.CUgraphExec)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphNode))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28066
 *     if objType == CUgraph:
 *         return sizeof(ccuda.CUgraph)
 *     if objType == CUgraphNode:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraphNode)
 *     if objType == CUgraphExec:
 */
  }

  /* "cuda/cuda.pyx":28068
 *     if objType == CUgraphNode:
 *         return sizeof(ccuda.CUgraphNode)
 *     if objType == CUgraphExec:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraphExec)
 *     if objType == CUmemoryPool:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphExec), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28068, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28069
 *         return sizeof(ccuda.CUgraphNode)
 *     if objType == CUgraphExec:
 *         return sizeof(ccuda.CUgraphExec)             # <<<<<<<<<<<<<<
 *     if objType == CUmemoryPool:
 *         return sizeof(ccuda.CUmemoryPool)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUgraphExec))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28069, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28068
 *     if objType == CUgraphNode:
 *         return sizeof(ccuda.CUgraphNode)
 *     if objType == CUgraphExec:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUgraphExec)
 *     if objType == CUmemoryPool:
 */
  }

  /* "cuda/cuda.pyx":28070
 *     if objType == CUgraphExec:
 *         return sizeof(ccuda.CUgraphExec)
 *     if objType == CUmemoryPool:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemoryPool)
 *     if objType == CUuserObject:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemoryPool), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28070, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28070, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28071
 *         return sizeof(ccuda.CUgraphExec)
 *     if objType == CUmemoryPool:
 *         return sizeof(ccuda.CUmemoryPool)             # <<<<<<<<<<<<<<
 *     if objType == CUuserObject:
 *         return sizeof(ccuda.CUuserObject)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemoryPool))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28070
 *     if objType == CUgraphExec:
 *         return sizeof(ccuda.CUgraphExec)
 *     if objType == CUmemoryPool:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemoryPool)
 *     if objType == CUuserObject:
 */
  }

  /* "cuda/cuda.pyx":28072
 *     if objType == CUmemoryPool:
 *         return sizeof(ccuda.CUmemoryPool)
 *     if objType == CUuserObject:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUuserObject)
 *     if objType == CUlinkState:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUuserObject), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28072, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28072, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28073
 *         return sizeof(ccuda.CUmemoryPool)
 *     if objType == CUuserObject:
 *         return sizeof(ccuda.CUuserObject)             # <<<<<<<<<<<<<<
 *     if objType == CUlinkState:
 *         return sizeof(ccuda.CUlinkState)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUuserObject))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28073, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28072
 *     if objType == CUmemoryPool:
 *         return sizeof(ccuda.CUmemoryPool)
 *     if objType == CUuserObject:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUuserObject)
 *     if objType == CUlinkState:
 */
  }

  /* "cuda/cuda.pyx":28074
 *     if objType == CUuserObject:
 *         return sizeof(ccuda.CUuserObject)
 *     if objType == CUlinkState:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUlinkState)
 *     if objType == CUhostFn:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUlinkState), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28074, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28075
 *         return sizeof(ccuda.CUuserObject)
 *     if objType == CUlinkState:
 *         return sizeof(ccuda.CUlinkState)             # <<<<<<<<<<<<<<
 *     if objType == CUhostFn:
 *         return sizeof(ccuda.CUhostFn)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUlinkState))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28074
 *     if objType == CUuserObject:
 *         return sizeof(ccuda.CUuserObject)
 *     if objType == CUlinkState:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUlinkState)
 *     if objType == CUhostFn:
 */
  }

  /* "cuda/cuda.pyx":28076
 *     if objType == CUlinkState:
 *         return sizeof(ccuda.CUlinkState)
 *     if objType == CUhostFn:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUhostFn)
 *     if objType == CUstreamCallback:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUhostFn), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28076, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28076, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28077
 *         return sizeof(ccuda.CUlinkState)
 *     if objType == CUhostFn:
 *         return sizeof(ccuda.CUhostFn)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamCallback:
 *         return sizeof(ccuda.CUstreamCallback)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUhostFn))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28076
 *     if objType == CUlinkState:
 *         return sizeof(ccuda.CUlinkState)
 *     if objType == CUhostFn:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUhostFn)
 *     if objType == CUstreamCallback:
 */
  }

  /* "cuda/cuda.pyx":28078
 *     if objType == CUhostFn:
 *         return sizeof(ccuda.CUhostFn)
 *     if objType == CUstreamCallback:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamCallback)
 *     if objType == CUoccupancyB2DSize:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamCallback), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28078, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28078, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28079
 *         return sizeof(ccuda.CUhostFn)
 *     if objType == CUstreamCallback:
 *         return sizeof(ccuda.CUstreamCallback)             # <<<<<<<<<<<<<<
 *     if objType == CUoccupancyB2DSize:
 *         return sizeof(ccuda.CUoccupancyB2DSize)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamCallback))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28079, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28078
 *     if objType == CUhostFn:
 *         return sizeof(ccuda.CUhostFn)
 *     if objType == CUstreamCallback:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamCallback)
 *     if objType == CUoccupancyB2DSize:
 */
  }

  /* "cuda/cuda.pyx":28080
 *     if objType == CUstreamCallback:
 *         return sizeof(ccuda.CUstreamCallback)
 *     if objType == CUoccupancyB2DSize:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUoccupancyB2DSize)
 *     if objType == CUuuid:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28080, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28080, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28081
 *         return sizeof(ccuda.CUstreamCallback)
 *     if objType == CUoccupancyB2DSize:
 *         return sizeof(ccuda.CUoccupancyB2DSize)             # <<<<<<<<<<<<<<
 *     if objType == CUuuid:
 *         return sizeof(ccuda.CUuuid)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUoccupancyB2DSize))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28080
 *     if objType == CUstreamCallback:
 *         return sizeof(ccuda.CUstreamCallback)
 *     if objType == CUoccupancyB2DSize:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUoccupancyB2DSize)
 *     if objType == CUuuid:
 */
  }

  /* "cuda/cuda.pyx":28082
 *     if objType == CUoccupancyB2DSize:
 *         return sizeof(ccuda.CUoccupancyB2DSize)
 *     if objType == CUuuid:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUuuid)
 *     if objType == CUipcEventHandle_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUuuid), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28082, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28083
 *         return sizeof(ccuda.CUoccupancyB2DSize)
 *     if objType == CUuuid:
 *         return sizeof(ccuda.CUuuid)             # <<<<<<<<<<<<<<
 *     if objType == CUipcEventHandle_v1:
 *         return sizeof(ccuda.CUipcEventHandle_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUuuid))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28083, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28082
 *     if objType == CUoccupancyB2DSize:
 *         return sizeof(ccuda.CUoccupancyB2DSize)
 *     if objType == CUuuid:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUuuid)
 *     if objType == CUipcEventHandle_v1:
 */
  }

  /* "cuda/cuda.pyx":28084
 *     if objType == CUuuid:
 *         return sizeof(ccuda.CUuuid)
 *     if objType == CUipcEventHandle_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcEventHandle_v1)
 *     if objType == CUipcEventHandle:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcEventHandle_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28084, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28084, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28085
 *         return sizeof(ccuda.CUuuid)
 *     if objType == CUipcEventHandle_v1:
 *         return sizeof(ccuda.CUipcEventHandle_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUipcEventHandle:
 *         return sizeof(ccuda.CUipcEventHandle)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUipcEventHandle_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28085, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28084
 *     if objType == CUuuid:
 *         return sizeof(ccuda.CUuuid)
 *     if objType == CUipcEventHandle_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcEventHandle_v1)
 *     if objType == CUipcEventHandle:
 */
  }

  /* "cuda/cuda.pyx":28086
 *     if objType == CUipcEventHandle_v1:
 *         return sizeof(ccuda.CUipcEventHandle_v1)
 *     if objType == CUipcEventHandle:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcEventHandle)
 *     if objType == CUipcMemHandle_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcEventHandle), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28086, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28086, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28087
 *         return sizeof(ccuda.CUipcEventHandle_v1)
 *     if objType == CUipcEventHandle:
 *         return sizeof(ccuda.CUipcEventHandle)             # <<<<<<<<<<<<<<
 *     if objType == CUipcMemHandle_v1:
 *         return sizeof(ccuda.CUipcMemHandle_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUipcEventHandle))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28087, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28086
 *     if objType == CUipcEventHandle_v1:
 *         return sizeof(ccuda.CUipcEventHandle_v1)
 *     if objType == CUipcEventHandle:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcEventHandle)
 *     if objType == CUipcMemHandle_v1:
 */
  }

  /* "cuda/cuda.pyx":28088
 *     if objType == CUipcEventHandle:
 *         return sizeof(ccuda.CUipcEventHandle)
 *     if objType == CUipcMemHandle_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcMemHandle_v1)
 *     if objType == CUipcMemHandle:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcMemHandle_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28088, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28088, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28089
 *         return sizeof(ccuda.CUipcEventHandle)
 *     if objType == CUipcMemHandle_v1:
 *         return sizeof(ccuda.CUipcMemHandle_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUipcMemHandle:
 *         return sizeof(ccuda.CUipcMemHandle)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUipcMemHandle_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28089, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28088
 *     if objType == CUipcEventHandle:
 *         return sizeof(ccuda.CUipcEventHandle)
 *     if objType == CUipcMemHandle_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcMemHandle_v1)
 *     if objType == CUipcMemHandle:
 */
  }

  /* "cuda/cuda.pyx":28090
 *     if objType == CUipcMemHandle_v1:
 *         return sizeof(ccuda.CUipcMemHandle_v1)
 *     if objType == CUipcMemHandle:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcMemHandle)
 *     if objType == CUstreamBatchMemOpParams_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcMemHandle), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28090, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28090, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28091
 *         return sizeof(ccuda.CUipcMemHandle_v1)
 *     if objType == CUipcMemHandle:
 *         return sizeof(ccuda.CUipcMemHandle)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamBatchMemOpParams_v1:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUipcMemHandle))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28090
 *     if objType == CUipcMemHandle_v1:
 *         return sizeof(ccuda.CUipcMemHandle_v1)
 *     if objType == CUipcMemHandle:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUipcMemHandle)
 *     if objType == CUstreamBatchMemOpParams_v1:
 */
  }

  /* "cuda/cuda.pyx":28092
 *     if objType == CUipcMemHandle:
 *         return sizeof(ccuda.CUipcMemHandle)
 *     if objType == CUstreamBatchMemOpParams_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)
 *     if objType == CUstreamBatchMemOpParams:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28092, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28092, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28093
 *         return sizeof(ccuda.CUipcMemHandle)
 *     if objType == CUstreamBatchMemOpParams_v1:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamBatchMemOpParams:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28093, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28092
 *     if objType == CUipcMemHandle:
 *         return sizeof(ccuda.CUipcMemHandle)
 *     if objType == CUstreamBatchMemOpParams_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)
 *     if objType == CUstreamBatchMemOpParams:
 */
  }

  /* "cuda/cuda.pyx":28094
 *     if objType == CUstreamBatchMemOpParams_v1:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)
 *     if objType == CUstreamBatchMemOpParams:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)
 *     if objType == CUdevprop_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28094, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28094, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28095
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)
 *     if objType == CUstreamBatchMemOpParams:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)             # <<<<<<<<<<<<<<
 *     if objType == CUdevprop_v1:
 *         return sizeof(ccuda.CUdevprop_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28095, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28094
 *     if objType == CUstreamBatchMemOpParams_v1:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams_v1)
 *     if objType == CUstreamBatchMemOpParams:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)
 *     if objType == CUdevprop_v1:
 */
  }

  /* "cuda/cuda.pyx":28096
 *     if objType == CUstreamBatchMemOpParams:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)
 *     if objType == CUdevprop_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevprop_v1)
 *     if objType == CUdevprop:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevprop_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28096, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28097
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)
 *     if objType == CUdevprop_v1:
 *         return sizeof(ccuda.CUdevprop_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUdevprop:
 *         return sizeof(ccuda.CUdevprop)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdevprop_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28097, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28096
 *     if objType == CUstreamBatchMemOpParams:
 *         return sizeof(ccuda.CUstreamBatchMemOpParams)
 *     if objType == CUdevprop_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevprop_v1)
 *     if objType == CUdevprop:
 */
  }

  /* "cuda/cuda.pyx":28098
 *     if objType == CUdevprop_v1:
 *         return sizeof(ccuda.CUdevprop_v1)
 *     if objType == CUdevprop:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevprop)
 *     if objType == CUaccessPolicyWindow_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevprop), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28098, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28099
 *         return sizeof(ccuda.CUdevprop_v1)
 *     if objType == CUdevprop:
 *         return sizeof(ccuda.CUdevprop)             # <<<<<<<<<<<<<<
 *     if objType == CUaccessPolicyWindow_v1:
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdevprop))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28099, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28098
 *     if objType == CUdevprop_v1:
 *         return sizeof(ccuda.CUdevprop_v1)
 *     if objType == CUdevprop:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevprop)
 *     if objType == CUaccessPolicyWindow_v1:
 */
  }

  /* "cuda/cuda.pyx":28100
 *     if objType == CUdevprop:
 *         return sizeof(ccuda.CUdevprop)
 *     if objType == CUaccessPolicyWindow_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)
 *     if objType == CUaccessPolicyWindow:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28100, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28101
 *         return sizeof(ccuda.CUdevprop)
 *     if objType == CUaccessPolicyWindow_v1:
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUaccessPolicyWindow:
 *         return sizeof(ccuda.CUaccessPolicyWindow)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUaccessPolicyWindow_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28100
 *     if objType == CUdevprop:
 *         return sizeof(ccuda.CUdevprop)
 *     if objType == CUaccessPolicyWindow_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)
 *     if objType == CUaccessPolicyWindow:
 */
  }

  /* "cuda/cuda.pyx":28102
 *     if objType == CUaccessPolicyWindow_v1:
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)
 *     if objType == CUaccessPolicyWindow:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUaccessPolicyWindow)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28102, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28103
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)
 *     if objType == CUaccessPolicyWindow:
 *         return sizeof(ccuda.CUaccessPolicyWindow)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUaccessPolicyWindow))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28102
 *     if objType == CUaccessPolicyWindow_v1:
 *         return sizeof(ccuda.CUaccessPolicyWindow_v1)
 *     if objType == CUaccessPolicyWindow:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUaccessPolicyWindow)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28104
 *     if objType == CUaccessPolicyWindow:
 *         return sizeof(ccuda.CUaccessPolicyWindow)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)
 *     if objType == CUDA_KERNEL_NODE_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28104, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28105
 *         return sizeof(ccuda.CUaccessPolicyWindow)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_KERNEL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28104
 *     if objType == CUaccessPolicyWindow:
 *         return sizeof(ccuda.CUaccessPolicyWindow)
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)
 *     if objType == CUDA_KERNEL_NODE_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28106
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)
 *     if objType == CUDA_KERNEL_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28106, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28107
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)
 *     if objType == CUDA_KERNEL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28106
 *     if objType == CUDA_KERNEL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS_v1)
 *     if objType == CUDA_KERNEL_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28108
 *     if objType == CUDA_KERNEL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)
 *     if objType == CUDA_MEMSET_NODE_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28108, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28109
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMSET_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28108
 *     if objType == CUDA_KERNEL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_KERNEL_NODE_PARAMS)
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)
 *     if objType == CUDA_MEMSET_NODE_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28110
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)
 *     if objType == CUDA_MEMSET_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28110, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28111
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)
 *     if objType == CUDA_MEMSET_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28110
 *     if objType == CUDA_MEMSET_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS_v1)
 *     if objType == CUDA_MEMSET_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28112
 *     if objType == CUDA_MEMSET_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)
 *     if objType == CUDA_HOST_NODE_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28112, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28113
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_HOST_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28112
 *     if objType == CUDA_MEMSET_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEMSET_NODE_PARAMS)
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)
 *     if objType == CUDA_HOST_NODE_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28114
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)
 *     if objType == CUDA_HOST_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)
 *     if objType == CUkernelNodeAttrValue_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28114, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28115
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)
 *     if objType == CUDA_HOST_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUkernelNodeAttrValue_v1:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28114
 *     if objType == CUDA_HOST_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS_v1)
 *     if objType == CUDA_HOST_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)
 *     if objType == CUkernelNodeAttrValue_v1:
 */
  }

  /* "cuda/cuda.pyx":28116
 *     if objType == CUDA_HOST_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)
 *     if objType == CUkernelNodeAttrValue_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)
 *     if objType == CUkernelNodeAttrValue:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28116, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28116, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28117
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)
 *     if objType == CUkernelNodeAttrValue_v1:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUkernelNodeAttrValue:
 *         return sizeof(ccuda.CUkernelNodeAttrValue)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28116
 *     if objType == CUDA_HOST_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_HOST_NODE_PARAMS)
 *     if objType == CUkernelNodeAttrValue_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)
 *     if objType == CUkernelNodeAttrValue:
 */
  }

  /* "cuda/cuda.pyx":28118
 *     if objType == CUkernelNodeAttrValue_v1:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)
 *     if objType == CUkernelNodeAttrValue:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUkernelNodeAttrValue)
 *     if objType == CUstreamAttrValue_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28118, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28119
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)
 *     if objType == CUkernelNodeAttrValue:
 *         return sizeof(ccuda.CUkernelNodeAttrValue)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamAttrValue_v1:
 *         return sizeof(ccuda.CUstreamAttrValue_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28118
 *     if objType == CUkernelNodeAttrValue_v1:
 *         return sizeof(ccuda.CUkernelNodeAttrValue_v1)
 *     if objType == CUkernelNodeAttrValue:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUkernelNodeAttrValue)
 *     if objType == CUstreamAttrValue_v1:
 */
  }

  /* "cuda/cuda.pyx":28120
 *     if objType == CUkernelNodeAttrValue:
 *         return sizeof(ccuda.CUkernelNodeAttrValue)
 *     if objType == CUstreamAttrValue_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamAttrValue_v1)
 *     if objType == CUstreamAttrValue:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamAttrValue_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28120, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28121
 *         return sizeof(ccuda.CUkernelNodeAttrValue)
 *     if objType == CUstreamAttrValue_v1:
 *         return sizeof(ccuda.CUstreamAttrValue_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUstreamAttrValue:
 *         return sizeof(ccuda.CUstreamAttrValue)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamAttrValue_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28120
 *     if objType == CUkernelNodeAttrValue:
 *         return sizeof(ccuda.CUkernelNodeAttrValue)
 *     if objType == CUstreamAttrValue_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamAttrValue_v1)
 *     if objType == CUstreamAttrValue:
 */
  }

  /* "cuda/cuda.pyx":28122
 *     if objType == CUstreamAttrValue_v1:
 *         return sizeof(ccuda.CUstreamAttrValue_v1)
 *     if objType == CUstreamAttrValue:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamAttrValue)
 *     if objType == CUexecAffinitySmCount_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamAttrValue), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28122, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28123
 *         return sizeof(ccuda.CUstreamAttrValue_v1)
 *     if objType == CUstreamAttrValue:
 *         return sizeof(ccuda.CUstreamAttrValue)             # <<<<<<<<<<<<<<
 *     if objType == CUexecAffinitySmCount_v1:
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUstreamAttrValue))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28122
 *     if objType == CUstreamAttrValue_v1:
 *         return sizeof(ccuda.CUstreamAttrValue_v1)
 *     if objType == CUstreamAttrValue:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUstreamAttrValue)
 *     if objType == CUexecAffinitySmCount_v1:
 */
  }

  /* "cuda/cuda.pyx":28124
 *     if objType == CUstreamAttrValue:
 *         return sizeof(ccuda.CUstreamAttrValue)
 *     if objType == CUexecAffinitySmCount_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)
 *     if objType == CUexecAffinitySmCount:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28124, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28125
 *         return sizeof(ccuda.CUstreamAttrValue)
 *     if objType == CUexecAffinitySmCount_v1:
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUexecAffinitySmCount:
 *         return sizeof(ccuda.CUexecAffinitySmCount)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinitySmCount_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28124
 *     if objType == CUstreamAttrValue:
 *         return sizeof(ccuda.CUstreamAttrValue)
 *     if objType == CUexecAffinitySmCount_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)
 *     if objType == CUexecAffinitySmCount:
 */
  }

  /* "cuda/cuda.pyx":28126
 *     if objType == CUexecAffinitySmCount_v1:
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)
 *     if objType == CUexecAffinitySmCount:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinitySmCount)
 *     if objType == CUexecAffinityParam_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28126, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28127
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)
 *     if objType == CUexecAffinitySmCount:
 *         return sizeof(ccuda.CUexecAffinitySmCount)             # <<<<<<<<<<<<<<
 *     if objType == CUexecAffinityParam_v1:
 *         return sizeof(ccuda.CUexecAffinityParam_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinitySmCount))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28126
 *     if objType == CUexecAffinitySmCount_v1:
 *         return sizeof(ccuda.CUexecAffinitySmCount_v1)
 *     if objType == CUexecAffinitySmCount:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinitySmCount)
 *     if objType == CUexecAffinityParam_v1:
 */
  }

  /* "cuda/cuda.pyx":28128
 *     if objType == CUexecAffinitySmCount:
 *         return sizeof(ccuda.CUexecAffinitySmCount)
 *     if objType == CUexecAffinityParam_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinityParam_v1)
 *     if objType == CUexecAffinityParam:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinityParam_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28128, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28129
 *         return sizeof(ccuda.CUexecAffinitySmCount)
 *     if objType == CUexecAffinityParam_v1:
 *         return sizeof(ccuda.CUexecAffinityParam_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUexecAffinityParam:
 *         return sizeof(ccuda.CUexecAffinityParam)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinityParam_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28128
 *     if objType == CUexecAffinitySmCount:
 *         return sizeof(ccuda.CUexecAffinitySmCount)
 *     if objType == CUexecAffinityParam_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinityParam_v1)
 *     if objType == CUexecAffinityParam:
 */
  }

  /* "cuda/cuda.pyx":28130
 *     if objType == CUexecAffinityParam_v1:
 *         return sizeof(ccuda.CUexecAffinityParam_v1)
 *     if objType == CUexecAffinityParam:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinityParam)
 *     if objType == CUDA_MEMCPY2D_v2:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinityParam), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28130, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28131
 *         return sizeof(ccuda.CUexecAffinityParam_v1)
 *     if objType == CUexecAffinityParam:
 *         return sizeof(ccuda.CUexecAffinityParam)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY2D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUexecAffinityParam))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28130
 *     if objType == CUexecAffinityParam_v1:
 *         return sizeof(ccuda.CUexecAffinityParam_v1)
 *     if objType == CUexecAffinityParam:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUexecAffinityParam)
 *     if objType == CUDA_MEMCPY2D_v2:
 */
  }

  /* "cuda/cuda.pyx":28132
 *     if objType == CUexecAffinityParam:
 *         return sizeof(ccuda.CUexecAffinityParam)
 *     if objType == CUDA_MEMCPY2D_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)
 *     if objType == CUDA_MEMCPY2D:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_v2), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28132, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28133
 *         return sizeof(ccuda.CUexecAffinityParam)
 *     if objType == CUDA_MEMCPY2D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY2D:
 *         return sizeof(ccuda.CUDA_MEMCPY2D)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D_v2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28132
 *     if objType == CUexecAffinityParam:
 *         return sizeof(ccuda.CUexecAffinityParam)
 *     if objType == CUDA_MEMCPY2D_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)
 *     if objType == CUDA_MEMCPY2D:
 */
  }

  /* "cuda/cuda.pyx":28134
 *     if objType == CUDA_MEMCPY2D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)
 *     if objType == CUDA_MEMCPY2D:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY2D)
 *     if objType == CUDA_MEMCPY3D_v2:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28134, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28135
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)
 *     if objType == CUDA_MEMCPY2D:
 *         return sizeof(ccuda.CUDA_MEMCPY2D)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY3D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28134
 *     if objType == CUDA_MEMCPY2D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY2D_v2)
 *     if objType == CUDA_MEMCPY2D:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY2D)
 *     if objType == CUDA_MEMCPY3D_v2:
 */
  }

  /* "cuda/cuda.pyx":28136
 *     if objType == CUDA_MEMCPY2D:
 *         return sizeof(ccuda.CUDA_MEMCPY2D)
 *     if objType == CUDA_MEMCPY3D_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)
 *     if objType == CUDA_MEMCPY3D:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_v2), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28136, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28136, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28137
 *         return sizeof(ccuda.CUDA_MEMCPY2D)
 *     if objType == CUDA_MEMCPY3D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY3D:
 *         return sizeof(ccuda.CUDA_MEMCPY3D)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_v2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28136
 *     if objType == CUDA_MEMCPY2D:
 *         return sizeof(ccuda.CUDA_MEMCPY2D)
 *     if objType == CUDA_MEMCPY3D_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)
 *     if objType == CUDA_MEMCPY3D:
 */
  }

  /* "cuda/cuda.pyx":28138
 *     if objType == CUDA_MEMCPY3D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)
 *     if objType == CUDA_MEMCPY3D:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D)
 *     if objType == CUDA_MEMCPY3D_PEER_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28138, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28139
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)
 *     if objType == CUDA_MEMCPY3D:
 *         return sizeof(ccuda.CUDA_MEMCPY3D)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY3D_PEER_v1:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28138
 *     if objType == CUDA_MEMCPY3D_v2:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_v2)
 *     if objType == CUDA_MEMCPY3D:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D)
 *     if objType == CUDA_MEMCPY3D_PEER_v1:
 */
  }

  /* "cuda/cuda.pyx":28140
 *     if objType == CUDA_MEMCPY3D:
 *         return sizeof(ccuda.CUDA_MEMCPY3D)
 *     if objType == CUDA_MEMCPY3D_PEER_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)
 *     if objType == CUDA_MEMCPY3D_PEER:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28140, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28141
 *         return sizeof(ccuda.CUDA_MEMCPY3D)
 *     if objType == CUDA_MEMCPY3D_PEER_v1:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEMCPY3D_PEER:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28140
 *     if objType == CUDA_MEMCPY3D:
 *         return sizeof(ccuda.CUDA_MEMCPY3D)
 *     if objType == CUDA_MEMCPY3D_PEER_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)
 *     if objType == CUDA_MEMCPY3D_PEER:
 */
  }

  /* "cuda/cuda.pyx":28142
 *     if objType == CUDA_MEMCPY3D_PEER_v1:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)
 *     if objType == CUDA_MEMCPY3D_PEER:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28142, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28143
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)
 *     if objType == CUDA_MEMCPY3D_PEER:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28142
 *     if objType == CUDA_MEMCPY3D_PEER_v1:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER_v1)
 *     if objType == CUDA_MEMCPY3D_PEER:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:
 */
  }

  /* "cuda/cuda.pyx":28144
 *     if objType == CUDA_MEMCPY3D_PEER:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY_DESCRIPTOR:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28144, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28145
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR_v2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28144
 *     if objType == CUDA_MEMCPY3D_PEER:
 *         return sizeof(ccuda.CUDA_MEMCPY3D_PEER)
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY_DESCRIPTOR:
 */
  }

  /* "cuda/cuda.pyx":28146
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY_DESCRIPTOR:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28146, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28147
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28146
 *     if objType == CUDA_ARRAY_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY_DESCRIPTOR:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:
 */
  }

  /* "cuda/cuda.pyx":28148
 *     if objType == CUDA_ARRAY_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28148, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28149
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR_v2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28148
 *     if objType == CUDA_ARRAY_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY_DESCRIPTOR)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:
 */
  }

  /* "cuda/cuda.pyx":28150
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28150, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28151
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28150
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR_v2:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR_v2)
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:
 */
  }

  /* "cuda/cuda.pyx":28152
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28152, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28152, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28153
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28152
 *     if objType == CUDA_ARRAY3D_DESCRIPTOR:
 *         return sizeof(ccuda.CUDA_ARRAY3D_DESCRIPTOR)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:
 */
  }

  /* "cuda/cuda.pyx":28154
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)
 *     if objType == CUDA_RESOURCE_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28154, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28155
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_RESOURCE_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28154
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES_v1:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1)
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)
 *     if objType == CUDA_RESOURCE_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28156
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)
 *     if objType == CUDA_RESOURCE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)
 *     if objType == CUDA_RESOURCE_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28156, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28156, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28157
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)
 *     if objType == CUDA_RESOURCE_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_RESOURCE_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28156
 *     if objType == CUDA_ARRAY_SPARSE_PROPERTIES:
 *         return sizeof(ccuda.CUDA_ARRAY_SPARSE_PROPERTIES)
 *     if objType == CUDA_RESOURCE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)
 *     if objType == CUDA_RESOURCE_DESC:
 */
  }

  /* "cuda/cuda.pyx":28158
 *     if objType == CUDA_RESOURCE_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)
 *     if objType == CUDA_RESOURCE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)
 *     if objType == CUDA_TEXTURE_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28158, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28159
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)
 *     if objType == CUDA_RESOURCE_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_TEXTURE_DESC_v1:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28158
 *     if objType == CUDA_RESOURCE_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC_v1)
 *     if objType == CUDA_RESOURCE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)
 *     if objType == CUDA_TEXTURE_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28160
 *     if objType == CUDA_RESOURCE_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)
 *     if objType == CUDA_TEXTURE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)
 *     if objType == CUDA_TEXTURE_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28160, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28161
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)
 *     if objType == CUDA_TEXTURE_DESC_v1:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_TEXTURE_DESC:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28161, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28160
 *     if objType == CUDA_RESOURCE_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_DESC)
 *     if objType == CUDA_TEXTURE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)
 *     if objType == CUDA_TEXTURE_DESC:
 */
  }

  /* "cuda/cuda.pyx":28162
 *     if objType == CUDA_TEXTURE_DESC_v1:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)
 *     if objType == CUDA_TEXTURE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28162, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28163
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)
 *     if objType == CUDA_TEXTURE_DESC:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28162
 *     if objType == CUDA_TEXTURE_DESC_v1:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC_v1)
 *     if objType == CUDA_TEXTURE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28164
 *     if objType == CUDA_TEXTURE_DESC:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)
 *     if objType == CUDA_RESOURCE_VIEW_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28164, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28165
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_RESOURCE_VIEW_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28164
 *     if objType == CUDA_TEXTURE_DESC:
 *         return sizeof(ccuda.CUDA_TEXTURE_DESC)
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)
 *     if objType == CUDA_RESOURCE_VIEW_DESC:
 */
  }

  /* "cuda/cuda.pyx":28166
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)
 *     if objType == CUDA_RESOURCE_VIEW_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28166, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28167
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)
 *     if objType == CUDA_RESOURCE_VIEW_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28166
 *     if objType == CUDA_RESOURCE_VIEW_DESC_v1:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC_v1)
 *     if objType == CUDA_RESOURCE_VIEW_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:
 */
  }

  /* "cuda/cuda.pyx":28168
 *     if objType == CUDA_RESOURCE_VIEW_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28168, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28169
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28168
 *     if objType == CUDA_RESOURCE_VIEW_DESC:
 *         return sizeof(ccuda.CUDA_RESOURCE_VIEW_DESC)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:
 */
  }

  /* "cuda/cuda.pyx":28170
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)
 *     if objType == CUDA_LAUNCH_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28170, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28171
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_LAUNCH_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28170
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1)
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)
 *     if objType == CUDA_LAUNCH_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28172
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)
 *     if objType == CUDA_LAUNCH_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)
 *     if objType == CUDA_LAUNCH_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28172, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28173
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)
 *     if objType == CUDA_LAUNCH_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_LAUNCH_PARAMS:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28172
 *     if objType == CUDA_POINTER_ATTRIBUTE_P2P_TOKENS:
 *         return sizeof(ccuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS)
 *     if objType == CUDA_LAUNCH_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)
 *     if objType == CUDA_LAUNCH_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28174
 *     if objType == CUDA_LAUNCH_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)
 *     if objType == CUDA_LAUNCH_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28174, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28175
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)
 *     if objType == CUDA_LAUNCH_PARAMS:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28174
 *     if objType == CUDA_LAUNCH_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS_v1)
 *     if objType == CUDA_LAUNCH_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28176
 *     if objType == CUDA_LAUNCH_PARAMS:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28176, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28177
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28176
 *     if objType == CUDA_LAUNCH_PARAMS:
 *         return sizeof(ccuda.CUDA_LAUNCH_PARAMS)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:
 */
  }

  /* "cuda/cuda.pyx":28178
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28178, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28179
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28178
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28180
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28180, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28181
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28180
 *     if objType == CUDA_EXTERNAL_MEMORY_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:
 */
  }

  /* "cuda/cuda.pyx":28182
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28182, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28183
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28183, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28182
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28184
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28184, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28185
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28185, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28184
 *     if objType == CUDA_EXTERNAL_MEMORY_BUFFER_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:
 */
  }

  /* "cuda/cuda.pyx":28186
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28186, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28187
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28186
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1)
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:
 */
  }

  /* "cuda/cuda.pyx":28188
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28188, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28189
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28188
 *     if objType == CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:
 */
  }

  /* "cuda/cuda.pyx":28190
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28190, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28190, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28191
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28190
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28192
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28192, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28193
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28192
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28194
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28194, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28195
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28194
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28196
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28196, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28197
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28196
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28198
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28198, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28199
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28198
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1)
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28200
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28200, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28201
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28200
 *     if objType == CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS:
 *         return sizeof(ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28202
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28202, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28203
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28202
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:
 */
  }

  /* "cuda/cuda.pyx":28204
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28204, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28205
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28204
 *     if objType == CUDA_EXT_SEM_SIGNAL_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28206
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)
 *     if objType == CUarrayMapInfo_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28206, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28207
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == CUarrayMapInfo_v1:
 *         return sizeof(ccuda.CUarrayMapInfo_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28206
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1)
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)
 *     if objType == CUarrayMapInfo_v1:
 */
  }

  /* "cuda/cuda.pyx":28208
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)
 *     if objType == CUarrayMapInfo_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarrayMapInfo_v1)
 *     if objType == CUarrayMapInfo:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUarrayMapInfo_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28208, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28209
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)
 *     if objType == CUarrayMapInfo_v1:
 *         return sizeof(ccuda.CUarrayMapInfo_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUarrayMapInfo:
 *         return sizeof(ccuda.CUarrayMapInfo)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUarrayMapInfo_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28208
 *     if objType == CUDA_EXT_SEM_WAIT_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS)
 *     if objType == CUarrayMapInfo_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarrayMapInfo_v1)
 *     if objType == CUarrayMapInfo:
 */
  }

  /* "cuda/cuda.pyx":28210
 *     if objType == CUarrayMapInfo_v1:
 *         return sizeof(ccuda.CUarrayMapInfo_v1)
 *     if objType == CUarrayMapInfo:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarrayMapInfo)
 *     if objType == CUmemLocation_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUarrayMapInfo), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28210, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28211
 *         return sizeof(ccuda.CUarrayMapInfo_v1)
 *     if objType == CUarrayMapInfo:
 *         return sizeof(ccuda.CUarrayMapInfo)             # <<<<<<<<<<<<<<
 *     if objType == CUmemLocation_v1:
 *         return sizeof(ccuda.CUmemLocation_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUarrayMapInfo))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28210
 *     if objType == CUarrayMapInfo_v1:
 *         return sizeof(ccuda.CUarrayMapInfo_v1)
 *     if objType == CUarrayMapInfo:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUarrayMapInfo)
 *     if objType == CUmemLocation_v1:
 */
  }

  /* "cuda/cuda.pyx":28212
 *     if objType == CUarrayMapInfo:
 *         return sizeof(ccuda.CUarrayMapInfo)
 *     if objType == CUmemLocation_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemLocation_v1)
 *     if objType == CUmemLocation:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28212, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28213
 *         return sizeof(ccuda.CUarrayMapInfo)
 *     if objType == CUmemLocation_v1:
 *         return sizeof(ccuda.CUmemLocation_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUmemLocation:
 *         return sizeof(ccuda.CUmemLocation)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemLocation_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28213, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28212
 *     if objType == CUarrayMapInfo:
 *         return sizeof(ccuda.CUarrayMapInfo)
 *     if objType == CUmemLocation_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemLocation_v1)
 *     if objType == CUmemLocation:
 */
  }

  /* "cuda/cuda.pyx":28214
 *     if objType == CUmemLocation_v1:
 *         return sizeof(ccuda.CUmemLocation_v1)
 *     if objType == CUmemLocation:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemLocation)
 *     if objType == CUmemAllocationProp_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28214, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28215
 *         return sizeof(ccuda.CUmemLocation_v1)
 *     if objType == CUmemLocation:
 *         return sizeof(ccuda.CUmemLocation)             # <<<<<<<<<<<<<<
 *     if objType == CUmemAllocationProp_v1:
 *         return sizeof(ccuda.CUmemAllocationProp_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemLocation))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28214
 *     if objType == CUmemLocation_v1:
 *         return sizeof(ccuda.CUmemLocation_v1)
 *     if objType == CUmemLocation:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemLocation)
 *     if objType == CUmemAllocationProp_v1:
 */
  }

  /* "cuda/cuda.pyx":28216
 *     if objType == CUmemLocation:
 *         return sizeof(ccuda.CUmemLocation)
 *     if objType == CUmemAllocationProp_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAllocationProp_v1)
 *     if objType == CUmemAllocationProp:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAllocationProp_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28216, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28217
 *         return sizeof(ccuda.CUmemLocation)
 *     if objType == CUmemAllocationProp_v1:
 *         return sizeof(ccuda.CUmemAllocationProp_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUmemAllocationProp:
 *         return sizeof(ccuda.CUmemAllocationProp)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAllocationProp_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28216
 *     if objType == CUmemLocation:
 *         return sizeof(ccuda.CUmemLocation)
 *     if objType == CUmemAllocationProp_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAllocationProp_v1)
 *     if objType == CUmemAllocationProp:
 */
  }

  /* "cuda/cuda.pyx":28218
 *     if objType == CUmemAllocationProp_v1:
 *         return sizeof(ccuda.CUmemAllocationProp_v1)
 *     if objType == CUmemAllocationProp:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAllocationProp)
 *     if objType == CUmemAccessDesc_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAllocationProp), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28218, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28219
 *         return sizeof(ccuda.CUmemAllocationProp_v1)
 *     if objType == CUmemAllocationProp:
 *         return sizeof(ccuda.CUmemAllocationProp)             # <<<<<<<<<<<<<<
 *     if objType == CUmemAccessDesc_v1:
 *         return sizeof(ccuda.CUmemAccessDesc_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAllocationProp))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28218
 *     if objType == CUmemAllocationProp_v1:
 *         return sizeof(ccuda.CUmemAllocationProp_v1)
 *     if objType == CUmemAllocationProp:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAllocationProp)
 *     if objType == CUmemAccessDesc_v1:
 */
  }

  /* "cuda/cuda.pyx":28220
 *     if objType == CUmemAllocationProp:
 *         return sizeof(ccuda.CUmemAllocationProp)
 *     if objType == CUmemAccessDesc_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAccessDesc_v1)
 *     if objType == CUmemAccessDesc:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28220, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28221
 *         return sizeof(ccuda.CUmemAllocationProp)
 *     if objType == CUmemAccessDesc_v1:
 *         return sizeof(ccuda.CUmemAccessDesc_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUmemAccessDesc:
 *         return sizeof(ccuda.CUmemAccessDesc)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28220
 *     if objType == CUmemAllocationProp:
 *         return sizeof(ccuda.CUmemAllocationProp)
 *     if objType == CUmemAccessDesc_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAccessDesc_v1)
 *     if objType == CUmemAccessDesc:
 */
  }

  /* "cuda/cuda.pyx":28222
 *     if objType == CUmemAccessDesc_v1:
 *         return sizeof(ccuda.CUmemAccessDesc_v1)
 *     if objType == CUmemAccessDesc:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAccessDesc)
 *     if objType == CUmemPoolProps_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28222, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28222, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28223
 *         return sizeof(ccuda.CUmemAccessDesc_v1)
 *     if objType == CUmemAccessDesc:
 *         return sizeof(ccuda.CUmemAccessDesc)             # <<<<<<<<<<<<<<
 *     if objType == CUmemPoolProps_v1:
 *         return sizeof(ccuda.CUmemPoolProps_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemAccessDesc))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28222
 *     if objType == CUmemAccessDesc_v1:
 *         return sizeof(ccuda.CUmemAccessDesc_v1)
 *     if objType == CUmemAccessDesc:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemAccessDesc)
 *     if objType == CUmemPoolProps_v1:
 */
  }

  /* "cuda/cuda.pyx":28224
 *     if objType == CUmemAccessDesc:
 *         return sizeof(ccuda.CUmemAccessDesc)
 *     if objType == CUmemPoolProps_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolProps_v1)
 *     if objType == CUmemPoolProps:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolProps_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28224, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28225
 *         return sizeof(ccuda.CUmemAccessDesc)
 *     if objType == CUmemPoolProps_v1:
 *         return sizeof(ccuda.CUmemPoolProps_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUmemPoolProps:
 *         return sizeof(ccuda.CUmemPoolProps)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemPoolProps_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28224
 *     if objType == CUmemAccessDesc:
 *         return sizeof(ccuda.CUmemAccessDesc)
 *     if objType == CUmemPoolProps_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolProps_v1)
 *     if objType == CUmemPoolProps:
 */
  }

  /* "cuda/cuda.pyx":28226
 *     if objType == CUmemPoolProps_v1:
 *         return sizeof(ccuda.CUmemPoolProps_v1)
 *     if objType == CUmemPoolProps:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolProps)
 *     if objType == CUmemPoolPtrExportData_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolProps), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28226, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28227
 *         return sizeof(ccuda.CUmemPoolProps_v1)
 *     if objType == CUmemPoolProps:
 *         return sizeof(ccuda.CUmemPoolProps)             # <<<<<<<<<<<<<<
 *     if objType == CUmemPoolPtrExportData_v1:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemPoolProps))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28227, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28226
 *     if objType == CUmemPoolProps_v1:
 *         return sizeof(ccuda.CUmemPoolProps_v1)
 *     if objType == CUmemPoolProps:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolProps)
 *     if objType == CUmemPoolPtrExportData_v1:
 */
  }

  /* "cuda/cuda.pyx":28228
 *     if objType == CUmemPoolProps:
 *         return sizeof(ccuda.CUmemPoolProps)
 *     if objType == CUmemPoolPtrExportData_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)
 *     if objType == CUmemPoolPtrExportData:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28228, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28228, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28229
 *         return sizeof(ccuda.CUmemPoolProps)
 *     if objType == CUmemPoolPtrExportData_v1:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUmemPoolPtrExportData:
 *         return sizeof(ccuda.CUmemPoolPtrExportData)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28228
 *     if objType == CUmemPoolProps:
 *         return sizeof(ccuda.CUmemPoolProps)
 *     if objType == CUmemPoolPtrExportData_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)
 *     if objType == CUmemPoolPtrExportData:
 */
  }

  /* "cuda/cuda.pyx":28230
 *     if objType == CUmemPoolPtrExportData_v1:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)
 *     if objType == CUmemPoolPtrExportData:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolPtrExportData)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28230, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28231
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)
 *     if objType == CUmemPoolPtrExportData:
 *         return sizeof(ccuda.CUmemPoolPtrExportData)             # <<<<<<<<<<<<<<
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28231, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28230
 *     if objType == CUmemPoolPtrExportData_v1:
 *         return sizeof(ccuda.CUmemPoolPtrExportData_v1)
 *     if objType == CUmemPoolPtrExportData:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemPoolPtrExportData)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:
 */
  }

  /* "cuda/cuda.pyx":28232
 *     if objType == CUmemPoolPtrExportData:
 *         return sizeof(ccuda.CUmemPoolPtrExportData)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)
 *     if objType == cuuint32_t:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28232, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28233
 *         return sizeof(ccuda.CUmemPoolPtrExportData)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)             # <<<<<<<<<<<<<<
 *     if objType == cuuint32_t:
 *         return sizeof(ccuda.cuuint32_t)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28232
 *     if objType == CUmemPoolPtrExportData:
 *         return sizeof(ccuda.CUmemPoolPtrExportData)
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)
 *     if objType == cuuint32_t:
 */
  }

  /* "cuda/cuda.pyx":28234
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)
 *     if objType == cuuint32_t:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.cuuint32_t)
 *     if objType == cuuint64_t:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint32_t), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28234, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28235
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)
 *     if objType == cuuint32_t:
 *         return sizeof(ccuda.cuuint32_t)             # <<<<<<<<<<<<<<
 *     if objType == cuuint64_t:
 *         return sizeof(ccuda.cuuint64_t)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_cuuint32_t))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28234
 *     if objType == CUDA_MEM_ALLOC_NODE_PARAMS:
 *         return sizeof(ccuda.CUDA_MEM_ALLOC_NODE_PARAMS)
 *     if objType == cuuint32_t:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.cuuint32_t)
 *     if objType == cuuint64_t:
 */
  }

  /* "cuda/cuda.pyx":28236
 *     if objType == cuuint32_t:
 *         return sizeof(ccuda.cuuint32_t)
 *     if objType == cuuint64_t:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.cuuint64_t)
 *     if objType == CUdeviceptr_v2:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28236, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28236, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28237
 *         return sizeof(ccuda.cuuint32_t)
 *     if objType == cuuint64_t:
 *         return sizeof(ccuda.cuuint64_t)             # <<<<<<<<<<<<<<
 *     if objType == CUdeviceptr_v2:
 *         return sizeof(ccuda.CUdeviceptr_v2)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_cuuint64_t))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28237, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28236
 *     if objType == cuuint32_t:
 *         return sizeof(ccuda.cuuint32_t)
 *     if objType == cuuint64_t:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.cuuint64_t)
 *     if objType == CUdeviceptr_v2:
 */
  }

  /* "cuda/cuda.pyx":28238
 *     if objType == cuuint64_t:
 *         return sizeof(ccuda.cuuint64_t)
 *     if objType == CUdeviceptr_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdeviceptr_v2)
 *     if objType == CUdeviceptr:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr_v2), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28238, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28239
 *         return sizeof(ccuda.cuuint64_t)
 *     if objType == CUdeviceptr_v2:
 *         return sizeof(ccuda.CUdeviceptr_v2)             # <<<<<<<<<<<<<<
 *     if objType == CUdeviceptr:
 *         return sizeof(ccuda.CUdeviceptr)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdeviceptr_v2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28238
 *     if objType == cuuint64_t:
 *         return sizeof(ccuda.cuuint64_t)
 *     if objType == CUdeviceptr_v2:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdeviceptr_v2)
 *     if objType == CUdeviceptr:
 */
  }

  /* "cuda/cuda.pyx":28240
 *     if objType == CUdeviceptr_v2:
 *         return sizeof(ccuda.CUdeviceptr_v2)
 *     if objType == CUdeviceptr:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdeviceptr)
 *     if objType == CUdevice_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28240, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28241
 *         return sizeof(ccuda.CUdeviceptr_v2)
 *     if objType == CUdeviceptr:
 *         return sizeof(ccuda.CUdeviceptr)             # <<<<<<<<<<<<<<
 *     if objType == CUdevice_v1:
 *         return sizeof(ccuda.CUdevice_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdeviceptr))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28240
 *     if objType == CUdeviceptr_v2:
 *         return sizeof(ccuda.CUdeviceptr_v2)
 *     if objType == CUdeviceptr:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdeviceptr)
 *     if objType == CUdevice_v1:
 */
  }

  /* "cuda/cuda.pyx":28242
 *     if objType == CUdeviceptr:
 *         return sizeof(ccuda.CUdeviceptr)
 *     if objType == CUdevice_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevice_v1)
 *     if objType == CUdevice:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28242, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28243
 *         return sizeof(ccuda.CUdeviceptr)
 *     if objType == CUdevice_v1:
 *         return sizeof(ccuda.CUdevice_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUdevice:
 *         return sizeof(ccuda.CUdevice)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdevice_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28242
 *     if objType == CUdeviceptr:
 *         return sizeof(ccuda.CUdeviceptr)
 *     if objType == CUdevice_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevice_v1)
 *     if objType == CUdevice:
 */
  }

  /* "cuda/cuda.pyx":28244
 *     if objType == CUdevice_v1:
 *         return sizeof(ccuda.CUdevice_v1)
 *     if objType == CUdevice:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevice)
 *     if objType == CUtexObject_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28244, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28244, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28245
 *         return sizeof(ccuda.CUdevice_v1)
 *     if objType == CUdevice:
 *         return sizeof(ccuda.CUdevice)             # <<<<<<<<<<<<<<
 *     if objType == CUtexObject_v1:
 *         return sizeof(ccuda.CUtexObject_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUdevice))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28244
 *     if objType == CUdevice_v1:
 *         return sizeof(ccuda.CUdevice_v1)
 *     if objType == CUdevice:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUdevice)
 *     if objType == CUtexObject_v1:
 */
  }

  /* "cuda/cuda.pyx":28246
 *     if objType == CUdevice:
 *         return sizeof(ccuda.CUdevice)
 *     if objType == CUtexObject_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUtexObject_v1)
 *     if objType == CUtexObject:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexObject_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28246, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28247
 *         return sizeof(ccuda.CUdevice)
 *     if objType == CUtexObject_v1:
 *         return sizeof(ccuda.CUtexObject_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUtexObject:
 *         return sizeof(ccuda.CUtexObject)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUtexObject_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28246
 *     if objType == CUdevice:
 *         return sizeof(ccuda.CUdevice)
 *     if objType == CUtexObject_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUtexObject_v1)
 *     if objType == CUtexObject:
 */
  }

  /* "cuda/cuda.pyx":28248
 *     if objType == CUtexObject_v1:
 *         return sizeof(ccuda.CUtexObject_v1)
 *     if objType == CUtexObject:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUtexObject)
 *     if objType == CUsurfObject_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexObject), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28248, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28249
 *         return sizeof(ccuda.CUtexObject_v1)
 *     if objType == CUtexObject:
 *         return sizeof(ccuda.CUtexObject)             # <<<<<<<<<<<<<<
 *     if objType == CUsurfObject_v1:
 *         return sizeof(ccuda.CUsurfObject_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUtexObject))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28248
 *     if objType == CUtexObject_v1:
 *         return sizeof(ccuda.CUtexObject_v1)
 *     if objType == CUtexObject:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUtexObject)
 *     if objType == CUsurfObject_v1:
 */
  }

  /* "cuda/cuda.pyx":28250
 *     if objType == CUtexObject:
 *         return sizeof(ccuda.CUtexObject)
 *     if objType == CUsurfObject_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUsurfObject_v1)
 *     if objType == CUsurfObject:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfObject_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28250, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28251
 *         return sizeof(ccuda.CUtexObject)
 *     if objType == CUsurfObject_v1:
 *         return sizeof(ccuda.CUsurfObject_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUsurfObject:
 *         return sizeof(ccuda.CUsurfObject)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUsurfObject_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28250
 *     if objType == CUtexObject:
 *         return sizeof(ccuda.CUtexObject)
 *     if objType == CUsurfObject_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUsurfObject_v1)
 *     if objType == CUsurfObject:
 */
  }

  /* "cuda/cuda.pyx":28252
 *     if objType == CUsurfObject_v1:
 *         return sizeof(ccuda.CUsurfObject_v1)
 *     if objType == CUsurfObject:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUsurfObject)
 *     if objType == CUmemGenericAllocationHandle_v1:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfObject), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28252, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28253
 *         return sizeof(ccuda.CUsurfObject_v1)
 *     if objType == CUsurfObject:
 *         return sizeof(ccuda.CUsurfObject)             # <<<<<<<<<<<<<<
 *     if objType == CUmemGenericAllocationHandle_v1:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUsurfObject))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28252
 *     if objType == CUsurfObject_v1:
 *         return sizeof(ccuda.CUsurfObject_v1)
 *     if objType == CUsurfObject:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUsurfObject)
 *     if objType == CUmemGenericAllocationHandle_v1:
 */
  }

  /* "cuda/cuda.pyx":28254
 *     if objType == CUsurfObject:
 *         return sizeof(ccuda.CUsurfObject)
 *     if objType == CUmemGenericAllocationHandle_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)
 *     if objType == CUmemGenericAllocationHandle:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle_v1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28254, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28255
 *         return sizeof(ccuda.CUsurfObject)
 *     if objType == CUmemGenericAllocationHandle_v1:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)             # <<<<<<<<<<<<<<
 *     if objType == CUmemGenericAllocationHandle:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28254
 *     if objType == CUsurfObject:
 *         return sizeof(ccuda.CUsurfObject)
 *     if objType == CUmemGenericAllocationHandle_v1:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)
 *     if objType == CUmemGenericAllocationHandle:
 */
  }

  /* "cuda/cuda.pyx":28256
 *     if objType == CUmemGenericAllocationHandle_v1:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)
 *     if objType == CUmemGenericAllocationHandle:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemGenericAllocationHandle)
 *     raise TypeError("Unknown type: " + str(objType))
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_objType, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28256, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 28256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "cuda/cuda.pyx":28257
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)
 *     if objType == CUmemGenericAllocationHandle:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle)             # <<<<<<<<<<<<<<
 *     raise TypeError("Unknown type: " + str(objType))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cuda/cuda.pyx":28256
 *     if objType == CUmemGenericAllocationHandle_v1:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle_v1)
 *     if objType == CUmemGenericAllocationHandle:             # <<<<<<<<<<<<<<
 *         return sizeof(ccuda.CUmemGenericAllocationHandle)
 *     raise TypeError("Unknown type: " + str(objType))
 */
  }

  /* "cuda/cuda.pyx":28258
 *     if objType == CUmemGenericAllocationHandle:
 *         return sizeof(ccuda.CUmemGenericAllocationHandle)
 *     raise TypeError("Unknown type: " + str(objType))             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_objType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Unknown_type, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 28258, __pyx_L1_error)

  /* "cuda/cuda.pyx":27943
 * 
 * @cython.embedsignature(True)
 * def sizeof(objType):             # <<<<<<<<<<<<<<
 *     """ Returns the size of provided CUDA Python structure in bytes
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cuda.cuda.sizeof", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py_int")
 * cdef inline list __Pyx_carray_to_py_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_py_int(int *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_l = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_py_int", 0);
  __Pyx_TraceCall("__Pyx_carray_to_py_int", __pyx_f[1], 112, 0, __PYX_ERR(1, 112, __pyx_L1_error));

  /* "carray.to_py":115
 *     cdef size_t i
 *     cdef object value
 *     l = PyList_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyList_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_l = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":116
 *     cdef object value
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":117
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 */
    __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":118
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyList_SET_ITEM(l, i, value)
 *     return l
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":119
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)             # <<<<<<<<<<<<<<
 *     return l
 * 
 */
    PyList_SET_ITEM(__pyx_v_l, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":120
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 *     return l             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_l);
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py_int")
 * cdef inline list __Pyx_carray_to_py_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple_int")
 * cdef inline tuple __Pyx_carray_to_tuple_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_int(int *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_tuple_int", 0);
  __Pyx_TraceCall("__Pyx_carray_to_tuple_int", __pyx_f[1], 124, 0, __PYX_ERR(1, 124, __pyx_L1_error));

  /* "carray.to_py":127
 *     cdef size_t i
 *     cdef object value
 *     t = PyTuple_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyTuple_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_t = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":128
 *     cdef object value
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":129
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 */
    __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":130
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":131
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)             # <<<<<<<<<<<<<<
 *     return t
 */
    PyTuple_SET_ITEM(__pyx_v_t, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":132
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_t);
  __pyx_r = __pyx_v_t;
  goto __pyx_L0;

  /* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple_int")
 * cdef inline tuple __Pyx_carray_to_tuple_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_tuple_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py_int")
 * cdef int __Pyx_carray_from_py_int(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

static int __Pyx_carray_from_py_int(PyObject *__pyx_v_o, int *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_item = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  char const *__pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_from_py_int", 0);
  __Pyx_TraceCall("__Pyx_carray_from_py_int", __pyx_f[1], 77, 0, __PYX_ERR(1, 77, __pyx_L1_error));

  /* "carray.from_py":78
 * @cname("__Pyx_carray_from_py_int")
 * cdef int __Pyx_carray_from_py_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length             # <<<<<<<<<<<<<<
 *     try:
 *         i = len(o)
 */
  __pyx_v_i = __pyx_v_length;

  /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "carray.from_py":80
 *     cdef Py_ssize_t i = length
 *     try:
 *         i = len(o)             # <<<<<<<<<<<<<<
 *     except (TypeError, OverflowError):
 *         pass
 */
      __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 80, __pyx_L3_error)
      __pyx_v_i = __pyx_t_4;

      /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "carray.from_py":81
 *     try:
 *         i = len(o)
 *     except (TypeError, OverflowError):             # <<<<<<<<<<<<<<
 *         pass
 *     if i == length:
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OverflowError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
  if (__pyx_t_6) {

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
      __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 84, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_7);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 84, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_v_i = __pyx_t_4;
      __pyx_t_4 = (__pyx_t_4 + 1);

      /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      __pyx_t_6 = ((__pyx_v_i >= __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":86
 *         for i, item in enumerate(o):
 *             if i >= length:
 *                 break             # <<<<<<<<<<<<<<
 *             v[i] = item
 *         else:
 */
        goto __pyx_L11_break;

        /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      }

      /* "carray.from_py":87
 *             if i >= length:
 *                 break
 *             v[i] = item             # <<<<<<<<<<<<<<
 *         else:
 *             i += 1  # convert index to length
 */
      __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      (__pyx_v_v[__pyx_v_i]) = __pyx_t_5;

      /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    }
    /*else*/ {

      /* "carray.from_py":89
 *             v[i] = item
 *         else:
 *             i += 1  # convert index to length             # <<<<<<<<<<<<<<
 *             if i == length:
 *                 return 0
 */
      __pyx_v_i = (__pyx_v_i + 1);

      /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":91
 *             i += 1  # convert index to length
 *             if i == length:
 *                 return 0             # <<<<<<<<<<<<<<
 * 
 *     PyErr_Format(
 */
        __pyx_r = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L0;

        /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      }
    }

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_L11_break:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  }

  /* "carray.from_py":96
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 *          if i >= length else             # <<<<<<<<<<<<<<
 *          "not enough values found during array assignment, expected %zd, got %zd"),
 *         length, i)
 */
  if (((__pyx_v_i >= __pyx_v_length) != 0)) {
    __pyx_t_11 = ((char const *)"too many values found during array assignment, expected %zd");
  } else {
    __pyx_t_11 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd");
  }

  /* "carray.from_py":93
 *                 return 0
 * 
 *     PyErr_Format(             # <<<<<<<<<<<<<<
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 */
  __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_11, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py_int")
 * cdef int __Pyx_carray_from_py_int(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py_unsigned_int")
 * cdef inline list __Pyx_carray_to_py_unsigned_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_py_unsigned_int(unsigned int *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_l = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_py_unsigned_int", 0);
  __Pyx_TraceCall("__Pyx_carray_to_py_unsigned_int", __pyx_f[1], 112, 0, __PYX_ERR(1, 112, __pyx_L1_error));

  /* "carray.to_py":115
 *     cdef size_t i
 *     cdef object value
 *     l = PyList_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyList_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_l = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":116
 *     cdef object value
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":117
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 */
    __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":118
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyList_SET_ITEM(l, i, value)
 *     return l
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":119
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)             # <<<<<<<<<<<<<<
 *     return l
 * 
 */
    PyList_SET_ITEM(__pyx_v_l, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":120
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 *     return l             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_l);
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py_unsigned_int")
 * cdef inline list __Pyx_carray_to_py_unsigned_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_py_unsigned_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple_unsigned_int")
 * cdef inline tuple __Pyx_carray_to_tuple_unsigned_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_unsigned_int(unsigned int *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_tuple_unsigned_int", 0);
  __Pyx_TraceCall("__Pyx_carray_to_tuple_unsigned_int", __pyx_f[1], 124, 0, __PYX_ERR(1, 124, __pyx_L1_error));

  /* "carray.to_py":127
 *     cdef size_t i
 *     cdef object value
 *     t = PyTuple_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyTuple_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_t = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":128
 *     cdef object value
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":129
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 */
    __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":130
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":131
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)             # <<<<<<<<<<<<<<
 *     return t
 */
    PyTuple_SET_ITEM(__pyx_v_t, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":132
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_t);
  __pyx_r = __pyx_v_t;
  goto __pyx_L0;

  /* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple_unsigned_int")
 * cdef inline tuple __Pyx_carray_to_tuple_unsigned_int(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_tuple_unsigned_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py_unsigned_int")
 * cdef int __Pyx_carray_from_py_unsigned_int(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

static int __Pyx_carray_from_py_unsigned_int(PyObject *__pyx_v_o, unsigned int *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_item = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  unsigned int __pyx_t_11;
  char const *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_from_py_unsigned_int", 0);
  __Pyx_TraceCall("__Pyx_carray_from_py_unsigned_int", __pyx_f[1], 77, 0, __PYX_ERR(1, 77, __pyx_L1_error));

  /* "carray.from_py":78
 * @cname("__Pyx_carray_from_py_unsigned_int")
 * cdef int __Pyx_carray_from_py_unsigned_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length             # <<<<<<<<<<<<<<
 *     try:
 *         i = len(o)
 */
  __pyx_v_i = __pyx_v_length;

  /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_unsigned_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "carray.from_py":80
 *     cdef Py_ssize_t i = length
 *     try:
 *         i = len(o)             # <<<<<<<<<<<<<<
 *     except (TypeError, OverflowError):
 *         pass
 */
      __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 80, __pyx_L3_error)
      __pyx_v_i = __pyx_t_4;

      /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_unsigned_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "carray.from_py":81
 *     try:
 *         i = len(o)
 *     except (TypeError, OverflowError):             # <<<<<<<<<<<<<<
 *         pass
 *     if i == length:
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OverflowError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_unsigned_int(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
  if (__pyx_t_6) {

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
      __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 84, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_7);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 84, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_v_i = __pyx_t_4;
      __pyx_t_4 = (__pyx_t_4 + 1);

      /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      __pyx_t_6 = ((__pyx_v_i >= __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":86
 *         for i, item in enumerate(o):
 *             if i >= length:
 *                 break             # <<<<<<<<<<<<<<
 *             v[i] = item
 *         else:
 */
        goto __pyx_L11_break;

        /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      }

      /* "carray.from_py":87
 *             if i >= length:
 *                 break
 *             v[i] = item             # <<<<<<<<<<<<<<
 *         else:
 *             i += 1  # convert index to length
 */
      __pyx_t_11 = __Pyx_PyInt_As_unsigned_int(__pyx_v_item); if (unlikely((__pyx_t_11 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      (__pyx_v_v[__pyx_v_i]) = __pyx_t_11;

      /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    }
    /*else*/ {

      /* "carray.from_py":89
 *             v[i] = item
 *         else:
 *             i += 1  # convert index to length             # <<<<<<<<<<<<<<
 *             if i == length:
 *                 return 0
 */
      __pyx_v_i = (__pyx_v_i + 1);

      /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":91
 *             i += 1  # convert index to length
 *             if i == length:
 *                 return 0             # <<<<<<<<<<<<<<
 * 
 *     PyErr_Format(
 */
        __pyx_r = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L0;

        /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      }
    }

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_L11_break:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  }

  /* "carray.from_py":96
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 *          if i >= length else             # <<<<<<<<<<<<<<
 *          "not enough values found during array assignment, expected %zd, got %zd"),
 *         length, i)
 */
  if (((__pyx_v_i >= __pyx_v_length) != 0)) {
    __pyx_t_12 = ((char const *)"too many values found during array assignment, expected %zd");
  } else {
    __pyx_t_12 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd");
  }

  /* "carray.from_py":93
 *                 return 0
 * 
 *     PyErr_Format(             # <<<<<<<<<<<<<<
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 */
  __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_12, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py_unsigned_int")
 * cdef int __Pyx_carray_from_py_unsigned_int(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py_unsigned_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef inline list __Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode(__pyx_t_4cuda_5ccuda_CUaddress_mode *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_l = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode", 0);
  __Pyx_TraceCall("__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode", __pyx_f[1], 112, 0, __PYX_ERR(1, 112, __pyx_L1_error));

  /* "carray.to_py":115
 *     cdef size_t i
 *     cdef object value
 *     l = PyList_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyList_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_l = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":116
 *     cdef object value
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":117
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 */
    __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":118
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyList_SET_ITEM(l, i, value)
 *     return l
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":119
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)             # <<<<<<<<<<<<<<
 *     return l
 * 
 */
    PyList_SET_ITEM(__pyx_v_l, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":120
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 *     return l             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_l);
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef inline list __Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_py___pyx_t_4cuda_5ccuda_CUaddress_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef inline tuple __Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode(__pyx_t_4cuda_5ccuda_CUaddress_mode *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode", 0);
  __Pyx_TraceCall("__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode", __pyx_f[1], 124, 0, __PYX_ERR(1, 124, __pyx_L1_error));

  /* "carray.to_py":127
 *     cdef size_t i
 *     cdef object value
 *     t = PyTuple_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyTuple_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_t = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":128
 *     cdef object value
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":129
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 */
    __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":130
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":131
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)             # <<<<<<<<<<<<<<
 *     return t
 */
    PyTuple_SET_ITEM(__pyx_v_t, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":132
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_t);
  __pyx_r = __pyx_v_t;
  goto __pyx_L0;

  /* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef inline tuple __Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_tuple___pyx_t_4cuda_5ccuda_CUaddress_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

static int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(PyObject *__pyx_v_o, __pyx_t_4cuda_5ccuda_CUaddress_mode *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_item = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  __pyx_t_4cuda_5ccuda_CUaddress_mode __pyx_t_11;
  char const *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode", 0);
  __Pyx_TraceCall("__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode", __pyx_f[1], 77, 0, __PYX_ERR(1, 77, __pyx_L1_error));

  /* "carray.from_py":78
 * @cname("__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length             # <<<<<<<<<<<<<<
 *     try:
 *         i = len(o)
 */
  __pyx_v_i = __pyx_v_length;

  /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "carray.from_py":80
 *     cdef Py_ssize_t i = length
 *     try:
 *         i = len(o)             # <<<<<<<<<<<<<<
 *     except (TypeError, OverflowError):
 *         pass
 */
      __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 80, __pyx_L3_error)
      __pyx_v_i = __pyx_t_4;

      /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "carray.from_py":81
 *     try:
 *         i = len(o)
 *     except (TypeError, OverflowError):             # <<<<<<<<<<<<<<
 *         pass
 *     if i == length:
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OverflowError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
  if (__pyx_t_6) {

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
      __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 84, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_7);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 84, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_v_i = __pyx_t_4;
      __pyx_t_4 = (__pyx_t_4 + 1);

      /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      __pyx_t_6 = ((__pyx_v_i >= __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":86
 *         for i, item in enumerate(o):
 *             if i >= length:
 *                 break             # <<<<<<<<<<<<<<
 *             v[i] = item
 *         else:
 */
        goto __pyx_L11_break;

        /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      }

      /* "carray.from_py":87
 *             if i >= length:
 *                 break
 *             v[i] = item             # <<<<<<<<<<<<<<
 *         else:
 *             i += 1  # convert index to length
 */
      __pyx_t_11 = ((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_v_item)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      (__pyx_v_v[__pyx_v_i]) = __pyx_t_11;

      /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    }
    /*else*/ {

      /* "carray.from_py":89
 *             v[i] = item
 *         else:
 *             i += 1  # convert index to length             # <<<<<<<<<<<<<<
 *             if i == length:
 *                 return 0
 */
      __pyx_v_i = (__pyx_v_i + 1);

      /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":91
 *             i += 1  # convert index to length
 *             if i == length:
 *                 return 0             # <<<<<<<<<<<<<<
 * 
 *     PyErr_Format(
 */
        __pyx_r = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L0;

        /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      }
    }

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_L11_break:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  }

  /* "carray.from_py":96
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 *          if i >= length else             # <<<<<<<<<<<<<<
 *          "not enough values found during array assignment, expected %zd, got %zd"),
 *         length, i)
 */
  if (((__pyx_v_i >= __pyx_v_length) != 0)) {
    __pyx_t_12 = ((char const *)"too many values found during array assignment, expected %zd");
  } else {
    __pyx_t_12 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd");
  }

  /* "carray.from_py":93
 *                 return 0
 * 
 *     PyErr_Format(             # <<<<<<<<<<<<<<
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 */
  __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_12, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode")
 * cdef int __Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py___pyx_t_4cuda_5ccuda_CUaddress_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py_float")
 * cdef inline list __Pyx_carray_to_py_float(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_py_float(float *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_l = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_py_float", 0);
  __Pyx_TraceCall("__Pyx_carray_to_py_float", __pyx_f[1], 112, 0, __PYX_ERR(1, 112, __pyx_L1_error));

  /* "carray.to_py":115
 *     cdef size_t i
 *     cdef object value
 *     l = PyList_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyList_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_l = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":116
 *     cdef object value
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":117
 *     l = PyList_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 */
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":118
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyList_SET_ITEM(l, i, value)
 *     return l
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":119
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)             # <<<<<<<<<<<<<<
 *     return l
 * 
 */
    PyList_SET_ITEM(__pyx_v_l, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":120
 *         Py_INCREF(value)
 *         PyList_SET_ITEM(l, i, value)
 *     return l             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_l);
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "carray.to_py":112
 * 
 * @cname("__Pyx_carray_to_py_float")
 * cdef inline list __Pyx_carray_to_py_float(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple_float")
 * cdef inline tuple __Pyx_carray_to_tuple_float(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_float(float *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_to_tuple_float", 0);
  __Pyx_TraceCall("__Pyx_carray_to_tuple_float", __pyx_f[1], 124, 0, __PYX_ERR(1, 124, __pyx_L1_error));

  /* "carray.to_py":127
 *     cdef size_t i
 *     cdef object value
 *     t = PyTuple_New(length)             # <<<<<<<<<<<<<<
 *     for i in range(<size_t>length):
 *         value = v[i]
 */
  __pyx_t_1 = PyTuple_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_t = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "carray.to_py":128
 *     cdef object value
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):             # <<<<<<<<<<<<<<
 *         value = v[i]
 *         Py_INCREF(value)
 */
  __pyx_t_2 = ((size_t)__pyx_v_length);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "carray.to_py":129
 *     t = PyTuple_New(length)
 *     for i in range(<size_t>length):
 *         value = v[i]             # <<<<<<<<<<<<<<
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 */
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "carray.to_py":130
 *     for i in range(<size_t>length):
 *         value = v[i]
 *         Py_INCREF(value)             # <<<<<<<<<<<<<<
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t
 */
    Py_INCREF(__pyx_v_value);

    /* "carray.to_py":131
 *         value = v[i]
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)             # <<<<<<<<<<<<<<
 *     return t
 */
    PyTuple_SET_ITEM(__pyx_v_t, __pyx_v_i, __pyx_v_value);
  }

  /* "carray.to_py":132
 *         Py_INCREF(value)
 *         PyTuple_SET_ITEM(t, i, value)
 *     return t             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_t);
  __pyx_r = __pyx_v_t;
  goto __pyx_L0;

  /* "carray.to_py":124
 * 
 * @cname("__Pyx_carray_to_tuple_float")
 * cdef inline tuple __Pyx_carray_to_tuple_float(base_type *v, Py_ssize_t length):             # <<<<<<<<<<<<<<
 *     cdef size_t i
 *     cdef object value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_tuple_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py_float")
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

static int __Pyx_carray_from_py_float(PyObject *__pyx_v_o, float *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_item = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  float __pyx_t_11;
  char const *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_from_py_float", 0);
  __Pyx_TraceCall("__Pyx_carray_from_py_float", __pyx_f[1], 77, 0, __PYX_ERR(1, 77, __pyx_L1_error));

  /* "carray.from_py":78
 * @cname("__Pyx_carray_from_py_float")
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length             # <<<<<<<<<<<<<<
 *     try:
 *         i = len(o)
 */
  __pyx_v_i = __pyx_v_length;

  /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "carray.from_py":80
 *     cdef Py_ssize_t i = length
 *     try:
 *         i = len(o)             # <<<<<<<<<<<<<<
 *     except (TypeError, OverflowError):
 *         pass
 */
      __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 80, __pyx_L3_error)
      __pyx_v_i = __pyx_t_4;

      /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "carray.from_py":81
 *     try:
 *         i = len(o)
 *     except (TypeError, OverflowError):             # <<<<<<<<<<<<<<
 *         pass
 *     if i == length:
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OverflowError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "carray.from_py":79
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
  if (__pyx_t_6) {

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
      __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 84, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_7);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 84, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_v_i = __pyx_t_4;
      __pyx_t_4 = (__pyx_t_4 + 1);

      /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      __pyx_t_6 = ((__pyx_v_i >= __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":86
 *         for i, item in enumerate(o):
 *             if i >= length:
 *                 break             # <<<<<<<<<<<<<<
 *             v[i] = item
 *         else:
 */
        goto __pyx_L11_break;

        /* "carray.from_py":85
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      }

      /* "carray.from_py":87
 *             if i >= length:
 *                 break
 *             v[i] = item             # <<<<<<<<<<<<<<
 *         else:
 *             i += 1  # convert index to length
 */
      __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      (__pyx_v_v[__pyx_v_i]) = __pyx_t_11;

      /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    }
    /*else*/ {

      /* "carray.from_py":89
 *             v[i] = item
 *         else:
 *             i += 1  # convert index to length             # <<<<<<<<<<<<<<
 *             if i == length:
 *                 return 0
 */
      __pyx_v_i = (__pyx_v_i + 1);

      /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
      if (__pyx_t_6) {

        /* "carray.from_py":91
 *             i += 1  # convert index to length
 *             if i == length:
 *                 return 0             # <<<<<<<<<<<<<<
 * 
 *     PyErr_Format(
 */
        __pyx_r = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L0;

        /* "carray.from_py":90
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      }
    }

    /* "carray.from_py":84
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_L11_break:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "carray.from_py":83
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  }

  /* "carray.from_py":96
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 *          if i >= length else             # <<<<<<<<<<<<<<
 *          "not enough values found during array assignment, expected %zd, got %zd"),
 *         length, i)
 */
  if (((__pyx_v_i >= __pyx_v_length) != 0)) {
    __pyx_t_12 = ((char const *)"too many values found during array assignment, expected %zd");
  } else {
    __pyx_t_12 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd");
  }

  /* "carray.from_py":93
 *                 return 0
 * 
 *     PyErr_Format(             # <<<<<<<<<<<<<<
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 */
  __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_12, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "carray.from_py":77
 * 
 * @cname("__Pyx_carray_from_py_float")
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option")
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

static std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(PyObject *__pyx_v_o) {
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<__pyx_t_4cuda_5ccuda_CUjit_option>  __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUjit_option __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option", 0);
  __Pyx_TraceCall("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option", __pyx_f[1], 45, 0, __PYX_ERR(1, 45, __pyx_L1_error));

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_v_item)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((__pyx_t_4cuda_5ccuda_CUjit_option)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option")
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUjit_option", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static std::vector<size_t>  __pyx_convert_vector_from_py_size_t(PyObject *__pyx_v_o) {
  std::vector<size_t>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<size_t>  __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_size_t", 0);
  __Pyx_TraceCall("__pyx_convert_vector_from_py_size_t", __pyx_f[1], 45, 0, __PYX_ERR(1, 45, __pyx_L1_error));

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_size_t(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_v_item); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((size_t)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_size_t(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_size_t")
 * cdef vector[X] __pyx_convert_vector_from_py_size_t(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_size_t", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static std::vector<__pyx_t_4cuda_5ccuda_CUmem_range_attribute>  __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute(PyObject *__pyx_v_o) {
  std::vector<__pyx_t_4cuda_5ccuda_CUmem_range_attribute>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<__pyx_t_4cuda_5ccuda_CUmem_range_attribute>  __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUmem_range_attribute __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute", 0);
  __Pyx_TraceCall("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute", __pyx_f[1], 45, 0, __PYX_ERR(1, 45, __pyx_L1_error));

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(__pyx_v_item)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((__pyx_t_4cuda_5ccuda_CUmem_range_attribute)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute")
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUmem_range_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static std::vector<__pyx_t_4cuda_5ccuda_CUpointer_attribute>  __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(PyObject *__pyx_v_o) {
  std::vector<__pyx_t_4cuda_5ccuda_CUpointer_attribute>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<__pyx_t_4cuda_5ccuda_CUpointer_attribute>  __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4cuda_5ccuda_CUpointer_attribute __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute", 0);
  __Pyx_TraceCall("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute", __pyx_f[1], 45, 0, __PYX_ERR(1, 45, __pyx_L1_error));

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = ((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)__Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_v_item)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((__pyx_t_4cuda_5ccuda_CUpointer_attribute)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute")
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_tp_new_4cuda_4cuda_CUcontext(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_9CUcontext_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUcontext(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_9CUcontext_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUcontext[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUcontext_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUcontext_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUcontext_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUcontext_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUcontext_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_9CUcontext_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUcontext = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_9CUcontext_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_9CUcontext_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_9CUcontext_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUcontext = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUcontext", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUcontext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUcontext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_9CUcontext_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUcontext, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUcontext(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUcontext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_9CUcontext_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUcontext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmodule(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_8CUmodule_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmodule(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_8CUmodule_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmodule[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUmodule_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUmodule_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUmodule_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUmodule_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUmodule_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUmodule_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUmodule = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUmodule_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_8CUmodule_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_8CUmodule_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmodule = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmodule", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmodule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmodule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUmodule_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUmodule, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUmodule(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmodule, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_8CUmodule_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmodule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUfunction(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_10CUfunction_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUfunction(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_10CUfunction_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUfunction[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_10CUfunction_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_10CUfunction_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10CUfunction_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_10CUfunction_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10CUfunction_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_10CUfunction_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUfunction = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_10CUfunction_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_10CUfunction_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_10CUfunction_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUfunction = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUfunction", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUfunction), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUfunction, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_10CUfunction_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUfunction, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUfunction(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUfunction, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_10CUfunction_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUfunction, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUarray(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_7CUarray_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUarray(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_7CUarray_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUarray[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUarray_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUarray_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUarray_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUarray_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUarray_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_7CUarray_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUarray = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_7CUarray_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_7CUarray_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_7CUarray_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUarray = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUarray", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUarray), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUarray, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_7CUarray_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUarray, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUarray(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUarray, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_7CUarray_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUarray, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmipmappedArray(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_16CUmipmappedArray_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmipmappedArray(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_16CUmipmappedArray_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmipmappedArray[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmipmappedArray_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmipmappedArray_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmipmappedArray_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmipmappedArray_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmipmappedArray_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUmipmappedArray_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUmipmappedArray = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUmipmappedArray_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_16CUmipmappedArray_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_16CUmipmappedArray_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmipmappedArray = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmipmappedArray", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmipmappedArray), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmipmappedArray, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUmipmappedArray_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUmipmappedArray, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUmipmappedArray(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmipmappedArray, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_16CUmipmappedArray_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmipmappedArray, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUtexref(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_8CUtexref_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUtexref(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_8CUtexref_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUtexref[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUtexref_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUtexref_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUtexref_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUtexref_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUtexref_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUtexref_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUtexref = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUtexref_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_8CUtexref_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_8CUtexref_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUtexref = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUtexref", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUtexref), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUtexref, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUtexref_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUtexref, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUtexref(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUtexref, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_8CUtexref_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUtexref, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUsurfref(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_9CUsurfref_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUsurfref(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_9CUsurfref_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUsurfref[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUsurfref_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUsurfref_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUsurfref_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUsurfref_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUsurfref_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_9CUsurfref_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUsurfref = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_9CUsurfref_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_9CUsurfref_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_9CUsurfref_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUsurfref = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUsurfref", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUsurfref), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUsurfref, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_9CUsurfref_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUsurfref, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUsurfref(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUsurfref, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_9CUsurfref_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUsurfref, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUevent(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_7CUevent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUevent(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_7CUevent_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUevent[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUevent_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUevent_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUevent_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUevent_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUevent_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_7CUevent_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUevent = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_7CUevent_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_7CUevent_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_7CUevent_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUevent = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUevent", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUevent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUevent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_7CUevent_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUevent, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUevent(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUevent, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_7CUevent_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUevent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstream(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_8CUstream_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstream(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_8CUstream_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstream[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUstream_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUstream_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUstream_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUstream_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUstream_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUstream_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUstream = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUstream_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_8CUstream_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_8CUstream_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstream = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstream", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstream), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstream, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUstream_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUstream, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUstream(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstream, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_8CUstream_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstream, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraphicsResource(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_18CUgraphicsResource_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUgraphicsResource(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_18CUgraphicsResource_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUgraphicsResource[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUgraphicsResource_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUgraphicsResource_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUgraphicsResource_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUgraphicsResource_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUgraphicsResource_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_18CUgraphicsResource_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUgraphicsResource = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_18CUgraphicsResource_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_18CUgraphicsResource_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_18CUgraphicsResource_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUgraphicsResource = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUgraphicsResource", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUgraphicsResource), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUgraphicsResource, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_18CUgraphicsResource_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUgraphicsResource, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUgraphicsResource(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUgraphicsResource, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_18CUgraphicsResource_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUgraphicsResource, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexternalMemory(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_16CUexternalMemory_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUexternalMemory(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_16CUexternalMemory_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUexternalMemory[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUexternalMemory_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUexternalMemory_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUexternalMemory_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUexternalMemory_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUexternalMemory_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUexternalMemory_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUexternalMemory = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUexternalMemory_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_16CUexternalMemory_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_16CUexternalMemory_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUexternalMemory = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexternalMemory", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexternalMemory), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexternalMemory, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUexternalMemory_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUexternalMemory, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUexternalMemory(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUexternalMemory, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_16CUexternalMemory_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexternalMemory, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexternalSemaphore(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUexternalSemaphore(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUexternalSemaphore[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUexternalSemaphore_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_19CUexternalSemaphore_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUexternalSemaphore = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUexternalSemaphore = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexternalSemaphore", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexternalSemaphore), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexternalSemaphore, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUexternalSemaphore, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUexternalSemaphore(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUexternalSemaphore, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_19CUexternalSemaphore_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexternalSemaphore, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraph(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_7CUgraph_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUgraph(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_7CUgraph_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUgraph[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUgraph_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUgraph_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUgraph_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_7CUgraph_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_7CUgraph_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_7CUgraph_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUgraph = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_7CUgraph_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_7CUgraph_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_7CUgraph_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUgraph = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUgraph", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUgraph), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUgraph, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_7CUgraph_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUgraph, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUgraph(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUgraph, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_7CUgraph_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUgraph, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraphNode(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_11CUgraphNode_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUgraphNode(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_11CUgraphNode_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUgraphNode[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphNode_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphNode_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphNode_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphNode_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphNode_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUgraphNode_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUgraphNode = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUgraphNode_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_11CUgraphNode_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_11CUgraphNode_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUgraphNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUgraphNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUgraphNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUgraphNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUgraphNode_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUgraphNode, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUgraphNode(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUgraphNode, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_11CUgraphNode_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUgraphNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUgraphExec(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_11CUgraphExec_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUgraphExec(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_11CUgraphExec_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUgraphExec[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphExec_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphExec_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphExec_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUgraphExec_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUgraphExec_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUgraphExec_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUgraphExec = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUgraphExec_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_11CUgraphExec_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_11CUgraphExec_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUgraphExec = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUgraphExec", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUgraphExec), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUgraphExec, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUgraphExec_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUgraphExec, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUgraphExec(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUgraphExec, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_11CUgraphExec_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUgraphExec, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemoryPool(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_12CUmemoryPool_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemoryPool(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_12CUmemoryPool_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemoryPool[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUmemoryPool_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUmemoryPool_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUmemoryPool_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUmemoryPool_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUmemoryPool_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUmemoryPool_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUmemoryPool = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUmemoryPool_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_12CUmemoryPool_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_12CUmemoryPool_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemoryPool = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemoryPool", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemoryPool), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemoryPool, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUmemoryPool_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUmemoryPool, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUmemoryPool(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemoryPool, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_12CUmemoryPool_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemoryPool, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUuserObject(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_12CUuserObject_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUuserObject(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_12CUuserObject_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUuserObject[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUuserObject_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUuserObject_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUuserObject_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUuserObject_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUuserObject_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUuserObject_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUuserObject = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUuserObject_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_12CUuserObject_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_12CUuserObject_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUuserObject = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUuserObject", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUuserObject), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUuserObject, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUuserObject_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUuserObject, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUuserObject(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUuserObject, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_12CUuserObject_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUuserObject, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUlinkState(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUlinkState *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUlinkState *)o);
  p->_keepalive = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_11CUlinkState_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUlinkState(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUlinkState *p = (struct __pyx_obj_4cuda_4cuda_CUlinkState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_11CUlinkState_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_keepalive);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUlinkState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUlinkState *p = (struct __pyx_obj_4cuda_4cuda_CUlinkState *)o;
  if (p->_keepalive) {
    e = (*v)(p->_keepalive, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUlinkState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUlinkState *p = (struct __pyx_obj_4cuda_4cuda_CUlinkState *)o;
  tmp = ((PyObject*)p->_keepalive);
  p->_keepalive = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUlinkState[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUlinkState_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUlinkState_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUlinkState_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUlinkState_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUlinkState_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUlinkState_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUlinkState = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUlinkState_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_11CUlinkState_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_11CUlinkState_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUlinkState = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUlinkState", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUlinkState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUlinkState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUlinkState_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUlinkState, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUlinkState(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUlinkState, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUlinkState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUlinkState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_11CUlinkState_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUlinkState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUhostFn(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_8CUhostFn_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUhostFn(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_8CUhostFn_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUhostFn[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUhostFn_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUhostFn_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUhostFn_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUhostFn_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUhostFn_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUhostFn_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUhostFn = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUhostFn_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_8CUhostFn_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_8CUhostFn_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUhostFn = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUhostFn", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUhostFn), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUhostFn, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUhostFn_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUhostFn, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUhostFn(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUhostFn, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_8CUhostFn_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUhostFn, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamCallback(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_16CUstreamCallback_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstreamCallback(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_16CUstreamCallback_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstreamCallback[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUstreamCallback_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUstreamCallback_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUstreamCallback_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUstreamCallback_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUstreamCallback_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUstreamCallback_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUstreamCallback = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUstreamCallback_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_16CUstreamCallback_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_16CUstreamCallback_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamCallback = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamCallback", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamCallback), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamCallback, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUstreamCallback_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUstreamCallback, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUstreamCallback(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstreamCallback, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_16CUstreamCallback_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamCallback, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUoccupancyB2DSize(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUoccupancyB2DSize(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUoccupancyB2DSize[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_13getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_12getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_15__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_14__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_17__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_18CUoccupancyB2DSize_16__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUoccupancyB2DSize = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_11__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_11__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_9__index__, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUoccupancyB2DSize = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUoccupancyB2DSize", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUoccupancyB2DSize), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUoccupancyB2DSize, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUoccupancyB2DSize, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUoccupancyB2DSize(*args, **kwargs)\n\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUoccupancyB2DSize, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_18CUoccupancyB2DSize_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUoccupancyB2DSize, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUuuid_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_9CUuuid_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUuuid_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_9CUuuid_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_9CUuuid_st_bytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_9CUuuid_st_5bytes_1__get__(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUuuid_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUuuid_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUuuid_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUuuid_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_9CUuuid_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_9CUuuid_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_9CUuuid_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUuuid_st[] = {
  {(char *)"bytes", __pyx_getprop_4cuda_4cuda_9CUuuid_st_bytes, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUuuid_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUuuid_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUuuid_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUuuid_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_9CUuuid_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUuuid_st(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    bytes : bytes\n        < CUDA definition of UUID\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUuuid_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUuuid_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_9CUuuid_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUuuid_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcEventHandle_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUipcEventHandle_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_19CUipcEventHandle_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_19CUipcEventHandle_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUipcEventHandle_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_19CUipcEventHandle_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUipcEventHandle_st[] = {
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_19CUipcEventHandle_st_reserved, __pyx_setprop_4cuda_4cuda_19CUipcEventHandle_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUipcEventHandle_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUipcEventHandle_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUipcEventHandle_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUipcEventHandle_st(void_ptr _ptr=0)\n\n    CUDA IPC event handle\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUipcEventHandle_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUipcEventHandle_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUipcEventHandle_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcMemHandle_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUipcMemHandle_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUipcMemHandle_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUipcMemHandle_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUipcMemHandle_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_17CUipcMemHandle_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUipcMemHandle_st[] = {
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_17CUipcMemHandle_st_reserved, __pyx_setprop_4cuda_4cuda_17CUipcMemHandle_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUipcMemHandle_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUipcMemHandle_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUipcMemHandle_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUipcMemHandle_st(void_ptr _ptr=0)\n\n    CUDA IPC mem handle\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUipcMemHandle_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUipcMemHandle_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUipcMemHandle_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamMemOpWaitValueParams_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)o);
  p->_address = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_value64 = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)Py_None); Py_INCREF(Py_None);
  p->_alias = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstreamMemOpWaitValueParams_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *p = (struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_address);
  Py_CLEAR(p->_value64);
  Py_CLEAR(p->_alias);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUstreamMemOpWaitValueParams_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *p = (struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)o;
  if (p->_address) {
    e = (*v)(((PyObject *)p->_address), a); if (e) return e;
  }
  if (p->_value64) {
    e = (*v)(((PyObject *)p->_value64), a); if (e) return e;
  }
  if (p->_alias) {
    e = (*v)(((PyObject *)p->_alias), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUstreamMemOpWaitValueParams_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *p = (struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)o;
  tmp = ((PyObject*)p->_address);
  p->_address = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_value64);
  p->_value64 = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_alias);
  p->_alias = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_operation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_operation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9operation_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_address(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_address(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7address_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_value64(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_value64(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7value64_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_alias(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_alias(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_5alias_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstreamMemOpWaitValueParams_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUstreamMemOpWaitValueParams_st[] = {
  {(char *)"operation", __pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_operation, __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_operation, (char *)0, 0},
  {(char *)"address", __pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_address, __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_address, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_flags, __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_flags, (char *)0, 0},
  {(char *)"value64", __pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_value64, __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_value64, (char *)0, 0},
  {(char *)"alias", __pyx_getprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_alias, __pyx_setprop_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_alias, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamMemOpWaitValueParams_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUstreamMemOpWaitValueParams_st(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    operation : CUstreamBatchMemOpType\n\n    address : CUdeviceptr\n\n    flags : unsigned int\n\n    value64 : cuuint64_t\n\n    alias : CUdeviceptr\n        For driver internal use. Initial value is unimportant.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamMemOpWaitValueParams_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamMemOpWriteValueParams_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)o);
  p->_address = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_value64 = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)Py_None); Py_INCREF(Py_None);
  p->_alias = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstreamMemOpWriteValueParams_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *p = (struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_address);
  Py_CLEAR(p->_value64);
  Py_CLEAR(p->_alias);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUstreamMemOpWriteValueParams_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *p = (struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)o;
  if (p->_address) {
    e = (*v)(((PyObject *)p->_address), a); if (e) return e;
  }
  if (p->_value64) {
    e = (*v)(((PyObject *)p->_value64), a); if (e) return e;
  }
  if (p->_alias) {
    e = (*v)(((PyObject *)p->_alias), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUstreamMemOpWriteValueParams_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *p = (struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)o;
  tmp = ((PyObject*)p->_address);
  p->_address = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_value64);
  p->_value64 = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_alias);
  p->_alias = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_operation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_operation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9operation_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_address(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_address(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7address_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_value64(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_value64(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7value64_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_alias(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_alias(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_5alias_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstreamMemOpWriteValueParams_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUstreamMemOpWriteValueParams_st[] = {
  {(char *)"operation", __pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_operation, __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_operation, (char *)0, 0},
  {(char *)"address", __pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_address, __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_address, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_flags, __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_flags, (char *)0, 0},
  {(char *)"value64", __pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_value64, __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_value64, (char *)0, 0},
  {(char *)"alias", __pyx_getprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_alias, __pyx_setprop_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_alias, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamMemOpWriteValueParams_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUstreamMemOpWriteValueParams_st(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    operation : CUstreamBatchMemOpType\n\n    address : CUdeviceptr\n\n    flags : unsigned int\n\n    value64 : cuuint64_t\n\n    alias : CUdeviceptr\n        For driver internal use. Initial value is unimportant.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamMemOpWriteValueParams_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_operation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_operation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9operation_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st[] = {
  {(char *)"operation", __pyx_getprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_operation, __pyx_setprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_operation, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_flags, __pyx_setprop_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_flags, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamMemOpFlushRemoteWritesParams_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUstreamMemOpFlushRemoteWritesParams_st(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    operation : CUstreamBatchMemOpType\n\n    flags : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_union(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)o);
  p->_waitValue = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)Py_None); Py_INCREF(Py_None);
  p->_writeValue = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)Py_None); Py_INCREF(Py_None);
  p->_flushRemoteWrites = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)Py_None); Py_INCREF(Py_None);
  p->_pad = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstreamBatchMemOpParams_union(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *p = (struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_waitValue);
  Py_CLEAR(p->_writeValue);
  Py_CLEAR(p->_flushRemoteWrites);
  Py_CLEAR(p->_pad);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUstreamBatchMemOpParams_union(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *p = (struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)o;
  if (p->_waitValue) {
    e = (*v)(((PyObject *)p->_waitValue), a); if (e) return e;
  }
  if (p->_writeValue) {
    e = (*v)(((PyObject *)p->_writeValue), a); if (e) return e;
  }
  if (p->_flushRemoteWrites) {
    e = (*v)(((PyObject *)p->_flushRemoteWrites), a); if (e) return e;
  }
  if (p->_pad) {
    e = (*v)(((PyObject *)p->_pad), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUstreamBatchMemOpParams_union(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *p = (struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union *)o;
  tmp = ((PyObject*)p->_waitValue);
  p->_waitValue = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWaitValueParams_st *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_writeValue);
  p->_writeValue = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpWriteValueParams_st *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_flushRemoteWrites);
  p->_flushRemoteWrites = ((struct __pyx_obj_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pad);
  p->_pad = ((struct __pyx_obj_4cuda_4cuda_cuuint64_t *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_operation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_operation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9operation_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_waitValue(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_waitValue(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9waitValue_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_writeValue(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_writeValue(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10writeValue_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_flushRemoteWrites(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_flushRemoteWrites(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_17flushRemoteWrites_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_pad(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_pad(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3pad_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstreamBatchMemOpParams_union[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_30CUstreamBatchMemOpParams_union_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUstreamBatchMemOpParams_union[] = {
  {(char *)"operation", __pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_operation, __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_operation, (char *)0, 0},
  {(char *)"waitValue", __pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_waitValue, __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_waitValue, (char *)0, 0},
  {(char *)"writeValue", __pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_writeValue, __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_writeValue, (char *)0, 0},
  {(char *)"flushRemoteWrites", __pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_flushRemoteWrites, __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_flushRemoteWrites, (char *)0, 0},
  {(char *)"pad", __pyx_getprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_pad, __pyx_setprop_4cuda_4cuda_30CUstreamBatchMemOpParams_union_pad, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamBatchMemOpParams_union", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_union), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUstreamBatchMemOpParams_union(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    operation : CUstreamBatchMemOpType\n\n    waitValue : CUstreamMemOpWaitValueParams_st\n\n    writeValue : CUstreamMemOpWriteValueParams_st\n\n    flushRemoteWrites : CUstreamMemOpFlushRemoteWritesParams_st\n\n    pad : cuuint64_t\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevprop_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_12CUdevprop_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUdevprop_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_12CUdevprop_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_maxThreadsPerBlock(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_maxThreadsPerBlock(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_18maxThreadsPerBlock_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_maxThreadsDim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_maxThreadsDim(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_13maxThreadsDim_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_maxGridSize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_11maxGridSize_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_maxGridSize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_11maxGridSize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_sharedMemPerBlock(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_sharedMemPerBlock(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_17sharedMemPerBlock_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_totalConstantMemory(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_totalConstantMemory(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_19totalConstantMemory_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_SIMDWidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_SIMDWidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_9SIMDWidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_memPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_8memPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_memPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_8memPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_regsPerBlock(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_regsPerBlock(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_12regsPerBlock_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_clockRate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_9clockRate_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_clockRate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_9clockRate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_12CUdevprop_st_textureAlign(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_12CUdevprop_st_12textureAlign_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_12CUdevprop_st_textureAlign(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_12CUdevprop_st_12textureAlign_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUdevprop_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUdevprop_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUdevprop_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUdevprop_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUdevprop_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUdevprop_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUdevprop_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUdevprop_st[] = {
  {(char *)"maxThreadsPerBlock", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_maxThreadsPerBlock, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_maxThreadsPerBlock, (char *)0, 0},
  {(char *)"maxThreadsDim", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_maxThreadsDim, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_maxThreadsDim, (char *)0, 0},
  {(char *)"maxGridSize", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_maxGridSize, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_maxGridSize, (char *)0, 0},
  {(char *)"sharedMemPerBlock", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_sharedMemPerBlock, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_sharedMemPerBlock, (char *)0, 0},
  {(char *)"totalConstantMemory", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_totalConstantMemory, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_totalConstantMemory, (char *)0, 0},
  {(char *)"SIMDWidth", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_SIMDWidth, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_SIMDWidth, (char *)0, 0},
  {(char *)"memPitch", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_memPitch, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_memPitch, (char *)0, 0},
  {(char *)"regsPerBlock", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_regsPerBlock, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_regsPerBlock, (char *)0, 0},
  {(char *)"clockRate", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_clockRate, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_clockRate, (char *)0, 0},
  {(char *)"textureAlign", __pyx_getprop_4cuda_4cuda_12CUdevprop_st_textureAlign, __pyx_setprop_4cuda_4cuda_12CUdevprop_st_textureAlign, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUdevprop_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdevprop_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdevprop_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdevprop_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUdevprop_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUdevprop_st(void_ptr _ptr=0)\n\n    Legacy device properties\n\n    Attributes\n    ----------\n    maxThreadsPerBlock : int\n        Maximum number of threads per block\n    maxThreadsDim : int\n        Maximum size of each dimension of a block\n    maxGridSize : int\n        Maximum size of each dimension of a grid\n    sharedMemPerBlock : int\n        Shared memory available per block in bytes\n    totalConstantMemory : int\n        Constant memory available on device in bytes\n    SIMDWidth : int\n        Warp size in threads\n    memPitch : int\n        Maximum pitch in bytes allowed by memory copies\n    regsPerBlock : int\n        32-bit registers available per block\n    clockRate : int\n        Clock frequency in kilohertz\n    textureAlign : int\n        Alignment requirement for textures\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUdevprop_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUdevprop_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_12CUdevprop_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdevprop_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)o);
  p->_cbase_ptr = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUaccessPolicyWindow_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *p = (struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_cbase_ptr);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUaccessPolicyWindow_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *p = (struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)o;
  if (p->_cbase_ptr) {
    e = (*v)(((PyObject *)p->_cbase_ptr), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUaccessPolicyWindow_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *p = (struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st *)o;
  tmp = ((PyObject*)p->_cbase_ptr);
  p->_cbase_ptr = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_base_ptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_base_ptr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8base_ptr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_num_bytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_num_bytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9num_bytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitRatio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitRatio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8hitRatio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitProp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitProp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7hitProp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_missProp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_missProp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_8missProp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUaccessPolicyWindow_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_23CUaccessPolicyWindow_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUaccessPolicyWindow_st[] = {
  {(char *)"base_ptr", __pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_base_ptr, __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_base_ptr, (char *)0, 0},
  {(char *)"num_bytes", __pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_num_bytes, __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_num_bytes, (char *)0, 0},
  {(char *)"hitRatio", __pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitRatio, __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitRatio, (char *)0, 0},
  {(char *)"hitProp", __pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitProp, __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_hitProp, (char *)0, 0},
  {(char *)"missProp", __pyx_getprop_4cuda_4cuda_23CUaccessPolicyWindow_st_missProp, __pyx_setprop_4cuda_4cuda_23CUaccessPolicyWindow_st_missProp, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUaccessPolicyWindow_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUaccessPolicyWindow_st(void_ptr _ptr=0)\n\n    Specifies an access policy for a window, a contiguous extent of\n    memory beginning at base_ptr and ending at base_ptr + num_bytes.\n    num_bytes is limited by\n    CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE. Partition into\n    many segments and assign segments such that: sum of \"hit segments\"\n    / window == approx. ratio. sum of \"miss segments\" / window ==\n    approx 1-ratio. Segments and ratio specifications are fitted to the\n    capabilities of the architecture. Accesses in a hit segment apply\n    the hitProp access policy. Accesses in a miss segment apply the\n    missProp access policy.\n\n    Attributes\n    ----------\n    base_ptr : Any\n        Starting address of the access policy window. CUDA driver may align\n        it.\n    num_bytes : size_t\n        Size in bytes of the window policy. CUDA driver may restrict the\n        maximum size and alignment.\n    hitRatio : float\n        hitRatio specifies percentage of lines assigned hitProp, rest are\n        assigned missProp.\n    hitProp : CUaccessProperty\n        CUaccessProperty set for hit.\n    missProp : CUaccessProperty\n        CUaccessProperty set for miss. Must be either NORMAL or STREAMING\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)o);
  p->_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)Py_None); Py_INCREF(Py_None);
  p->_ckernelParams = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_func);
  Py_CLEAR(p->_ckernelParams);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)o;
  if (p->_func) {
    e = (*v)(((PyObject *)p->_func), a); if (e) return e;
  }
  if (p->_ckernelParams) {
    e = (*v)(((PyObject *)p->_ckernelParams), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st *)o;
  tmp = ((PyObject*)p->_func);
  p->_func = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ckernelParams);
  p->_ckernelParams = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_func(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_func(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_4func_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimX(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimX(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimX_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_8gridDimZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimX(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimX(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimX_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9blockDimZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_sharedMemBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_sharedMemBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_14sharedMemBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_kernelParams(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_kernelParams(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12kernelParams_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_extra(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_extra(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_5extra_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st[] = {
  {(char *)"func", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_func, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_func, (char *)0, 0},
  {(char *)"gridDimX", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimX, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimX, (char *)0, 0},
  {(char *)"gridDimY", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimY, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimY, (char *)0, 0},
  {(char *)"gridDimZ", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimZ, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_gridDimZ, (char *)0, 0},
  {(char *)"blockDimX", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimX, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimX, (char *)0, 0},
  {(char *)"blockDimY", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimY, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimY, (char *)0, 0},
  {(char *)"blockDimZ", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimZ, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_blockDimZ, (char *)0, 0},
  {(char *)"sharedMemBytes", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_sharedMemBytes, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_sharedMemBytes, (char *)0, 0},
  {(char *)"kernelParams", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_kernelParams, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_kernelParams, (char *)0, 0},
  {(char *)"extra", __pyx_getprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_extra, __pyx_setprop_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_extra, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_KERNEL_NODE_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_KERNEL_NODE_PARAMS_st(void_ptr _ptr=0)\n\n    GPU kernel node parameters\n\n    Attributes\n    ----------\n    func : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    kernelParams : Any\n        Array of pointers to kernel parameters\n    extra : Any\n        Extra options\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)o);
  p->_dst = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_dst);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)o;
  if (p->_dst) {
    e = (*v)(((PyObject *)p->_dst), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st *)o;
  tmp = ((PyObject*)p->_dst);
  p->_dst = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_dst(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_dst(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3dst_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_pitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_pitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5pitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_value(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5value_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_elementSize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_elementSize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11elementSize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_5width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st[] = {
  {(char *)"dst", __pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_dst, __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_dst, (char *)0, 0},
  {(char *)"pitch", __pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_pitch, __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_pitch, (char *)0, 0},
  {(char *)"value", __pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_value, __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_value, (char *)0, 0},
  {(char *)"elementSize", __pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_elementSize, __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_elementSize, (char *)0, 0},
  {(char *)"width", __pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_width, __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_width, (char *)0, 0},
  {(char *)"height", __pyx_getprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_height, __pyx_setprop_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_height, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMSET_NODE_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_MEMSET_NODE_PARAMS_st(void_ptr _ptr=0)\n\n    Memset node parameters\n\n    Attributes\n    ----------\n    dst : CUdeviceptr\n        Destination device pointer\n    pitch : size_t\n        Pitch of destination device pointer. Unused if height is 1\n    value : unsigned int\n        Value to be set\n    elementSize : unsigned int\n        Size of each element in bytes. Must be 1, 2, or 4.\n    width : size_t\n        Width of the row in elements\n    height : size_t\n        Number of rows\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)o);
  p->_fn = ((struct __pyx_obj_4cuda_4cuda_CUhostFn *)Py_None); Py_INCREF(Py_None);
  p->_cuserData = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_fn);
  Py_CLEAR(p->_cuserData);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)o;
  if (p->_fn) {
    e = (*v)(((PyObject *)p->_fn), a); if (e) return e;
  }
  if (p->_cuserData) {
    e = (*v)(((PyObject *)p->_cuserData), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st *)o;
  tmp = ((PyObject*)p->_fn);
  p->_fn = ((struct __pyx_obj_4cuda_4cuda_CUhostFn *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cuserData);
  p->_cuserData = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_fn(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_fn(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_2fn_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_userData(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_userData(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_8userData_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st[] = {
  {(char *)"fn", __pyx_getprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_fn, __pyx_setprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_fn, (char *)0, 0},
  {(char *)"userData", __pyx_getprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_userData, __pyx_setprop_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_userData, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_HOST_NODE_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_HOST_NODE_PARAMS_st(void_ptr _ptr=0)\n\n    Host node parameters\n\n    Attributes\n    ----------\n    fn : CUhostFn\n        The function to call when the node executes\n    userData : Any\n        Argument to pass to the function\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_union(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)o);
  p->_accessPolicyWindow = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUkernelNodeAttrValue_union(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *p = (struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_accessPolicyWindow);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUkernelNodeAttrValue_union(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *p = (struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)o;
  if (p->_accessPolicyWindow) {
    e = (*v)(((PyObject *)p->_accessPolicyWindow), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUkernelNodeAttrValue_union(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *p = (struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union *)o;
  tmp = ((PyObject*)p->_accessPolicyWindow);
  p->_accessPolicyWindow = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_accessPolicyWindow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_accessPolicyWindow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_18accessPolicyWindow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_cooperative(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_cooperative(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11cooperative_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUkernelNodeAttrValue_union[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_27CUkernelNodeAttrValue_union_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUkernelNodeAttrValue_union[] = {
  {(char *)"accessPolicyWindow", __pyx_getprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_accessPolicyWindow, __pyx_setprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_accessPolicyWindow, (char *)0, 0},
  {(char *)"cooperative", __pyx_getprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_cooperative, __pyx_setprop_4cuda_4cuda_27CUkernelNodeAttrValue_union_cooperative, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUkernelNodeAttrValue_union", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_union), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUkernelNodeAttrValue_union(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    accessPolicyWindow : CUaccessPolicyWindow\n\n    cooperative : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_union(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)o);
  p->_accessPolicyWindow = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUstreamAttrValue_union(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *p = (struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_accessPolicyWindow);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUstreamAttrValue_union(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *p = (struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)o;
  if (p->_accessPolicyWindow) {
    e = (*v)(((PyObject *)p->_accessPolicyWindow), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUstreamAttrValue_union(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *p = (struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union *)o;
  tmp = ((PyObject*)p->_accessPolicyWindow);
  p->_accessPolicyWindow = ((struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUstreamAttrValue_union_accessPolicyWindow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUstreamAttrValue_union_accessPolicyWindow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_18accessPolicyWindow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_23CUstreamAttrValue_union_syncPolicy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_23CUstreamAttrValue_union_syncPolicy(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_10syncPolicy_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUstreamAttrValue_union[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_23CUstreamAttrValue_union_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUstreamAttrValue_union[] = {
  {(char *)"accessPolicyWindow", __pyx_getprop_4cuda_4cuda_23CUstreamAttrValue_union_accessPolicyWindow, __pyx_setprop_4cuda_4cuda_23CUstreamAttrValue_union_accessPolicyWindow, (char *)0, 0},
  {(char *)"syncPolicy", __pyx_getprop_4cuda_4cuda_23CUstreamAttrValue_union_syncPolicy, __pyx_setprop_4cuda_4cuda_23CUstreamAttrValue_union_syncPolicy, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamAttrValue_union = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamAttrValue_union", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_union), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamAttrValue_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUstreamAttrValue_union(void_ptr _ptr=0)\n\n\n    Attributes\n    ----------\n    accessPolicyWindow : CUaccessPolicyWindow\n\n    syncPolicy : CUsynchronizationPolicy\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamAttrValue_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamAttrValue_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUstreamAttrValue_union, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUstreamAttrValue_union, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_union, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinitySmCount_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUexecAffinitySmCount_st_val(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUexecAffinitySmCount_st_val(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3val_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUexecAffinitySmCount_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_24CUexecAffinitySmCount_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUexecAffinitySmCount_st[] = {
  {(char *)"val", __pyx_getprop_4cuda_4cuda_24CUexecAffinitySmCount_st_val, __pyx_setprop_4cuda_4cuda_24CUexecAffinitySmCount_st_val, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexecAffinitySmCount_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinitySmCount_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUexecAffinitySmCount_st(void_ptr _ptr=0)\n\n    Value for CU_EXEC_AFFINITY_TYPE_SM_COUNT\n\n    Attributes\n    ----------\n    val : unsigned int\n        The number of SMs the context is limited to use.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUexecAffinitySmCount_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUexecAffinitySmCount_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)o);
  p->_smCount = ((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *p = (struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_smCount);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *p = (struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)o;
  if (p->_smCount) {
    e = (*v)(((PyObject *)p->_smCount), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *p = (struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)o;
  tmp = ((PyObject*)p->_smCount);
  p->_smCount = ((struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_smCount(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_smCount(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7smCount_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u[] = {
  {(char *)"smCount", __pyx_getprop_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_smCount, __pyx_setprop_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_smCount, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    smCount : CUexecAffinitySmCount\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)o);
  p->_param = ((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinityParam_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *p = (struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_param);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUexecAffinityParam_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *p = (struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)o;
  if (p->_param) {
    e = (*v)(((PyObject *)p->_param), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUexecAffinityParam_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *p = (struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st *)o;
  tmp = ((PyObject*)p->_param);
  p->_param = ((struct __pyx_obj_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUexecAffinityParam_st_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_4type_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUexecAffinityParam_st_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUexecAffinityParam_st_param(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5param_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUexecAffinityParam_st_param(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_5param_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUexecAffinityParam_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_22CUexecAffinityParam_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUexecAffinityParam_st[] = {
  {(char *)"type", __pyx_getprop_4cuda_4cuda_22CUexecAffinityParam_st_type, __pyx_setprop_4cuda_4cuda_22CUexecAffinityParam_st_type, (char *)0, 0},
  {(char *)"param", __pyx_getprop_4cuda_4cuda_22CUexecAffinityParam_st_param, __pyx_setprop_4cuda_4cuda_22CUexecAffinityParam_st_param, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUexecAffinityParam_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexecAffinityParam_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinityParam_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUexecAffinityParam_st(void_ptr _ptr=0)\n\n    Execution Affinity Parameters\n\n    Attributes\n    ----------\n    type : CUexecAffinityType\n\n    param : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUexecAffinityParam_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUexecAffinityParam_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUexecAffinityParam_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUexecAffinityParam_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)o);
  p->_csrcHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  p->_cdstHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY2D_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_csrcHost);
  Py_CLEAR(p->_srcDevice);
  Py_CLEAR(p->_srcArray);
  Py_CLEAR(p->_cdstHost);
  Py_CLEAR(p->_dstDevice);
  Py_CLEAR(p->_dstArray);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY2D_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)o;
  if (p->_csrcHost) {
    e = (*v)(((PyObject *)p->_csrcHost), a); if (e) return e;
  }
  if (p->_srcDevice) {
    e = (*v)(((PyObject *)p->_srcDevice), a); if (e) return e;
  }
  if (p->_srcArray) {
    e = (*v)(((PyObject *)p->_srcArray), a); if (e) return e;
  }
  if (p->_cdstHost) {
    e = (*v)(((PyObject *)p->_cdstHost), a); if (e) return e;
  }
  if (p->_dstDevice) {
    e = (*v)(((PyObject *)p->_dstDevice), a); if (e) return e;
  }
  if (p->_dstArray) {
    e = (*v)(((PyObject *)p->_dstArray), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY2D_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st *)o;
  tmp = ((PyObject*)p->_csrcHost);
  p->_csrcHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcDevice);
  p->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcArray);
  p->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cdstHost);
  p->_cdstHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstDevice);
  p->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstArray);
  p->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcXInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcXInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11srcXInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4srcY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcMemoryType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcMemoryType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13srcMemoryType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcHost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcHost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7srcHost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcDevice(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcDevice(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9srcDevice_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8srcPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstXInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstXInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11dstXInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_4dstY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstMemoryType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstMemoryType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13dstMemoryType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstHost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstHost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7dstHost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstDevice(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstDevice(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9dstDevice_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_8dstPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_WidthInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_WidthInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_12WidthInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_Height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_Height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_6Height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_MEMCPY2D_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY2D_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_MEMCPY2D_st[] = {
  {(char *)"srcXInBytes", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcXInBytes, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcXInBytes, (char *)0, 0},
  {(char *)"srcY", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcY, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcY, (char *)0, 0},
  {(char *)"srcMemoryType", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcMemoryType, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcMemoryType, (char *)0, 0},
  {(char *)"srcHost", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcHost, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcHost, (char *)0, 0},
  {(char *)"srcDevice", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcDevice, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcDevice, (char *)0, 0},
  {(char *)"srcArray", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcArray, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcArray, (char *)0, 0},
  {(char *)"srcPitch", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcPitch, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_srcPitch, (char *)0, 0},
  {(char *)"dstXInBytes", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstXInBytes, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstXInBytes, (char *)0, 0},
  {(char *)"dstY", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstY, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstY, (char *)0, 0},
  {(char *)"dstMemoryType", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstMemoryType, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstMemoryType, (char *)0, 0},
  {(char *)"dstHost", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstHost, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstHost, (char *)0, 0},
  {(char *)"dstDevice", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstDevice, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstDevice, (char *)0, 0},
  {(char *)"dstArray", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstArray, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstArray, (char *)0, 0},
  {(char *)"dstPitch", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstPitch, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_dstPitch, (char *)0, 0},
  {(char *)"WidthInBytes", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_WidthInBytes, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_WidthInBytes, (char *)0, 0},
  {(char *)"Height", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_Height, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY2D_st_Height, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY2D_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_MEMCPY2D_st(void_ptr _ptr=0)\n\n    2D memory copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    WidthInBytes : size_t\n        Width of 2D memory copy in bytes\n    Height : size_t\n        Height of 2D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)o);
  p->_csrcHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  p->_creserved0 = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_cdstHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  p->_creserved1 = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_csrcHost);
  Py_CLEAR(p->_srcDevice);
  Py_CLEAR(p->_srcArray);
  Py_CLEAR(p->_creserved0);
  Py_CLEAR(p->_cdstHost);
  Py_CLEAR(p->_dstDevice);
  Py_CLEAR(p->_dstArray);
  Py_CLEAR(p->_creserved1);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)o;
  if (p->_csrcHost) {
    e = (*v)(((PyObject *)p->_csrcHost), a); if (e) return e;
  }
  if (p->_srcDevice) {
    e = (*v)(((PyObject *)p->_srcDevice), a); if (e) return e;
  }
  if (p->_srcArray) {
    e = (*v)(((PyObject *)p->_srcArray), a); if (e) return e;
  }
  if (p->_creserved0) {
    e = (*v)(((PyObject *)p->_creserved0), a); if (e) return e;
  }
  if (p->_cdstHost) {
    e = (*v)(((PyObject *)p->_cdstHost), a); if (e) return e;
  }
  if (p->_dstDevice) {
    e = (*v)(((PyObject *)p->_dstDevice), a); if (e) return e;
  }
  if (p->_dstArray) {
    e = (*v)(((PyObject *)p->_dstArray), a); if (e) return e;
  }
  if (p->_creserved1) {
    e = (*v)(((PyObject *)p->_creserved1), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st *)o;
  tmp = ((PyObject*)p->_csrcHost);
  p->_csrcHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcDevice);
  p->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcArray);
  p->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_creserved0);
  p->_creserved0 = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cdstHost);
  p->_cdstHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstDevice);
  p->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstArray);
  p->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_creserved1);
  p->_creserved1 = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcXInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcXInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11srcXInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4srcZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcLOD(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcLOD(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6srcLOD_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcMemoryType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcMemoryType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13srcMemoryType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7srcHost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcDevice(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcDevice(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcDevice_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved0(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved0_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8srcPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9srcHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstXInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstXInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11dstXInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_4dstZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstLOD(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstLOD(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6dstLOD_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstMemoryType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstMemoryType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13dstMemoryType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7dstHost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstDevice(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstDevice(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstDevice_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9reserved1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_8dstPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9dstHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_WidthInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_WidthInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_12WidthInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_6Height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Depth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Depth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_5Depth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_MEMCPY3D_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUDA_MEMCPY3D_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_MEMCPY3D_st[] = {
  {(char *)"srcXInBytes", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcXInBytes, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcXInBytes, (char *)0, 0},
  {(char *)"srcY", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcY, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcY, (char *)0, 0},
  {(char *)"srcZ", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcZ, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcZ, (char *)0, 0},
  {(char *)"srcLOD", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcLOD, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcLOD, (char *)0, 0},
  {(char *)"srcMemoryType", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcMemoryType, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcMemoryType, (char *)0, 0},
  {(char *)"srcHost", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHost, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHost, (char *)0, 0},
  {(char *)"srcDevice", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcDevice, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcDevice, (char *)0, 0},
  {(char *)"srcArray", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcArray, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcArray, (char *)0, 0},
  {(char *)"reserved0", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved0, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved0, (char *)0, 0},
  {(char *)"srcPitch", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcPitch, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcPitch, (char *)0, 0},
  {(char *)"srcHeight", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHeight, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_srcHeight, (char *)0, 0},
  {(char *)"dstXInBytes", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstXInBytes, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstXInBytes, (char *)0, 0},
  {(char *)"dstY", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstY, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstY, (char *)0, 0},
  {(char *)"dstZ", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstZ, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstZ, (char *)0, 0},
  {(char *)"dstLOD", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstLOD, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstLOD, (char *)0, 0},
  {(char *)"dstMemoryType", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstMemoryType, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstMemoryType, (char *)0, 0},
  {(char *)"dstHost", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHost, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHost, (char *)0, 0},
  {(char *)"dstDevice", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstDevice, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstDevice, (char *)0, 0},
  {(char *)"dstArray", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstArray, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstArray, (char *)0, 0},
  {(char *)"reserved1", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved1, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_reserved1, (char *)0, 0},
  {(char *)"dstPitch", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstPitch, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstPitch, (char *)0, 0},
  {(char *)"dstHeight", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHeight, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_dstHeight, (char *)0, 0},
  {(char *)"WidthInBytes", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_WidthInBytes, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_WidthInBytes, (char *)0, 0},
  {(char *)"Height", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Height, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Height, (char *)0, 0},
  {(char *)"Depth", __pyx_getprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Depth, __pyx_setprop_4cuda_4cuda_16CUDA_MEMCPY3D_st_Depth, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY3D_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_MEMCPY3D_st(void_ptr _ptr=0)\n\n    3D memory copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcZ : size_t\n        Source Z\n    srcLOD : size_t\n        Source LOD\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    reserved0 : Any\n        Must be NULL\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    srcHeight : size_t\n        Source height (ignored when src is array; may be 0 if Depth==1)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstZ : size_t\n        Destination Z\n    dstLOD : size_t\n        Destination LOD\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    reserved1 : Any\n        Must be NULL\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    dstHeight : size_t\n        Destination height (ignored when dst is array; may be 0 if\n        Depth==1)\n    WidthInBytes : size_t\n        Width of 3D memory copy in bytes\n    Height : size_t\n        Height of 3D memory copy\n    Depth : size_t\n        Depth of 3D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)o);
  p->_csrcHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  p->_srcContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)Py_None); Py_INCREF(Py_None);
  p->_cdstHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  p->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  p->_dstContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_csrcHost);
  Py_CLEAR(p->_srcDevice);
  Py_CLEAR(p->_srcArray);
  Py_CLEAR(p->_srcContext);
  Py_CLEAR(p->_cdstHost);
  Py_CLEAR(p->_dstDevice);
  Py_CLEAR(p->_dstArray);
  Py_CLEAR(p->_dstContext);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)o;
  if (p->_csrcHost) {
    e = (*v)(((PyObject *)p->_csrcHost), a); if (e) return e;
  }
  if (p->_srcDevice) {
    e = (*v)(((PyObject *)p->_srcDevice), a); if (e) return e;
  }
  if (p->_srcArray) {
    e = (*v)(((PyObject *)p->_srcArray), a); if (e) return e;
  }
  if (p->_srcContext) {
    e = (*v)(((PyObject *)p->_srcContext), a); if (e) return e;
  }
  if (p->_cdstHost) {
    e = (*v)(((PyObject *)p->_cdstHost), a); if (e) return e;
  }
  if (p->_dstDevice) {
    e = (*v)(((PyObject *)p->_dstDevice), a); if (e) return e;
  }
  if (p->_dstArray) {
    e = (*v)(((PyObject *)p->_dstArray), a); if (e) return e;
  }
  if (p->_dstContext) {
    e = (*v)(((PyObject *)p->_dstContext), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st *)o;
  tmp = ((PyObject*)p->_csrcHost);
  p->_csrcHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcDevice);
  p->_srcDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcArray);
  p->_srcArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_srcContext);
  p->_srcContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cdstHost);
  p->_cdstHost = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstDevice);
  p->_dstDevice = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstArray);
  p->_dstArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dstContext);
  p->_dstContext = ((struct __pyx_obj_4cuda_4cuda_CUcontext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcXInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcXInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11srcXInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4srcZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcLOD(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcLOD(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6srcLOD_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcMemoryType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcMemoryType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13srcMemoryType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7srcHost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcDevice(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcDevice(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcDevice_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcContext(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcContext(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10srcContext_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8srcPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9srcHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstXInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstXInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11dstXInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_4dstZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstLOD(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstLOD(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6dstLOD_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstMemoryType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstMemoryType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13dstMemoryType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7dstHost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstDevice(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstDevice(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstDevice_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstContext(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstContext(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10dstContext_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstPitch(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstPitch(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_8dstPitch_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9dstHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_WidthInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_WidthInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12WidthInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6Height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Depth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Depth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_5Depth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st[] = {
  {(char *)"srcXInBytes", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcXInBytes, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcXInBytes, (char *)0, 0},
  {(char *)"srcY", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcY, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcY, (char *)0, 0},
  {(char *)"srcZ", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcZ, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcZ, (char *)0, 0},
  {(char *)"srcLOD", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcLOD, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcLOD, (char *)0, 0},
  {(char *)"srcMemoryType", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcMemoryType, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcMemoryType, (char *)0, 0},
  {(char *)"srcHost", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHost, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHost, (char *)0, 0},
  {(char *)"srcDevice", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcDevice, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcDevice, (char *)0, 0},
  {(char *)"srcArray", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcArray, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcArray, (char *)0, 0},
  {(char *)"srcContext", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcContext, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcContext, (char *)0, 0},
  {(char *)"srcPitch", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcPitch, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcPitch, (char *)0, 0},
  {(char *)"srcHeight", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHeight, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_srcHeight, (char *)0, 0},
  {(char *)"dstXInBytes", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstXInBytes, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstXInBytes, (char *)0, 0},
  {(char *)"dstY", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstY, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstY, (char *)0, 0},
  {(char *)"dstZ", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstZ, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstZ, (char *)0, 0},
  {(char *)"dstLOD", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstLOD, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstLOD, (char *)0, 0},
  {(char *)"dstMemoryType", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstMemoryType, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstMemoryType, (char *)0, 0},
  {(char *)"dstHost", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHost, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHost, (char *)0, 0},
  {(char *)"dstDevice", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstDevice, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstDevice, (char *)0, 0},
  {(char *)"dstArray", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstArray, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstArray, (char *)0, 0},
  {(char *)"dstContext", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstContext, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstContext, (char *)0, 0},
  {(char *)"dstPitch", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstPitch, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstPitch, (char *)0, 0},
  {(char *)"dstHeight", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHeight, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_dstHeight, (char *)0, 0},
  {(char *)"WidthInBytes", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_WidthInBytes, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_WidthInBytes, (char *)0, 0},
  {(char *)"Height", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Height, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Height, (char *)0, 0},
  {(char *)"Depth", __pyx_getprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Depth, __pyx_setprop_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_Depth, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY3D_PEER_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_MEMCPY3D_PEER_st(void_ptr _ptr=0)\n\n    3D memory cross-context copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcZ : size_t\n        Source Z\n    srcLOD : size_t\n        Source LOD\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    srcContext : CUcontext\n        Source context (ignored with srcMemoryType is CU_MEMORYTYPE_ARRAY)\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    srcHeight : size_t\n        Source height (ignored when src is array; may be 0 if Depth==1)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstZ : size_t\n        Destination Z\n    dstLOD : size_t\n        Destination LOD\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    dstContext : CUcontext\n        Destination context (ignored with dstMemoryType is\n        CU_MEMORYTYPE_ARRAY)\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    dstHeight : size_t\n        Destination height (ignored when dst is array; may be 0 if\n        Depth==1)\n    WidthInBytes : size_t\n        Width of 3D memory copy in bytes\n    Height : size_t\n        Height of 3D memory copy\n    Depth : size_t\n        Depth of 3D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_5Width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Format(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Format(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6Format_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_NumChannels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_NumChannels(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11NumChannels_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st[] = {
  {(char *)"Width", __pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Width, __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Width, (char *)0, 0},
  {(char *)"Height", __pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Height, __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Height, (char *)0, 0},
  {(char *)"Format", __pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Format, __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_Format, (char *)0, 0},
  {(char *)"NumChannels", __pyx_getprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_NumChannels, __pyx_setprop_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_NumChannels, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY_DESCRIPTOR_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_ARRAY_DESCRIPTOR_st(void_ptr _ptr=0)\n\n    Array descriptor\n\n    Attributes\n    ----------\n    Width : size_t\n        Width of array\n    Height : size_t\n        Height of array\n    Format : CUarray_format\n        Array format\n    NumChannels : unsigned int\n        Channels per array element\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Depth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Depth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Depth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Format(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Format(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6Format_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_NumChannels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_NumChannels(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11NumChannels_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_5Flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st[] = {
  {(char *)"Width", __pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Width, __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Width, (char *)0, 0},
  {(char *)"Height", __pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Height, __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Height, (char *)0, 0},
  {(char *)"Depth", __pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Depth, __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Depth, (char *)0, 0},
  {(char *)"Format", __pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Format, __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Format, (char *)0, 0},
  {(char *)"NumChannels", __pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_NumChannels, __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_NumChannels, (char *)0, 0},
  {(char *)"Flags", __pyx_getprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Flags, __pyx_setprop_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_Flags, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_ARRAY3D_DESCRIPTOR_st(void_ptr _ptr=0)\n\n    3D array descriptor\n\n    Attributes\n    ----------\n    Width : size_t\n        Width of 3D array\n    Height : size_t\n        Height of 3D array\n    Depth : size_t\n        Depth of 3D array\n    Format : CUarray_format\n        Array format\n    NumChannels : unsigned int\n        Channels per array element\n    Flags : unsigned int\n        Flags\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_6height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_depth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_depth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5depth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s[] = {
  {(char *)"width", __pyx_getprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_width, __pyx_setprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_width, (char *)0, 0},
  {(char *)"height", __pyx_getprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_height, __pyx_setprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_height, (char *)0, 0},
  {(char *)"depth", __pyx_getprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_depth, __pyx_setprop_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_depth, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    width : unsigned int\n\n    height : unsigned int\n\n    depth : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)o);
  p->_tileExtent = ((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_tileExtent);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)o;
  if (p->_tileExtent) {
    e = (*v)(((PyObject *)p->_tileExtent), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st *)o;
  tmp = ((PyObject*)p->_tileExtent);
  p->_tileExtent = ((struct __pyx_obj_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10tileExtent_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailFirstLevel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailFirstLevel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_17miptailFirstLevel_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailSize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailSize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11miptailSize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st[] = {
  {(char *)"tileExtent", __pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent, __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent, (char *)0, 0},
  {(char *)"miptailFirstLevel", __pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailFirstLevel, __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailFirstLevel, (char *)0, 0},
  {(char *)"miptailSize", __pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailSize, __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_miptailSize, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_flags, __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_reserved, __pyx_setprop_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_ARRAY_SPARSE_PROPERTIES_st(void_ptr _ptr=0)\n\n    CUDA array sparse properties\n\n    Attributes\n    ----------\n    tileExtent : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s\n\n    miptailFirstLevel : unsigned int\n        First mip level at which the mip tail begins.\n    miptailSize : unsigned long long\n        Total size of the mip tail.\n    flags : unsigned int\n        Flags will either be zero or\n        CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)o);
  p->_hArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_hArray);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)o;
  if (p->_hArray) {
    e = (*v)(((PyObject *)p->_hArray), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)o;
  tmp = ((PyObject*)p->_hArray);
  p->_hArray = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_hArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_hArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_6hArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s[] = {
  {(char *)"hArray", __pyx_getprop_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_hArray, __pyx_setprop_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_hArray, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    hArray : CUarray\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)o);
  p->_hMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_hMipmappedArray);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)o;
  if (p->_hMipmappedArray) {
    e = (*v)(((PyObject *)p->_hMipmappedArray), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)o;
  tmp = ((PyObject*)p->_hMipmappedArray);
  p->_hMipmappedArray = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_hMipmappedArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_hMipmappedArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_15hMipmappedArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s[] = {
  {(char *)"hMipmappedArray", __pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_hMipmappedArray, __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_hMipmappedArray, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    hMipmappedArray : CUmipmappedArray\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)o);
  p->_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_devPtr);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)o;
  if (p->_devPtr) {
    e = (*v)(((PyObject *)p->_devPtr), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)o;
  tmp = ((PyObject*)p->_devPtr);
  p->_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_devPtr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_devPtr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6devPtr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_format(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_format(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_6format_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_numChannels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_numChannels(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11numChannels_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_sizeInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_sizeInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11sizeInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s[] = {
  {(char *)"devPtr", __pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_devPtr, __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_devPtr, (char *)0, 0},
  {(char *)"format", __pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_format, __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_format, (char *)0, 0},
  {(char *)"numChannels", __pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_numChannels, __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_numChannels, (char *)0, 0},
  {(char *)"sizeInBytes", __pyx_getprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_sizeInBytes, __pyx_setprop_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_sizeInBytes, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    devPtr : CUdeviceptr\n\n    format : CUarray_format\n\n    numChannels : unsigned int\n\n    sizeInBytes : size_t\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)o);
  p->_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_devPtr);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)o;
  if (p->_devPtr) {
    e = (*v)(((PyObject *)p->_devPtr), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)o;
  tmp = ((PyObject*)p->_devPtr);
  p->_devPtr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_devPtr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_devPtr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6devPtr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_format(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_format(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6format_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_numChannels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_numChannels(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11numChannels_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_6height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_pitchInBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_pitchInBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_12pitchInBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s[] = {
  {(char *)"devPtr", __pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_devPtr, __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_devPtr, (char *)0, 0},
  {(char *)"format", __pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_format, __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_format, (char *)0, 0},
  {(char *)"numChannels", __pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_numChannels, __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_numChannels, (char *)0, 0},
  {(char *)"width", __pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_width, __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_width, (char *)0, 0},
  {(char *)"height", __pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_height, __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_height, (char *)0, 0},
  {(char *)"pitchInBytes", __pyx_getprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_pitchInBytes, __pyx_setprop_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_pitchInBytes, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    devPtr : CUdeviceptr\n\n    format : CUarray_format\n\n    numChannels : unsigned int\n\n    width : size_t\n\n    height : size_t\n\n    pitchInBytes : size_t\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s[] = {
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_reserved, __pyx_setprop_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    reserved : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)o);
  p->_array = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)Py_None); Py_INCREF(Py_None);
  p->_mipmap = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)Py_None); Py_INCREF(Py_None);
  p->_linear = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)Py_None); Py_INCREF(Py_None);
  p->_pitch2D = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)Py_None); Py_INCREF(Py_None);
  p->_reserved = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_array);
  Py_CLEAR(p->_mipmap);
  Py_CLEAR(p->_linear);
  Py_CLEAR(p->_pitch2D);
  Py_CLEAR(p->_reserved);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)o;
  if (p->_array) {
    e = (*v)(((PyObject *)p->_array), a); if (e) return e;
  }
  if (p->_mipmap) {
    e = (*v)(((PyObject *)p->_mipmap), a); if (e) return e;
  }
  if (p->_linear) {
    e = (*v)(((PyObject *)p->_linear), a); if (e) return e;
  }
  if (p->_pitch2D) {
    e = (*v)(((PyObject *)p->_pitch2D), a); if (e) return e;
  }
  if (p->_reserved) {
    e = (*v)(((PyObject *)p->_reserved), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)o;
  tmp = ((PyObject*)p->_array);
  p->_array = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mipmap);
  p->_mipmap = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_linear);
  p->_linear = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pitch2D);
  p->_pitch2D = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_reserved);
  p->_reserved = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_array(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_array(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5array_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_mipmap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_mipmap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6mipmap_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_linear(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_linear(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_6linear_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_pitch2D(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_pitch2D(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7pitch2D_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u[] = {
  {(char *)"array", __pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_array, __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_array, (char *)0, 0},
  {(char *)"mipmap", __pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_mipmap, __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_mipmap, (char *)0, 0},
  {(char *)"linear", __pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_linear, __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_linear, (char *)0, 0},
  {(char *)"pitch2D", __pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_pitch2D, __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_pitch2D, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_reserved, __pyx_setprop_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    array : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s\n\n    mipmap : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s\n\n    linear : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s\n\n    pitch2D : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s\n\n    reserved : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)o);
  p->_res = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_DESC_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_res);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_RESOURCE_DESC_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)o;
  if (p->_res) {
    e = (*v)(((PyObject *)p->_res), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_RESOURCE_DESC_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st *)o;
  tmp = ((PyObject*)p->_res);
  p->_res = ((struct __pyx_obj_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_resType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_resType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7resType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_res(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_res(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3res_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_RESOURCE_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_RESOURCE_DESC_st[] = {
  {(char *)"resType", __pyx_getprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_resType, __pyx_setprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_resType, (char *)0, 0},
  {(char *)"res", __pyx_getprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_res, __pyx_setprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_res, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_flags, __pyx_setprop_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_flags, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_RESOURCE_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_RESOURCE_DESC_st(void_ptr _ptr=0)\n\n    CUDA Resource descriptor\n\n    Attributes\n    ----------\n    resType : CUresourcetype\n        Resource type\n    res : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u\n\n    flags : unsigned int\n        Flags (must be zero)\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_TEXTURE_DESC_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_addressMode(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_addressMode(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11addressMode_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_filterMode(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_filterMode(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10filterMode_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxAnisotropy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxAnisotropy(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13maxAnisotropy_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapFilterMode(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapFilterMode(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_16mipmapFilterMode_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapLevelBias(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapLevelBias(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_15mipmapLevelBias_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_minMipmapLevelClamp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_minMipmapLevelClamp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19minMipmapLevelClamp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxMipmapLevelClamp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxMipmapLevelClamp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_19maxMipmapLevelClamp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_borderColor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_borderColor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11borderColor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_TEXTURE_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_TEXTURE_DESC_st[] = {
  {(char *)"addressMode", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_addressMode, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_addressMode, (char *)0, 0},
  {(char *)"filterMode", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_filterMode, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_filterMode, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_flags, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_flags, (char *)0, 0},
  {(char *)"maxAnisotropy", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxAnisotropy, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxAnisotropy, (char *)0, 0},
  {(char *)"mipmapFilterMode", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapFilterMode, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapFilterMode, (char *)0, 0},
  {(char *)"mipmapLevelBias", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapLevelBias, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_mipmapLevelBias, (char *)0, 0},
  {(char *)"minMipmapLevelClamp", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_minMipmapLevelClamp, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_minMipmapLevelClamp, (char *)0, 0},
  {(char *)"maxMipmapLevelClamp", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxMipmapLevelClamp, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_maxMipmapLevelClamp, (char *)0, 0},
  {(char *)"borderColor", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_borderColor, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_borderColor, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_reserved, __pyx_setprop_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_TEXTURE_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_TEXTURE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_TEXTURE_DESC_st(void_ptr _ptr=0)\n\n    Texture descriptor\n\n    Attributes\n    ----------\n    addressMode : List[CUaddress_mode]\n        Address modes\n    filterMode : CUfilter_mode\n        Filter mode\n    flags : unsigned int\n        Flags\n    maxAnisotropy : unsigned int\n        Maximum anisotropy ratio\n    mipmapFilterMode : CUfilter_mode\n        Mipmap filter mode\n    mipmapLevelBias : float\n        Mipmap level bias\n    minMipmapLevelClamp : float\n        Mipmap minimum level clamp\n    maxMipmapLevelClamp : float\n        Mipmap maximum level clamp\n    borderColor : float\n        Border Color\n    reserved : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_TEXTURE_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_TEXTURE_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_format(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_format(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6format_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_depth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_depth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_5depth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstMipmapLevel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstMipmapLevel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_16firstMipmapLevel_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastMipmapLevel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastMipmapLevel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_15lastMipmapLevel_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstLayer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstLayer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10firstLayer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastLayer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastLayer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9lastLayer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st[] = {
  {(char *)"format", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_format, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_format, (char *)0, 0},
  {(char *)"width", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_width, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_width, (char *)0, 0},
  {(char *)"height", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_height, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_height, (char *)0, 0},
  {(char *)"depth", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_depth, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_depth, (char *)0, 0},
  {(char *)"firstMipmapLevel", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstMipmapLevel, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstMipmapLevel, (char *)0, 0},
  {(char *)"lastMipmapLevel", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastMipmapLevel, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastMipmapLevel, (char *)0, 0},
  {(char *)"firstLayer", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstLayer, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_firstLayer, (char *)0, 0},
  {(char *)"lastLayer", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastLayer, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_lastLayer, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_reserved, __pyx_setprop_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_RESOURCE_VIEW_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_RESOURCE_VIEW_DESC_st(void_ptr _ptr=0)\n\n    Resource view descriptor\n\n    Attributes\n    ----------\n    format : CUresourceViewFormat\n        Resource view format\n    width : size_t\n        Width of the resource view\n    height : size_t\n        Height of the resource view\n    depth : size_t\n        Depth of the resource view\n    firstMipmapLevel : unsigned int\n        First defined mipmap level\n    lastMipmapLevel : unsigned int\n        Last defined mipmap level\n    firstLayer : unsigned int\n        First layer index\n    lastLayer : unsigned int\n        Last layer index\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_p2pToken(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_p2pToken(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_8p2pToken_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_vaSpaceToken(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_vaSpaceToken(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12vaSpaceToken_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st[] = {
  {(char *)"p2pToken", __pyx_getprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_p2pToken, __pyx_setprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_p2pToken, (char *)0, 0},
  {(char *)"vaSpaceToken", __pyx_getprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_vaSpaceToken, __pyx_setprop_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_vaSpaceToken, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st(void_ptr _ptr=0)\n\n    GPU Direct v3 tokens\n\n    Attributes\n    ----------\n    p2pToken : unsigned long long\n\n    vaSpaceToken : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)o);
  p->_function = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)Py_None); Py_INCREF(Py_None);
  p->_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)Py_None); Py_INCREF(Py_None);
  p->_ckernelParams = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_function);
  Py_CLEAR(p->_hStream);
  Py_CLEAR(p->_ckernelParams);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)o;
  if (p->_function) {
    e = (*v)(((PyObject *)p->_function), a); if (e) return e;
  }
  if (p->_hStream) {
    e = (*v)(((PyObject *)p->_hStream), a); if (e) return e;
  }
  if (p->_ckernelParams) {
    e = (*v)(((PyObject *)p->_ckernelParams), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st *)o;
  tmp = ((PyObject*)p->_function);
  p->_function = ((struct __pyx_obj_4cuda_4cuda_CUfunction *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_hStream);
  p->_hStream = ((struct __pyx_obj_4cuda_4cuda_CUstream *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ckernelParams);
  p->_ckernelParams = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_function(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_function(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8function_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimX(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimX(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimX_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_8gridDimZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimX(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimX(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimX_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9blockDimZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_sharedMemBytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_sharedMemBytes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_14sharedMemBytes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_hStream(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_hStream(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7hStream_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_kernelParams(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_kernelParams(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12kernelParams_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st[] = {
  {(char *)"function", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_function, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_function, (char *)0, 0},
  {(char *)"gridDimX", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimX, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimX, (char *)0, 0},
  {(char *)"gridDimY", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimY, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimY, (char *)0, 0},
  {(char *)"gridDimZ", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimZ, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_gridDimZ, (char *)0, 0},
  {(char *)"blockDimX", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimX, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimX, (char *)0, 0},
  {(char *)"blockDimY", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimY, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimY, (char *)0, 0},
  {(char *)"blockDimZ", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimZ, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_blockDimZ, (char *)0, 0},
  {(char *)"sharedMemBytes", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_sharedMemBytes, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_sharedMemBytes, (char *)0, 0},
  {(char *)"hStream", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_hStream, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_hStream, (char *)0, 0},
  {(char *)"kernelParams", __pyx_getprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_kernelParams, __pyx_setprop_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_kernelParams, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_LAUNCH_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_LAUNCH_PARAMS_st(void_ptr _ptr=0)\n\n    Kernel launch parameters\n\n    Attributes\n    ----------\n    function : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    hStream : CUstream\n        Stream identifier\n    kernelParams : Any\n        Array of pointers to kernel parameters\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)o);
  p->_chandle = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_cname = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_chandle);
  Py_CLEAR(p->_cname);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)o;
  if (p->_chandle) {
    e = (*v)(((PyObject *)p->_chandle), a); if (e) return e;
  }
  if (p->_cname) {
    e = (*v)(((PyObject *)p->_cname), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)o;
  tmp = ((PyObject*)p->_chandle);
  p->_chandle = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cname);
  p->_cname = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_handle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_handle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_6handle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4name_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s[] = {
  {(char *)"handle", __pyx_getprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_handle, __pyx_setprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_handle, (char *)0, 0},
  {(char *)"name", __pyx_getprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_name, __pyx_setprop_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_name, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    handle : void\n\n    name : void\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)o);
  p->_win32 = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)Py_None); Py_INCREF(Py_None);
  p->_cnvSciBufObject = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_win32);
  Py_CLEAR(p->_cnvSciBufObject);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)o;
  if (p->_win32) {
    e = (*v)(((PyObject *)p->_win32), a); if (e) return e;
  }
  if (p->_cnvSciBufObject) {
    e = (*v)(((PyObject *)p->_cnvSciBufObject), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)o;
  tmp = ((PyObject*)p->_win32);
  p->_win32 = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cnvSciBufObject);
  p->_cnvSciBufObject = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_fd(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_fd(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_2fd_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_win32(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_win32(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5win32_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_nvSciBufObject(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_nvSciBufObject(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_14nvSciBufObject_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u[] = {
  {(char *)"fd", __pyx_getprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_fd, __pyx_setprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_fd, (char *)0, 0},
  {(char *)"win32", __pyx_getprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_win32, __pyx_setprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_win32, (char *)0, 0},
  {(char *)"nvSciBufObject", __pyx_getprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_nvSciBufObject, __pyx_setprop_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_nvSciBufObject, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    fd : int\n\n    win32 : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s\n\n    nvSciBufObject : void\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)o);
  p->_handle = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_handle);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)o;
  if (p->_handle) {
    e = (*v)(((PyObject *)p->_handle), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st *)o;
  tmp = ((PyObject*)p->_handle);
  p->_handle = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6handle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_size(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_4size_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st[] = {
  {(char *)"type", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_type, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_type, (char *)0, 0},
  {(char *)"handle", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle, (char *)0, 0},
  {(char *)"size", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_size, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_size, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_flags, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_reserved, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(void_ptr _ptr=0)\n\n    External memory handle descriptor\n\n    Attributes\n    ----------\n    type : CUexternalMemoryHandleType\n        Type of the handle\n    handle : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u\n\n    size : unsigned long long\n        Size of the memory allocation\n    flags : unsigned int\n        Flags must either be zero or CUDA_EXTERNAL_MEMORY_DEDICATED\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_offset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_offset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6offset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_size(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_4size_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st[] = {
  {(char *)"offset", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_offset, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_offset, (char *)0, 0},
  {(char *)"size", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_size, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_size, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_flags, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_reserved, __pyx_setprop_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st(void_ptr _ptr=0)\n\n    External memory buffer descriptor\n\n    Attributes\n    ----------\n    offset : unsigned long long\n        Offset into the memory object where the buffer's base is\n    size : unsigned long long\n        Size of the buffer\n    flags : unsigned int\n        Flags reserved for future use. Must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)o);
  p->_arrayDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_arrayDesc);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)o;
  if (p->_arrayDesc) {
    e = (*v)(((PyObject *)p->_arrayDesc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st *)o;
  tmp = ((PyObject*)p->_arrayDesc);
  p->_arrayDesc = ((struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_offset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_offset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6offset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_arrayDesc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_arrayDesc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9arrayDesc_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_numLevels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_numLevels(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9numLevels_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st[] = {
  {(char *)"offset", __pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_offset, __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_offset, (char *)0, 0},
  {(char *)"arrayDesc", __pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_arrayDesc, __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_arrayDesc, (char *)0, 0},
  {(char *)"numLevels", __pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_numLevels, __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_numLevels, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_reserved, __pyx_setprop_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(void_ptr _ptr=0)\n\n    External memory mipmap descriptor\n\n    Attributes\n    ----------\n    offset : unsigned long long\n        Offset into the memory object where the base level of the mipmap\n        chain is.\n    arrayDesc : CUDA_ARRAY3D_DESCRIPTOR\n        Format, dimension and type of base level of the mipmap chain\n    numLevels : unsigned int\n        Total number of levels in the mipmap chain\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)o);
  p->_chandle = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_cname = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_chandle);
  Py_CLEAR(p->_cname);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)o;
  if (p->_chandle) {
    e = (*v)(((PyObject *)p->_chandle), a); if (e) return e;
  }
  if (p->_cname) {
    e = (*v)(((PyObject *)p->_cname), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)o;
  tmp = ((PyObject*)p->_chandle);
  p->_chandle = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cname);
  p->_cname = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_handle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_handle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_6handle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4name_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s[] = {
  {(char *)"handle", __pyx_getprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_handle, __pyx_setprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_handle, (char *)0, 0},
  {(char *)"name", __pyx_getprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_name, __pyx_setprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_name, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    handle : void\n\n    name : void\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)o);
  p->_win32 = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)Py_None); Py_INCREF(Py_None);
  p->_cnvSciSyncObj = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_win32);
  Py_CLEAR(p->_cnvSciSyncObj);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)o;
  if (p->_win32) {
    e = (*v)(((PyObject *)p->_win32), a); if (e) return e;
  }
  if (p->_cnvSciSyncObj) {
    e = (*v)(((PyObject *)p->_cnvSciSyncObj), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)o;
  tmp = ((PyObject*)p->_win32);
  p->_win32 = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cnvSciSyncObj);
  p->_cnvSciSyncObj = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_fd(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_fd(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_2fd_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_win32(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_win32(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5win32_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_nvSciSyncObj(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_nvSciSyncObj(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_12nvSciSyncObj_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u[] = {
  {(char *)"fd", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_fd, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_fd, (char *)0, 0},
  {(char *)"win32", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_win32, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_win32, (char *)0, 0},
  {(char *)"nvSciSyncObj", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_nvSciSyncObj, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_nvSciSyncObj, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    fd : int\n\n    win32 : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s\n\n    nvSciSyncObj : void\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)o);
  p->_handle = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_handle);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)o;
  if (p->_handle) {
    e = (*v)(((PyObject *)p->_handle), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st *)o;
  tmp = ((PyObject*)p->_handle);
  p->_handle = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6handle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st[] = {
  {(char *)"type", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_type, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_type, (char *)0, 0},
  {(char *)"handle", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_flags, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_reserved, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(void_ptr _ptr=0)\n\n    External semaphore handle descriptor\n\n    Attributes\n    ----------\n    type : CUexternalSemaphoreHandleType\n        Type of the handle\n    handle : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u\n\n    flags : unsigned int\n        Flags reserved for the future. Must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_value(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5value_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s[] = {
  {(char *)"value", __pyx_getprop_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_value, __pyx_setprop_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_value, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    value : unsigned long long\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)o);
  p->_cfence = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_cfence);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)o;
  if (p->_cfence) {
    e = (*v)(((PyObject *)p->_cfence), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)o;
  tmp = ((PyObject*)p->_cfence);
  p->_cfence = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_fence(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_fence(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5fence_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u[] = {
  {(char *)"fence", __pyx_getprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_fence, __pyx_setprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_fence, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_reserved, __pyx_setprop_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    fence : void\n\n    reserved : unsigned long long\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_key(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3key_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s[] = {
  {(char *)"key", __pyx_getprop_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_key, __pyx_setprop_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_key, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    key : unsigned long long\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)o);
  p->_fence = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)Py_None); Py_INCREF(Py_None);
  p->_nvSciSync = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)Py_None); Py_INCREF(Py_None);
  p->_keyedMutex = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_fence);
  Py_CLEAR(p->_nvSciSync);
  Py_CLEAR(p->_keyedMutex);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)o;
  if (p->_fence) {
    e = (*v)(((PyObject *)p->_fence), a); if (e) return e;
  }
  if (p->_nvSciSync) {
    e = (*v)(((PyObject *)p->_nvSciSync), a); if (e) return e;
  }
  if (p->_keyedMutex) {
    e = (*v)(((PyObject *)p->_keyedMutex), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)o;
  tmp = ((PyObject*)p->_fence);
  p->_fence = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_nvSciSync);
  p->_nvSciSync = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_keyedMutex);
  p->_keyedMutex = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_fence(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_fence(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5fence_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_nvSciSync(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_nvSciSync(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9nvSciSync_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_keyedMutex(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_keyedMutex(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10keyedMutex_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s[] = {
  {(char *)"fence", __pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_fence, __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_fence, (char *)0, 0},
  {(char *)"nvSciSync", __pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_nvSciSync, __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_nvSciSync, (char *)0, 0},
  {(char *)"keyedMutex", __pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_keyedMutex, __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_keyedMutex, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_reserved, __pyx_setprop_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    fence : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s\n\n    nvSciSync : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u\n\n    keyedMutex : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s\n\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)o);
  p->_params = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_params);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)o;
  if (p->_params) {
    e = (*v)(((PyObject *)p->_params), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st *)o;
  tmp = ((PyObject*)p->_params);
  p->_params = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6params_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st[] = {
  {(char *)"params", __pyx_getprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params, __pyx_setprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_flags, __pyx_setprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_reserved, __pyx_setprop_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(void_ptr _ptr=0)\n\n    External semaphore signal parameters\n\n    Attributes\n    ----------\n    params : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s\n\n    flags : unsigned int\n        Only when CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS is used to signal a\n        CUexternalSemaphore of type\n        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, the valid flag is\n        CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC which\n        indicates that while signaling the CUexternalSemaphore, no memory\n        synchronization operations should be performed for any external\n        memory object imported as CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF.\n        For all other types of CUexternalSemaphore, flags must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_value(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5value_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s[] = {
  {(char *)"value", __pyx_getprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_value, __pyx_setprop_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_value, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    value : unsigned long long\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)o);
  p->_cfence = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_cfence);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)o;
  if (p->_cfence) {
    e = (*v)(((PyObject *)p->_cfence), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)o;
  tmp = ((PyObject*)p->_cfence);
  p->_cfence = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_fence(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_fence(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5fence_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u[] = {
  {(char *)"fence", __pyx_getprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_fence, __pyx_setprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_fence, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_reserved, __pyx_setprop_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    fence : void\n\n    reserved : unsigned long long\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_key(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3key_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_timeoutMs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_timeoutMs(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9timeoutMs_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s[] = {
  {(char *)"key", __pyx_getprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_key, __pyx_setprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_key, (char *)0, 0},
  {(char *)"timeoutMs", __pyx_getprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_timeoutMs, __pyx_setprop_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_timeoutMs, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    key : unsigned long long\n\n    timeoutMs : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)o);
  p->_fence = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)Py_None); Py_INCREF(Py_None);
  p->_nvSciSync = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)Py_None); Py_INCREF(Py_None);
  p->_keyedMutex = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_fence);
  Py_CLEAR(p->_nvSciSync);
  Py_CLEAR(p->_keyedMutex);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)o;
  if (p->_fence) {
    e = (*v)(((PyObject *)p->_fence), a); if (e) return e;
  }
  if (p->_nvSciSync) {
    e = (*v)(((PyObject *)p->_nvSciSync), a); if (e) return e;
  }
  if (p->_keyedMutex) {
    e = (*v)(((PyObject *)p->_keyedMutex), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *p = (struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)o;
  tmp = ((PyObject*)p->_fence);
  p->_fence = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_nvSciSync);
  p->_nvSciSync = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_keyedMutex);
  p->_keyedMutex = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_fence(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_fence(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5fence_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_nvSciSync(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_nvSciSync(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9nvSciSync_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_keyedMutex(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_keyedMutex(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10keyedMutex_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s[] = {
  {(char *)"fence", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_fence, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_fence, (char *)0, 0},
  {(char *)"nvSciSync", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_nvSciSync, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_nvSciSync, (char *)0, 0},
  {(char *)"keyedMutex", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_keyedMutex, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_keyedMutex, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_reserved, __pyx_setprop_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    fence : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s\n\n    nvSciSync : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u\n\n    keyedMutex : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s\n\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)o);
  p->_params = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_params);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)o;
  if (p->_params) {
    e = (*v)(((PyObject *)p->_params), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st *)o;
  tmp = ((PyObject*)p->_params);
  p->_params = ((struct __pyx_obj_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6params_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st[] = {
  {(char *)"params", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_flags, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_reserved, __pyx_setprop_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(void_ptr _ptr=0)\n\n    External semaphore wait parameters\n\n    Attributes\n    ----------\n    params : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s\n\n    flags : unsigned int\n        Only when CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS is used to wait on a\n        CUexternalSemaphore of type\n        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, the valid flag is\n        CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC which indicates\n        that while waiting for the CUexternalSemaphore, no memory\n        synchronization operations should be performed for any external\n        memory object imported as CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF.\n        For all other types of CUexternalSemaphore, flags must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_extSemArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_extSemArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11extSemArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_paramsArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_paramsArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11paramsArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_numExtSems(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_numExtSems(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10numExtSems_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st[] = {
  {(char *)"extSemArray", __pyx_getprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_extSemArray, __pyx_setprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_extSemArray, (char *)0, 0},
  {(char *)"paramsArray", __pyx_getprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_paramsArray, __pyx_setprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_paramsArray, (char *)0, 0},
  {(char *)"numExtSems", __pyx_getprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_numExtSems, __pyx_setprop_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_numExtSems, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st(void_ptr _ptr=0)\n\n    Semaphore signal node parameters\n\n    Attributes\n    ----------\n    extSemArray : CUexternalSemaphore\n        Array of external semaphore handles.\n    paramsArray : CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS\n        Array of external semaphore signal parameters.\n    numExtSems : unsigned int\n        Number of handles and parameters supplied in extSemArray and\n        paramsArray.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_extSemArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_extSemArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11extSemArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_paramsArray(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_paramsArray(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11paramsArray_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_numExtSems(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_numExtSems(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10numExtSems_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st[] = {
  {(char *)"extSemArray", __pyx_getprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_extSemArray, __pyx_setprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_extSemArray, (char *)0, 0},
  {(char *)"paramsArray", __pyx_getprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_paramsArray, __pyx_setprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_paramsArray, (char *)0, 0},
  {(char *)"numExtSems", __pyx_getprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_numExtSems, __pyx_setprop_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_numExtSems, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUDA_EXT_SEM_WAIT_NODE_PARAMS_st(void_ptr _ptr=0)\n\n    Semaphore wait node parameters\n\n    Attributes\n    ----------\n    extSemArray : CUexternalSemaphore\n        Array of external semaphore handles.\n    paramsArray : CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS\n        Array of external semaphore wait parameters.\n    numExtSems : unsigned int\n        Number of handles and parameters supplied in extSemArray and\n        paramsArray.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)o);
  p->_mipmap = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)Py_None); Py_INCREF(Py_None);
  p->_array = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_mipmap);
  Py_CLEAR(p->_array);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)o;
  if (p->_mipmap) {
    e = (*v)(((PyObject *)p->_mipmap), a); if (e) return e;
  }
  if (p->_array) {
    e = (*v)(((PyObject *)p->_array), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)o;
  tmp = ((PyObject*)p->_mipmap);
  p->_mipmap = ((struct __pyx_obj_4cuda_4cuda_CUmipmappedArray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_array);
  p->_array = ((struct __pyx_obj_4cuda_4cuda_CUarray *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_mipmap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_mipmap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_6mipmap_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_array(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_array(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5array_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u[] = {
  {(char *)"mipmap", __pyx_getprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_mipmap, __pyx_setprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_mipmap, (char *)0, 0},
  {(char *)"array", __pyx_getprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_array, __pyx_setprop_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_array, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    mipmap : CUmipmappedArray\n\n    array : CUarray\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_level(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_level(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5level_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_layer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_layer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5layer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetX(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetX(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetX_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetY(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetY(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetY_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetZ(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetZ(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7offsetZ_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentWidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentWidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentWidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_12extentHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentDepth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentDepth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11extentDepth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s[] = {
  {(char *)"level", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_level, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_level, (char *)0, 0},
  {(char *)"layer", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_layer, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_layer, (char *)0, 0},
  {(char *)"offsetX", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetX, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetX, (char *)0, 0},
  {(char *)"offsetY", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetY, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetY, (char *)0, 0},
  {(char *)"offsetZ", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetZ, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_offsetZ, (char *)0, 0},
  {(char *)"extentWidth", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentWidth, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentWidth, (char *)0, 0},
  {(char *)"extentHeight", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentHeight, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentHeight, (char *)0, 0},
  {(char *)"extentDepth", __pyx_getprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentDepth, __pyx_setprop_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_extentDepth, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    level : unsigned int\n\n    layer : unsigned int\n\n    offsetX : unsigned int\n\n    offsetY : unsigned int\n\n    offsetZ : unsigned int\n\n    extentWidth : unsigned int\n\n    extentHeight : unsigned int\n\n    extentDepth : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_layer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_layer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5layer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_offset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_offset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_6offset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_size(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4size_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s[] = {
  {(char *)"layer", __pyx_getprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_layer, __pyx_setprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_layer, (char *)0, 0},
  {(char *)"offset", __pyx_getprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_offset, __pyx_setprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_offset, (char *)0, 0},
  {(char *)"size", __pyx_getprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_size, __pyx_setprop_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_size, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    layer : unsigned int\n\n    offset : unsigned long long\n\n    size : unsigned long long\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)o);
  p->_sparseLevel = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)Py_None); Py_INCREF(Py_None);
  p->_miptail = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_sparseLevel);
  Py_CLEAR(p->_miptail);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)o;
  if (p->_sparseLevel) {
    e = (*v)(((PyObject *)p->_sparseLevel), a); if (e) return e;
  }
  if (p->_miptail) {
    e = (*v)(((PyObject *)p->_miptail), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)o;
  tmp = ((PyObject*)p->_sparseLevel);
  p->_sparseLevel = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_miptail);
  p->_miptail = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_sparseLevel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_sparseLevel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11sparseLevel_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_miptail(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_miptail(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7miptail_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u[] = {
  {(char *)"sparseLevel", __pyx_getprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_sparseLevel, __pyx_setprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_sparseLevel, (char *)0, 0},
  {(char *)"miptail", __pyx_getprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_miptail, __pyx_setprop_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_miptail, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    sparseLevel : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s\n\n    miptail : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)o);
  p->_memHandle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_memHandle);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)o;
  if (p->_memHandle) {
    e = (*v)(((PyObject *)p->_memHandle), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *p = (struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)o;
  tmp = ((PyObject*)p->_memHandle);
  p->_memHandle = ((struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_memHandle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_memHandle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9memHandle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u[] = {
  {(char *)"memHandle", __pyx_getprop_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_memHandle, __pyx_setprop_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_memHandle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    memHandle : CUmemGenericAllocationHandle\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)o);
  p->_resource = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)Py_None); Py_INCREF(Py_None);
  p->_subresource = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)Py_None); Py_INCREF(Py_None);
  p->_memHandle = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUarrayMapInfo_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *p = (struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_resource);
  Py_CLEAR(p->_subresource);
  Py_CLEAR(p->_memHandle);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUarrayMapInfo_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *p = (struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)o;
  if (p->_resource) {
    e = (*v)(((PyObject *)p->_resource), a); if (e) return e;
  }
  if (p->_subresource) {
    e = (*v)(((PyObject *)p->_subresource), a); if (e) return e;
  }
  if (p->_memHandle) {
    e = (*v)(((PyObject *)p->_memHandle), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUarrayMapInfo_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *p = (struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st *)o;
  tmp = ((PyObject*)p->_resource);
  p->_resource = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_subresource);
  p->_subresource = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_memHandle);
  p->_memHandle = ((struct __pyx_obj_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_resourceType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_resourceType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_12resourceType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_resource(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8resource_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_resource(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8resource_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_subresourceType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_subresourceType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_15subresourceType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_subresource(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_subresource(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11subresource_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_memOperationType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_memOperationType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_16memOperationType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandleType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandleType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13memHandleType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9memHandle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_offset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_6offset_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_offset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_6offset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_deviceBitMask(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_deviceBitMask(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13deviceBitMask_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUarrayMapInfo_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_17CUarrayMapInfo_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUarrayMapInfo_st[] = {
  {(char *)"resourceType", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_resourceType, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_resourceType, (char *)0, 0},
  {(char *)"resource", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_resource, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_resource, (char *)0, 0},
  {(char *)"subresourceType", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_subresourceType, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_subresourceType, (char *)0, 0},
  {(char *)"subresource", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_subresource, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_subresource, (char *)0, 0},
  {(char *)"memOperationType", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_memOperationType, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_memOperationType, (char *)0, 0},
  {(char *)"memHandleType", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandleType, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandleType, (char *)0, 0},
  {(char *)"memHandle", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandle, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_memHandle, (char *)0, 0},
  {(char *)"offset", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_offset, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_offset, (char *)0, 0},
  {(char *)"deviceBitMask", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_deviceBitMask, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_deviceBitMask, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_flags, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_flags, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_17CUarrayMapInfo_st_reserved, __pyx_setprop_4cuda_4cuda_17CUarrayMapInfo_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUarrayMapInfo_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUarrayMapInfo_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUarrayMapInfo_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUarrayMapInfo_st(void_ptr _ptr=0)\n\n    Specifies the CUDA array or CUDA mipmapped array memory mapping\n    information\n\n    Attributes\n    ----------\n    resourceType : CUresourcetype\n        Resource type\n    resource : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u\n\n    subresourceType : CUarraySparseSubresourceType\n        Sparse subresource type\n    subresource : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u\n\n    memOperationType : CUmemOperationType\n        Memory operation type\n    memHandleType : CUmemHandleType\n        Memory handle type\n    memHandle : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u\n\n    offset : unsigned long long\n        Offset within mip tail Offset within the memory\n    deviceBitMask : unsigned int\n        Device ordinal bit mask\n    flags : unsigned int\n        flags for future use, must be zero now.\n    reserved : unsigned int\n        Reserved for future use, must be zero now.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUarrayMapInfo_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUarrayMapInfo_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUarrayMapInfo_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUarrayMapInfo_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemLocation_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_16CUmemLocation_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemLocation_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_16CUmemLocation_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUmemLocation_st_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUmemLocation_st_4type_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUmemLocation_st_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUmemLocation_st_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_16CUmemLocation_st_id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_16CUmemLocation_st_2id_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_16CUmemLocation_st_id(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_16CUmemLocation_st_2id_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemLocation_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmemLocation_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmemLocation_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmemLocation_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_16CUmemLocation_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_16CUmemLocation_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_16CUmemLocation_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUmemLocation_st[] = {
  {(char *)"type", __pyx_getprop_4cuda_4cuda_16CUmemLocation_st_type, __pyx_setprop_4cuda_4cuda_16CUmemLocation_st_type, (char *)0, 0},
  {(char *)"id", __pyx_getprop_4cuda_4cuda_16CUmemLocation_st_id, __pyx_setprop_4cuda_4cuda_16CUmemLocation_st_id, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemLocation_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemLocation_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemLocation_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemLocation_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_16CUmemLocation_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUmemLocation_st(void_ptr _ptr=0)\n\n    Specifies a memory location.\n\n    Attributes\n    ----------\n    type : CUmemLocationType\n        Specifies the location type, which modifies the meaning of id.\n    id : int\n        identifier for a given this location's CUmemLocationType.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemLocation_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUmemLocation_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_16CUmemLocation_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemLocation_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_compressionType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_compressionType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_15compressionType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_gpuDirectRDMACapable(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_gpuDirectRDMACapable(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_20gpuDirectRDMACapable_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_usage(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_usage(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5usage_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_4getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_9__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_11__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_10__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s[] = {
  {(char *)"compressionType", __pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_compressionType, __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_compressionType, (char *)0, 0},
  {(char *)"gpuDirectRDMACapable", __pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_gpuDirectRDMACapable, __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_gpuDirectRDMACapable, (char *)0, 0},
  {(char *)"usage", __pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_usage, __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_usage, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_reserved, __pyx_setprop_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda._CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s(void_ptr _ptr)\n\n\n    Attributes\n    ----------\n    compressionType : unsigned char\n\n    gpuDirectRDMACapable : unsigned char\n\n    usage : unsigned short\n\n    reserved : unsigned char\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)o);
  p->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)Py_None); Py_INCREF(Py_None);
  p->_cwin32HandleMetaData = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  p->_allocFlags = ((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemAllocationProp_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_location);
  Py_CLEAR(p->_cwin32HandleMetaData);
  Py_CLEAR(p->_allocFlags);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUmemAllocationProp_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)o;
  if (p->_location) {
    e = (*v)(((PyObject *)p->_location), a); if (e) return e;
  }
  if (p->_cwin32HandleMetaData) {
    e = (*v)(((PyObject *)p->_cwin32HandleMetaData), a); if (e) return e;
  }
  if (p->_allocFlags) {
    e = (*v)(((PyObject *)p->_allocFlags), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUmemAllocationProp_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st *)o;
  tmp = ((PyObject*)p->_location);
  p->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cwin32HandleMetaData);
  p->_cwin32HandleMetaData = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_allocFlags);
  p->_allocFlags = ((struct __pyx_obj_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_4type_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_requestedHandleTypes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_requestedHandleTypes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_20requestedHandleTypes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_location(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_8location_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_location(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_8location_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_win32HandleMetaData(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_win32HandleMetaData(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_19win32HandleMetaData_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_allocFlags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_allocFlags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_10allocFlags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemAllocationProp_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_22CUmemAllocationProp_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUmemAllocationProp_st[] = {
  {(char *)"type", __pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_type, __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_type, (char *)0, 0},
  {(char *)"requestedHandleTypes", __pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_requestedHandleTypes, __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_requestedHandleTypes, (char *)0, 0},
  {(char *)"location", __pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_location, __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_location, (char *)0, 0},
  {(char *)"win32HandleMetaData", __pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_win32HandleMetaData, __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_win32HandleMetaData, (char *)0, 0},
  {(char *)"allocFlags", __pyx_getprop_4cuda_4cuda_22CUmemAllocationProp_st_allocFlags, __pyx_setprop_4cuda_4cuda_22CUmemAllocationProp_st_allocFlags, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemAllocationProp_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemAllocationProp_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemAllocationProp_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUmemAllocationProp_st(void_ptr _ptr=0)\n\n    Specifies the allocation properties for a allocation.\n\n    Attributes\n    ----------\n    type : CUmemAllocationType\n        Allocation type\n    requestedHandleTypes : CUmemAllocationHandleType\n        requested CUmemAllocationHandleType\n    location : CUmemLocation\n        Location of allocation\n    win32HandleMetaData : Any\n        Windows-specific POBJECT_ATTRIBUTES required when\n        CU_MEM_HANDLE_TYPE_WIN32 is specified. This object atributes\n        structure includes security attributes that define the scope of\n        which exported allocations may be tranferred to other processes. In\n        all other cases, this field is required to be zero.\n    allocFlags : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemAllocationProp_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemAllocationProp_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemAllocationProp_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUmemAllocationProp_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)o);
  p->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemAccessDesc_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_location);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUmemAccessDesc_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)o;
  if (p->_location) {
    e = (*v)(((PyObject *)p->_location), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUmemAccessDesc_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st *)o;
  tmp = ((PyObject*)p->_location);
  p->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_18CUmemAccessDesc_st_location(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_8location_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_18CUmemAccessDesc_st_location(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_8location_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_18CUmemAccessDesc_st_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5flags_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_18CUmemAccessDesc_st_flags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_5flags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemAccessDesc_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_18CUmemAccessDesc_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUmemAccessDesc_st[] = {
  {(char *)"location", __pyx_getprop_4cuda_4cuda_18CUmemAccessDesc_st_location, __pyx_setprop_4cuda_4cuda_18CUmemAccessDesc_st_location, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_4cuda_4cuda_18CUmemAccessDesc_st_flags, __pyx_setprop_4cuda_4cuda_18CUmemAccessDesc_st_flags, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemAccessDesc_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemAccessDesc_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemAccessDesc_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUmemAccessDesc_st(void_ptr _ptr=0)\n\n    Memory access descriptor\n\n    Attributes\n    ----------\n    location : CUmemLocation\n        Location on which the request is to change it's accessibility\n    flags : CUmemAccess_flags\n        ::CUmemProt accessibility flags to set on the request\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemAccessDesc_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemAccessDesc_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemAccessDesc_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUmemAccessDesc_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolProps_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)o);
  p->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)Py_None); Py_INCREF(Py_None);
  p->_cwin32SecurityAttributes = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolProps_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_location);
  Py_CLEAR(p->_cwin32SecurityAttributes);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUmemPoolProps_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)o;
  if (p->_location) {
    e = (*v)(((PyObject *)p->_location), a); if (e) return e;
  }
  if (p->_cwin32SecurityAttributes) {
    e = (*v)(((PyObject *)p->_cwin32SecurityAttributes), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUmemPoolProps_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *p = (struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st *)o;
  tmp = ((PyObject*)p->_location);
  p->_location = ((struct __pyx_obj_4cuda_4cuda_CUmemLocation *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cwin32SecurityAttributes);
  p->_cwin32SecurityAttributes = ((struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_allocType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9allocType_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_allocType(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9allocType_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_handleTypes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_handleTypes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11handleTypes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_location(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8location_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_location(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8location_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_win32SecurityAttributes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_win32SecurityAttributes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_23win32SecurityAttributes_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemPoolProps_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_17CUmemPoolProps_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUmemPoolProps_st[] = {
  {(char *)"allocType", __pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_allocType, __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_allocType, (char *)0, 0},
  {(char *)"handleTypes", __pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_handleTypes, __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_handleTypes, (char *)0, 0},
  {(char *)"location", __pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_location, __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_location, (char *)0, 0},
  {(char *)"win32SecurityAttributes", __pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_win32SecurityAttributes, __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_win32SecurityAttributes, (char *)0, 0},
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_17CUmemPoolProps_st_reserved, __pyx_setprop_4cuda_4cuda_17CUmemPoolProps_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemPoolProps_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemPoolProps_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolProps_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUmemPoolProps_st(void_ptr _ptr=0)\n\n    Specifies the properties of allocations made from the pool.\n\n    Attributes\n    ----------\n    allocType : CUmemAllocationType\n        Allocation type. Currently must be specified as\n        CU_MEM_ALLOCATION_TYPE_PINNED\n    handleTypes : CUmemAllocationHandleType\n        Handle types that will be supported by allocations from the pool.\n    location : CUmemLocation\n        Location where allocations should reside.\n    win32SecurityAttributes : Any\n        Windows-specific LPSECURITYATTRIBUTES required when\n        CU_MEM_HANDLE_TYPE_WIN32 is specified. This security attribute\n        defines the scope of which exported allocations may be tranferred\n        to other processes. In all other cases, this field is required to\n        be zero.\n    reserved : bytes\n        reserved for future use, must be 0\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemPoolProps_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemPoolProps_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemPoolProps_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUmemPoolProps_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemPoolProps_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolPtrExportData_st(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4cuda_4cuda_25CUmemPoolPtrExportData_st_reserved(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_25CUmemPoolPtrExportData_st_reserved(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_8reserved_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemPoolPtrExportData_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_25CUmemPoolPtrExportData_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUmemPoolPtrExportData_st[] = {
  {(char *)"reserved", __pyx_getprop_4cuda_4cuda_25CUmemPoolPtrExportData_st_reserved, __pyx_setprop_4cuda_4cuda_25CUmemPoolPtrExportData_st_reserved, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemPoolPtrExportData_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolPtrExportData_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "CUmemPoolPtrExportData_st(void_ptr _ptr=0)\n\n    Opaque data for exporting a pool allocation\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemPoolPtrExportData_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUmemPoolPtrExportData_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)o);
  p->_poolProps = ((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *)Py_None); Py_INCREF(Py_None);
  p->_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_poolProps);
  Py_CLEAR(p->_dptr);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)o;
  if (p->_poolProps) {
    e = (*v)(((PyObject *)p->_poolProps), a); if (e) return e;
  }
  if (p->_dptr) {
    e = (*v)(((PyObject *)p->_dptr), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *p = (struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st *)o;
  tmp = ((PyObject*)p->_poolProps);
  p->_poolProps = ((struct __pyx_obj_4cuda_4cuda_CUmemPoolProps *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dptr);
  p->_dptr = ((struct __pyx_obj_4cuda_4cuda_CUdeviceptr *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_poolProps(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_poolProps(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9poolProps_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescs(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11accessDescs_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescCount(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescCount(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_15accessDescCount_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_bytesize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_bytesize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_8bytesize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_dptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_1__get__(o);
}

static int __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_dptr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_4dptr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_7getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_6getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st[] = {
  {(char *)"poolProps", __pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_poolProps, __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_poolProps, (char *)0, 0},
  {(char *)"accessDescs", __pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescs, __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescs, (char *)0, 0},
  {(char *)"accessDescCount", __pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescCount, __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_accessDescCount, (char *)0, 0},
  {(char *)"bytesize", __pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_bytesize, __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_bytesize, (char *)0, 0},
  {(char *)"dptr", __pyx_getprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_dptr, __pyx_setprop_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_dptr, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS_st", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "CUDA_MEM_ALLOC_NODE_PARAMS_st(void_ptr _ptr=0)\n\n    Memory allocation node parameters\n\n    Attributes\n    ----------\n    poolProps : CUmemPoolProps\n        in: location where the allocation should reside (specified in\n        location). handleTypes must be CU_MEM_HANDLE_TYPE_NONE. IPC is not\n        supported.\n    accessDescs : CUmemAccessDesc\n        in: array of memory access descriptors. Used to describe peer GPU\n        access\n    accessDescCount : size_t\n        in: number of memory access descriptors. Must not exceed the number\n        of GPUs.\n    bytesize : size_t\n        in: size in bytes of the requested allocation\n    dptr : CUdeviceptr\n        out: address of the allocation returned by CUDA\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUuuid(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUuuid_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUuuid = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUuuid", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUuuid), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUuuid_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_9CUuuid_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    bytes : bytes\n        < CUDA definition of UUID\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_9CUuuid_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUuuid, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcEventHandle_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUipcEventHandle_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUipcEventHandle_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUipcEventHandle_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUipcEventHandle_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    CUDA IPC event handle\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUipcEventHandle_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcEventHandle(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUipcEventHandle_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUipcEventHandle = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUipcEventHandle", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUipcEventHandle), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUipcEventHandle_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    CUDA IPC event handle\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_19CUipcEventHandle_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUipcEventHandle, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcMemHandle_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUipcMemHandle_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUipcMemHandle_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUipcMemHandle_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUipcMemHandle_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    CUDA IPC mem handle\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUipcMemHandle_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUipcMemHandle(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUipcMemHandle_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUipcMemHandle = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUipcMemHandle", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUipcMemHandle), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUipcMemHandle_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    CUDA IPC mem handle\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUipcMemHandle_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUipcMemHandle, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_union(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamBatchMemOpParams_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    operation : CUstreamBatchMemOpType\n\n    waitValue : CUstreamMemOpWaitValueParams_st\n\n    writeValue : CUstreamMemOpWriteValueParams_st\n\n    flushRemoteWrites : CUstreamMemOpFlushRemoteWritesParams_st\n\n    pad : cuuint64_t\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams_union(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamBatchMemOpParams", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamBatchMemOpParams), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    operation : CUstreamBatchMemOpType\n\n    waitValue : CUstreamMemOpWaitValueParams_st\n\n    writeValue : CUstreamMemOpWriteValueParams_st\n\n    flushRemoteWrites : CUstreamMemOpFlushRemoteWritesParams_st\n\n    pad : cuuint64_t\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamBatchMemOpParams_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_30CUstreamBatchMemOpParams_union_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamBatchMemOpParams, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevprop_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUdevprop_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUdevprop_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdevprop_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdevprop_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdevprop_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_12CUdevprop_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Legacy device properties\n\n    Attributes\n    ----------\n    maxThreadsPerBlock : int\n        Maximum number of threads per block\n    maxThreadsDim : int\n        Maximum size of each dimension of a block\n    maxGridSize : int\n        Maximum size of each dimension of a grid\n    sharedMemPerBlock : int\n        Shared memory available per block in bytes\n    totalConstantMemory : int\n        Constant memory available on device in bytes\n    SIMDWidth : int\n        Warp size in threads\n    memPitch : int\n        Maximum pitch in bytes allowed by memory copies\n    regsPerBlock : int\n        32-bit registers available per block\n    clockRate : int\n        Clock frequency in kilohertz\n    textureAlign : int\n        Alignment requirement for textures\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_12CUdevprop_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdevprop_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevprop(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUdevprop_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUdevprop = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdevprop", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdevprop), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdevprop_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_12CUdevprop_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Legacy device properties\n\n    Attributes\n    ----------\n    maxThreadsPerBlock : int\n        Maximum number of threads per block\n    maxThreadsDim : int\n        Maximum size of each dimension of a block\n    maxGridSize : int\n        Maximum size of each dimension of a grid\n    sharedMemPerBlock : int\n        Shared memory available per block in bytes\n    totalConstantMemory : int\n        Constant memory available on device in bytes\n    SIMDWidth : int\n        Warp size in threads\n    memPitch : int\n        Maximum pitch in bytes allowed by memory copies\n    regsPerBlock : int\n        32-bit registers available per block\n    clockRate : int\n        Clock frequency in kilohertz\n    textureAlign : int\n        Alignment requirement for textures\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_12CUdevprop_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdevprop, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUaccessPolicyWindow_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies an access policy for a window, a contiguous extent of\n    memory beginning at base_ptr and ending at base_ptr + num_bytes.\n    num_bytes is limited by\n    CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE. Partition into\n    many segments and assign segments such that: sum of \"hit segments\"\n    / window == approx. ratio. sum of \"miss segments\" / window ==\n    approx 1-ratio. Segments and ratio specifications are fitted to the\n    capabilities of the architecture. Accesses in a hit segment apply\n    the hitProp access policy. Accesses in a miss segment apply the\n    missProp access policy.\n\n    Attributes\n    ----------\n    base_ptr : Any\n        Starting address of the access policy window. CUDA driver may align\n        it.\n    num_bytes : size_t\n        Size in bytes of the window policy. CUDA driver may restrict the\n        maximum size and alignment.\n    hitRatio : float\n        hitRatio specifies percentage of lines assigned hitProp, rest are\n        assigned missProp.\n    hitProp : CUaccessProperty\n        CUaccessProperty set for hit.\n    missProp : CUaccessProperty\n        CUaccessProperty set for miss. Must be either NORMAL or STREAMING\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUaccessPolicyWindow = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUaccessPolicyWindow", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUaccessPolicyWindow), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies an access policy for a window, a contiguous extent of\n    memory beginning at base_ptr and ending at base_ptr + num_bytes.\n    num_bytes is limited by\n    CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE. Partition into\n    many segments and assign segments such that: sum of \"hit segments\"\n    / window == approx. ratio. sum of \"miss segments\" / window ==\n    approx 1-ratio. Segments and ratio specifications are fitted to the\n    capabilities of the architecture. Accesses in a hit segment apply\n    the hitProp access policy. Accesses in a miss segment apply the\n    missProp access policy.\n\n    Attributes\n    ----------\n    base_ptr : Any\n        Starting address of the access policy window. CUDA driver may align\n        it.\n    num_bytes : size_t\n        Size in bytes of the window policy. CUDA driver may restrict the\n        maximum size and alignment.\n    hitRatio : float\n        hitRatio specifies percentage of lines assigned hitProp, rest are\n        assigned missProp.\n    hitProp : CUaccessProperty\n        CUaccessProperty set for hit.\n    missProp : CUaccessProperty\n        CUaccessProperty set for miss. Must be either NORMAL or STREAMING\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUaccessPolicyWindow_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUaccessPolicyWindow_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUaccessPolicyWindow, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_KERNEL_NODE_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    GPU kernel node parameters\n\n    Attributes\n    ----------\n    func : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    kernelParams : Any\n        Array of pointers to kernel parameters\n    extra : Any\n        Extra options\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_KERNEL_NODE_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    GPU kernel node parameters\n\n    Attributes\n    ----------\n    func : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    kernelParams : Any\n        Array of pointers to kernel parameters\n    extra : Any\n        Extra options\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMSET_NODE_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Memset node parameters\n\n    Attributes\n    ----------\n    dst : CUdeviceptr\n        Destination device pointer\n    pitch : size_t\n        Pitch of destination device pointer. Unused if height is 1\n    value : unsigned int\n        Value to be set\n    elementSize : unsigned int\n        Size of each element in bytes. Must be 1, 2, or 4.\n    width : size_t\n        Width of the row in elements\n    height : size_t\n        Number of rows\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMSET_NODE_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Memset node parameters\n\n    Attributes\n    ----------\n    dst : CUdeviceptr\n        Destination device pointer\n    pitch : size_t\n        Pitch of destination device pointer. Unused if height is 1\n    value : unsigned int\n        Value to be set\n    elementSize : unsigned int\n        Size of each element in bytes. Must be 1, 2, or 4.\n    width : size_t\n        Width of the row in elements\n    height : size_t\n        Number of rows\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_HOST_NODE_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Host node parameters\n\n    Attributes\n    ----------\n    fn : CUhostFn\n        The function to call when the node executes\n    userData : Any\n        Argument to pass to the function\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_HOST_NODE_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_HOST_NODE_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Host node parameters\n\n    Attributes\n    ----------\n    fn : CUhostFn\n        The function to call when the node executes\n    userData : Any\n        Argument to pass to the function\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_HOST_NODE_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_union(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUkernelNodeAttrValue_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    accessPolicyWindow : CUaccessPolicyWindow\n\n    cooperative : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue_union(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUkernelNodeAttrValue", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUkernelNodeAttrValue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    accessPolicyWindow : CUaccessPolicyWindow\n\n    cooperative : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUkernelNodeAttrValue_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_27CUkernelNodeAttrValue_union_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUkernelNodeAttrValue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_union(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamAttrValue_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamAttrValue_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamAttrValue_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    accessPolicyWindow : CUaccessPolicyWindow\n\n    syncPolicy : CUsynchronizationPolicy\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamAttrValue_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamAttrValue_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUstreamAttrValue(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUstreamAttrValue_union(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUstreamAttrValue = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUstreamAttrValue", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUstreamAttrValue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUstreamAttrValue_union, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n\n    Attributes\n    ----------\n    accessPolicyWindow : CUaccessPolicyWindow\n\n    syncPolicy : CUsynchronizationPolicy\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUstreamAttrValue_union, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUstreamAttrValue_union, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_23CUstreamAttrValue_union_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUstreamAttrValue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexecAffinitySmCount_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinitySmCount_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Value for CU_EXEC_AFFINITY_TYPE_SM_COUNT\n\n    Attributes\n    ----------\n    val : unsigned int\n        The number of SMs the context is limited to use.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUexecAffinitySmCount = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexecAffinitySmCount", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexecAffinitySmCount), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinitySmCount_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Value for CU_EXEC_AFFINITY_TYPE_SM_COUNT\n\n    Attributes\n    ----------\n    val : unsigned int\n        The number of SMs the context is limited to use.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUexecAffinitySmCount_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexecAffinitySmCount, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUexecAffinityParam_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexecAffinityParam_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinityParam_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Execution Affinity Parameters\n\n    Attributes\n    ----------\n    type : CUexecAffinityType\n\n    param : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUexecAffinityParam_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUexecAffinityParam_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUexecAffinityParam(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUexecAffinityParam_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUexecAffinityParam = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUexecAffinityParam", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUexecAffinityParam), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUexecAffinityParam_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Execution Affinity Parameters\n\n    Attributes\n    ----------\n    type : CUexecAffinityType\n\n    param : _CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUexecAffinityParam_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUexecAffinityParam_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUexecAffinityParam_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUexecAffinityParam, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_v2(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY2D_v2", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D_v2), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    2D memory copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    WidthInBytes : size_t\n        Width of 2D memory copy in bytes\n    Height : size_t\n        Height of 2D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_v2, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY2D", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY2D), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    2D memory copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    WidthInBytes : size_t\n        Width of 2D memory copy in bytes\n    Height : size_t\n        Height of 2D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY2D_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY2D_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY2D, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_v2(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY3D_v2", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_v2), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    3D memory copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcZ : size_t\n        Source Z\n    srcLOD : size_t\n        Source LOD\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    reserved0 : Any\n        Must be NULL\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    srcHeight : size_t\n        Source height (ignored when src is array; may be 0 if Depth==1)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstZ : size_t\n        Destination Z\n    dstLOD : size_t\n        Destination LOD\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    reserved1 : Any\n        Must be NULL\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    dstHeight : size_t\n        Destination height (ignored when dst is array; may be 0 if\n        Depth==1)\n    WidthInBytes : size_t\n        Width of 3D memory copy in bytes\n    Height : size_t\n        Height of 3D memory copy\n    Depth : size_t\n        Depth of 3D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_v2, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY3D", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    3D memory copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcZ : size_t\n        Source Z\n    srcLOD : size_t\n        Source LOD\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    reserved0 : Any\n        Must be NULL\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    srcHeight : size_t\n        Source height (ignored when src is array; may be 0 if Depth==1)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstZ : size_t\n        Destination Z\n    dstLOD : size_t\n        Destination LOD\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    reserved1 : Any\n        Must be NULL\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    dstHeight : size_t\n        Destination height (ignored when dst is array; may be 0 if\n        Depth==1)\n    WidthInBytes : size_t\n        Width of 3D memory copy in bytes\n    Height : size_t\n        Height of 3D memory copy\n    Depth : size_t\n        Depth of 3D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUDA_MEMCPY3D_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY3D_PEER_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    3D memory cross-context copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcZ : size_t\n        Source Z\n    srcLOD : size_t\n        Source LOD\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    srcContext : CUcontext\n        Source context (ignored with srcMemoryType is CU_MEMORYTYPE_ARRAY)\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    srcHeight : size_t\n        Source height (ignored when src is array; may be 0 if Depth==1)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstZ : size_t\n        Destination Z\n    dstLOD : size_t\n        Destination LOD\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    dstContext : CUcontext\n        Destination context (ignored with dstMemoryType is\n        CU_MEMORYTYPE_ARRAY)\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    dstHeight : size_t\n        Destination height (ignored when dst is array; may be 0 if\n        Depth==1)\n    WidthInBytes : size_t\n        Width of 3D memory copy in bytes\n    Height : size_t\n        Height of 3D memory copy\n    Depth : size_t\n        Depth of 3D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEMCPY3D_PEER", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEMCPY3D_PEER), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    3D memory cross-context copy parameters\n\n    Attributes\n    ----------\n    srcXInBytes : size_t\n        Source X in bytes\n    srcY : size_t\n        Source Y\n    srcZ : size_t\n        Source Z\n    srcLOD : size_t\n        Source LOD\n    srcMemoryType : CUmemorytype\n        Source memory type (host, device, array)\n    srcHost : Any\n        Source host pointer\n    srcDevice : CUdeviceptr\n        Source device pointer\n    srcArray : CUarray\n        Source array reference\n    srcContext : CUcontext\n        Source context (ignored with srcMemoryType is CU_MEMORYTYPE_ARRAY)\n    srcPitch : size_t\n        Source pitch (ignored when src is array)\n    srcHeight : size_t\n        Source height (ignored when src is array; may be 0 if Depth==1)\n    dstXInBytes : size_t\n        Destination X in bytes\n    dstY : size_t\n        Destination Y\n    dstZ : size_t\n        Destination Z\n    dstLOD : size_t\n        Destination LOD\n    dstMemoryType : CUmemorytype\n        Destination memory type (host, device, array)\n    dstHost : Any\n        Destination host pointer\n    dstDevice : CUdeviceptr\n        Destination device pointer\n    dstArray : CUarray\n        Destination array reference\n    dstContext : CUcontext\n        Destination context (ignored with dstMemoryType is\n        CU_MEMORYTYPE_ARRAY)\n    dstPitch : size_t\n        Destination pitch (ignored when dst is array)\n    dstHeight : size_t\n        Destination height (ignored when dst is array; may be 0 if\n        Depth==1)\n    WidthInBytes : size_t\n        Width of 3D memory copy in bytes\n    Height : size_t\n        Height of 3D memory copy\n    Depth : size_t\n        Depth of 3D memory copy\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEMCPY3D_PEER, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY_DESCRIPTOR_v2", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Array descriptor\n\n    Attributes\n    ----------\n    Width : size_t\n        Width of array\n    Height : size_t\n        Height of array\n    Format : CUarray_format\n        Array format\n    NumChannels : unsigned int\n        Channels per array element\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY_DESCRIPTOR", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Array descriptor\n\n    Attributes\n    ----------\n    Width : size_t\n        Width of array\n    Height : size_t\n        Height of array\n    Format : CUarray_format\n        Array format\n    NumChannels : unsigned int\n        Channels per array element\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR_v2", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    3D array descriptor\n\n    Attributes\n    ----------\n    Width : size_t\n        Width of 3D array\n    Height : size_t\n        Height of 3D array\n    Depth : size_t\n        Depth of 3D array\n    Format : CUarray_format\n        Array format\n    NumChannels : unsigned int\n        Channels per array element\n    Flags : unsigned int\n        Flags\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY3D_DESCRIPTOR", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    3D array descriptor\n\n    Attributes\n    ----------\n    Width : size_t\n        Width of 3D array\n    Height : size_t\n        Height of 3D array\n    Depth : size_t\n        Depth of 3D array\n    Format : CUarray_format\n        Array format\n    NumChannels : unsigned int\n        Channels per array element\n    Flags : unsigned int\n        Flags\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    CUDA array sparse properties\n\n    Attributes\n    ----------\n    tileExtent : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s\n\n    miptailFirstLevel : unsigned int\n        First mip level at which the mip tail begins.\n    miptailSize : unsigned long long\n        Total size of the mip tail.\n    flags : unsigned int\n        Flags will either be zero or\n        CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_ARRAY_SPARSE_PROPERTIES", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    CUDA array sparse properties\n\n    Attributes\n    ----------\n    tileExtent : _CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s\n\n    miptailFirstLevel : unsigned int\n        First mip level at which the mip tail begins.\n    miptailSize : unsigned long long\n        Total size of the mip tail.\n    flags : unsigned int\n        Flags will either be zero or\n        CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_RESOURCE_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    CUDA Resource descriptor\n\n    Attributes\n    ----------\n    resType : CUresourcetype\n        Resource type\n    res : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u\n\n    flags : unsigned int\n        Flags (must be zero)\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_RESOURCE_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    CUDA Resource descriptor\n\n    Attributes\n    ----------\n    resType : CUresourcetype\n        Resource type\n    res : _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u\n\n    flags : unsigned int\n        Flags (must be zero)\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_RESOURCE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_TEXTURE_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_TEXTURE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Texture descriptor\n\n    Attributes\n    ----------\n    addressMode : List[CUaddress_mode]\n        Address modes\n    filterMode : CUfilter_mode\n        Filter mode\n    flags : unsigned int\n        Flags\n    maxAnisotropy : unsigned int\n        Maximum anisotropy ratio\n    mipmapFilterMode : CUfilter_mode\n        Mipmap filter mode\n    mipmapLevelBias : float\n        Mipmap level bias\n    minMipmapLevelClamp : float\n        Mipmap minimum level clamp\n    maxMipmapLevelClamp : float\n        Mipmap maximum level clamp\n    borderColor : float\n        Border Color\n    reserved : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_TEXTURE_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_TEXTURE_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_TEXTURE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Texture descriptor\n\n    Attributes\n    ----------\n    addressMode : List[CUaddress_mode]\n        Address modes\n    filterMode : CUfilter_mode\n        Filter mode\n    flags : unsigned int\n        Flags\n    maxAnisotropy : unsigned int\n        Maximum anisotropy ratio\n    mipmapFilterMode : CUfilter_mode\n        Mipmap filter mode\n    mipmapLevelBias : float\n        Mipmap level bias\n    minMipmapLevelClamp : float\n        Mipmap minimum level clamp\n    maxMipmapLevelClamp : float\n        Mipmap maximum level clamp\n    borderColor : float\n        Border Color\n    reserved : int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_TEXTURE_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_RESOURCE_VIEW_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Resource view descriptor\n\n    Attributes\n    ----------\n    format : CUresourceViewFormat\n        Resource view format\n    width : size_t\n        Width of the resource view\n    height : size_t\n        Height of the resource view\n    depth : size_t\n        Depth of the resource view\n    firstMipmapLevel : unsigned int\n        First defined mipmap level\n    lastMipmapLevel : unsigned int\n        Last defined mipmap level\n    firstLayer : unsigned int\n        First layer index\n    lastLayer : unsigned int\n        Last layer index\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_RESOURCE_VIEW_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Resource view descriptor\n\n    Attributes\n    ----------\n    format : CUresourceViewFormat\n        Resource view format\n    width : size_t\n        Width of the resource view\n    height : size_t\n        Height of the resource view\n    depth : size_t\n        Depth of the resource view\n    firstMipmapLevel : unsigned int\n        First defined mipmap level\n    lastMipmapLevel : unsigned int\n        Last defined mipmap level\n    firstLayer : unsigned int\n        First layer index\n    lastLayer : unsigned int\n        Last layer index\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    GPU Direct v3 tokens\n\n    Attributes\n    ----------\n    p2pToken : unsigned long long\n\n    vaSpaceToken : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_POINTER_ATTRIBUTE_P2P_TOKENS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    GPU Direct v3 tokens\n\n    Attributes\n    ----------\n    p2pToken : unsigned long long\n\n    vaSpaceToken : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_LAUNCH_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Kernel launch parameters\n\n    Attributes\n    ----------\n    function : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    hStream : CUstream\n        Stream identifier\n    kernelParams : Any\n        Array of pointers to kernel parameters\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_LAUNCH_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_LAUNCH_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Kernel launch parameters\n\n    Attributes\n    ----------\n    function : CUfunction\n        Kernel to launch\n    gridDimX : unsigned int\n        Width of grid in blocks\n    gridDimY : unsigned int\n        Height of grid in blocks\n    gridDimZ : unsigned int\n        Depth of grid in blocks\n    blockDimX : unsigned int\n        X dimension of each thread block\n    blockDimY : unsigned int\n        Y dimension of each thread block\n    blockDimZ : unsigned int\n        Z dimension of each thread block\n    sharedMemBytes : unsigned int\n        Dynamic shared-memory size per thread block in bytes\n    hStream : CUstream\n        Stream identifier\n    kernelParams : Any\n        Array of pointers to kernel parameters\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_LAUNCH_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External memory handle descriptor\n\n    Attributes\n    ----------\n    type : CUexternalMemoryHandleType\n        Type of the handle\n    handle : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u\n\n    size : unsigned long long\n        Size of the memory allocation\n    flags : unsigned int\n        Flags must either be zero or CUDA_EXTERNAL_MEMORY_DEDICATED\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_HANDLE_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External memory handle descriptor\n\n    Attributes\n    ----------\n    type : CUexternalMemoryHandleType\n        Type of the handle\n    handle : _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u\n\n    size : unsigned long long\n        Size of the memory allocation\n    flags : unsigned int\n        Flags must either be zero or CUDA_EXTERNAL_MEMORY_DEDICATED\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    External memory buffer descriptor\n\n    Attributes\n    ----------\n    offset : unsigned long long\n        Offset into the memory object where the buffer's base is\n    size : unsigned long long\n        Size of the buffer\n    flags : unsigned int\n        Flags reserved for future use. Must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_BUFFER_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    External memory buffer descriptor\n\n    Attributes\n    ----------\n    offset : unsigned long long\n        Offset into the memory object where the buffer's base is\n    size : unsigned long long\n        Size of the buffer\n    flags : unsigned int\n        Flags reserved for future use. Must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External memory mipmap descriptor\n\n    Attributes\n    ----------\n    offset : unsigned long long\n        Offset into the memory object where the base level of the mipmap\n        chain is.\n    arrayDesc : CUDA_ARRAY3D_DESCRIPTOR\n        Format, dimension and type of base level of the mipmap chain\n    numLevels : unsigned int\n        Total number of levels in the mipmap chain\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External memory mipmap descriptor\n\n    Attributes\n    ----------\n    offset : unsigned long long\n        Offset into the memory object where the base level of the mipmap\n        chain is.\n    arrayDesc : CUDA_ARRAY3D_DESCRIPTOR\n        Format, dimension and type of base level of the mipmap chain\n    numLevels : unsigned int\n        Total number of levels in the mipmap chain\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External semaphore handle descriptor\n\n    Attributes\n    ----------\n    type : CUexternalSemaphoreHandleType\n        Type of the handle\n    handle : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u\n\n    flags : unsigned int\n        Flags reserved for the future. Must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External semaphore handle descriptor\n\n    Attributes\n    ----------\n    type : CUexternalSemaphoreHandleType\n        Type of the handle\n    handle : _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u\n\n    flags : unsigned int\n        Flags reserved for the future. Must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External semaphore signal parameters\n\n    Attributes\n    ----------\n    params : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s\n\n    flags : unsigned int\n        Only when CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS is used to signal a\n        CUexternalSemaphore of type\n        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, the valid flag is\n        CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC which\n        indicates that while signaling the CUexternalSemaphore, no memory\n        synchronization operations should be performed for any external\n        memory object imported as CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF.\n        For all other types of CUexternalSemaphore, flags must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External semaphore signal parameters\n\n    Attributes\n    ----------\n    params : _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s\n\n    flags : unsigned int\n        Only when CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS is used to signal a\n        CUexternalSemaphore of type\n        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, the valid flag is\n        CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC which\n        indicates that while signaling the CUexternalSemaphore, no memory\n        synchronization operations should be performed for any external\n        memory object imported as CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF.\n        For all other types of CUexternalSemaphore, flags must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External semaphore wait parameters\n\n    Attributes\n    ----------\n    params : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s\n\n    flags : unsigned int\n        Only when CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS is used to wait on a\n        CUexternalSemaphore of type\n        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, the valid flag is\n        CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC which indicates\n        that while waiting for the CUexternalSemaphore, no memory\n        synchronization operations should be performed for any external\n        memory object imported as CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF.\n        For all other types of CUexternalSemaphore, flags must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    External semaphore wait parameters\n\n    Attributes\n    ----------\n    params : _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s\n\n    flags : unsigned int\n        Only when CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS is used to wait on a\n        CUexternalSemaphore of type\n        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC, the valid flag is\n        CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC which indicates\n        that while waiting for the CUexternalSemaphore, no memory\n        synchronization operations should be performed for any external\n        memory object imported as CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF.\n        For all other types of CUexternalSemaphore, flags must be zero.\n    reserved : unsigned int\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Semaphore signal node parameters\n\n    Attributes\n    ----------\n    extSemArray : CUexternalSemaphore\n        Array of external semaphore handles.\n    paramsArray : CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS\n        Array of external semaphore signal parameters.\n    numExtSems : unsigned int\n        Number of handles and parameters supplied in extSemArray and\n        paramsArray.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXT_SEM_SIGNAL_NODE_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Semaphore signal node parameters\n\n    Attributes\n    ----------\n    extSemArray : CUexternalSemaphore\n        Array of external semaphore handles.\n    paramsArray : CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS\n        Array of external semaphore signal parameters.\n    numExtSems : unsigned int\n        Number of handles and parameters supplied in extSemArray and\n        paramsArray.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Semaphore wait node parameters\n\n    Attributes\n    ----------\n    extSemArray : CUexternalSemaphore\n        Array of external semaphore handles.\n    paramsArray : CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS\n        Array of external semaphore wait parameters.\n    numExtSems : unsigned int\n        Number of handles and parameters supplied in extSemArray and\n        paramsArray.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_EXT_SEM_WAIT_NODE_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Semaphore wait node parameters\n\n    Attributes\n    ----------\n    extSemArray : CUexternalSemaphore\n        Array of external semaphore handles.\n    paramsArray : CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS\n        Array of external semaphore wait parameters.\n    numExtSems : unsigned int\n        Number of handles and parameters supplied in extSemArray and\n        paramsArray.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUarrayMapInfo_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUarrayMapInfo_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUarrayMapInfo_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies the CUDA array or CUDA mipmapped array memory mapping\n    information\n\n    Attributes\n    ----------\n    resourceType : CUresourcetype\n        Resource type\n    resource : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u\n\n    subresourceType : CUarraySparseSubresourceType\n        Sparse subresource type\n    subresource : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u\n\n    memOperationType : CUmemOperationType\n        Memory operation type\n    memHandleType : CUmemHandleType\n        Memory handle type\n    memHandle : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u\n\n    offset : unsigned long long\n        Offset within mip tail Offset within the memory\n    deviceBitMask : unsigned int\n        Device ordinal bit mask\n    flags : unsigned int\n        flags for future use, must be zero now.\n    reserved : unsigned int\n        Reserved for future use, must be zero now.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUarrayMapInfo_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUarrayMapInfo_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUarrayMapInfo(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUarrayMapInfo_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUarrayMapInfo = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUarrayMapInfo", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUarrayMapInfo), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUarrayMapInfo_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies the CUDA array or CUDA mipmapped array memory mapping\n    information\n\n    Attributes\n    ----------\n    resourceType : CUresourcetype\n        Resource type\n    resource : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u\n\n    subresourceType : CUarraySparseSubresourceType\n        Sparse subresource type\n    subresource : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u\n\n    memOperationType : CUmemOperationType\n        Memory operation type\n    memHandleType : CUmemHandleType\n        Memory handle type\n    memHandle : _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u\n\n    offset : unsigned long long\n        Offset within mip tail Offset within the memory\n    deviceBitMask : unsigned int\n        Device ordinal bit mask\n    flags : unsigned int\n        flags for future use, must be zero now.\n    reserved : unsigned int\n        Reserved for future use, must be zero now.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUarrayMapInfo_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUarrayMapInfo_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUarrayMapInfo_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUarrayMapInfo, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemLocation_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemLocation_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemLocation_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemLocation_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemLocation_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemLocation_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUmemLocation_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Specifies a memory location.\n\n    Attributes\n    ----------\n    type : CUmemLocationType\n        Specifies the location type, which modifies the meaning of id.\n    id : int\n        identifier for a given this location's CUmemLocationType.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUmemLocation_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemLocation_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemLocation(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemLocation_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemLocation = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemLocation", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemLocation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemLocation_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUmemLocation_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Specifies a memory location.\n\n    Attributes\n    ----------\n    type : CUmemLocationType\n        Specifies the location type, which modifies the meaning of id.\n    id : int\n        identifier for a given this location's CUmemLocationType.\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_16CUmemLocation_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemLocation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemAllocationProp_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemAllocationProp_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemAllocationProp_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies the allocation properties for a allocation.\n\n    Attributes\n    ----------\n    type : CUmemAllocationType\n        Allocation type\n    requestedHandleTypes : CUmemAllocationHandleType\n        requested CUmemAllocationHandleType\n    location : CUmemLocation\n        Location of allocation\n    win32HandleMetaData : Any\n        Windows-specific POBJECT_ATTRIBUTES required when\n        CU_MEM_HANDLE_TYPE_WIN32 is specified. This object atributes\n        structure includes security attributes that define the scope of\n        which exported allocations may be tranferred to other processes. In\n        all other cases, this field is required to be zero.\n    allocFlags : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemAllocationProp_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemAllocationProp_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAllocationProp(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemAllocationProp_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemAllocationProp = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemAllocationProp", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemAllocationProp), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemAllocationProp_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies the allocation properties for a allocation.\n\n    Attributes\n    ----------\n    type : CUmemAllocationType\n        Allocation type\n    requestedHandleTypes : CUmemAllocationHandleType\n        requested CUmemAllocationHandleType\n    location : CUmemLocation\n        Location of allocation\n    win32HandleMetaData : Any\n        Windows-specific POBJECT_ATTRIBUTES required when\n        CU_MEM_HANDLE_TYPE_WIN32 is specified. This object atributes\n        structure includes security attributes that define the scope of\n        which exported allocations may be tranferred to other processes. In\n        all other cases, this field is required to be zero.\n    allocFlags : _CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemAllocationProp_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemAllocationProp_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_22CUmemAllocationProp_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemAllocationProp, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemAccessDesc_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemAccessDesc_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemAccessDesc_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Memory access descriptor\n\n    Attributes\n    ----------\n    location : CUmemLocation\n        Location on which the request is to change it's accessibility\n    flags : CUmemAccess_flags\n        ::CUmemProt accessibility flags to set on the request\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemAccessDesc_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemAccessDesc_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemAccessDesc(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemAccessDesc_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemAccessDesc = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemAccessDesc", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemAccessDesc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemAccessDesc_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Memory access descriptor\n\n    Attributes\n    ----------\n    location : CUmemLocation\n        Location on which the request is to change it's accessibility\n    flags : CUmemAccess_flags\n        ::CUmemProt accessibility flags to set on the request\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemAccessDesc_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemAccessDesc_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_18CUmemAccessDesc_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemAccessDesc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolProps_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemPoolProps_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemPoolProps_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemPoolProps_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolProps_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies the properties of allocations made from the pool.\n\n    Attributes\n    ----------\n    allocType : CUmemAllocationType\n        Allocation type. Currently must be specified as\n        CU_MEM_ALLOCATION_TYPE_PINNED\n    handleTypes : CUmemAllocationHandleType\n        Handle types that will be supported by allocations from the pool.\n    location : CUmemLocation\n        Location where allocations should reside.\n    win32SecurityAttributes : Any\n        Windows-specific LPSECURITYATTRIBUTES required when\n        CU_MEM_HANDLE_TYPE_WIN32 is specified. This security attribute\n        defines the scope of which exported allocations may be tranferred\n        to other processes. In all other cases, this field is required to\n        be zero.\n    reserved : bytes\n        reserved for future use, must be 0\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemPoolProps_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemPoolProps_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemPoolProps_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolProps(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemPoolProps_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemPoolProps = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemPoolProps", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemPoolProps), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolProps_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Specifies the properties of allocations made from the pool.\n\n    Attributes\n    ----------\n    allocType : CUmemAllocationType\n        Allocation type. Currently must be specified as\n        CU_MEM_ALLOCATION_TYPE_PINNED\n    handleTypes : CUmemAllocationHandleType\n        Handle types that will be supported by allocations from the pool.\n    location : CUmemLocation\n        Location where allocations should reside.\n    win32SecurityAttributes : Any\n        Windows-specific LPSECURITYATTRIBUTES required when\n        CU_MEM_HANDLE_TYPE_WIN32 is specified. This security attribute\n        defines the scope of which exported allocations may be tranferred\n        to other processes. In all other cases, this field is required to\n        be zero.\n    reserved : bytes\n        reserved for future use, must be 0\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUmemPoolProps_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUmemPoolProps_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_17CUmemPoolProps_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemPoolProps, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemPoolPtrExportData_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolPtrExportData_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Opaque data for exporting a pool allocation\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemPoolPtrExportData", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemPoolPtrExportData), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemPoolPtrExportData_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Opaque data for exporting a pool allocation\n\n    Attributes\n    ----------\n    reserved : bytes\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_25CUmemPoolPtrExportData_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemPoolPtrExportData, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyTypeObject __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUDA_MEM_ALLOC_NODE_PARAMS", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_9__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Memory allocation node parameters\n\n    Attributes\n    ----------\n    poolProps : CUmemPoolProps\n        in: location where the allocation should reside (specified in\n        location). handleTypes must be CU_MEM_HANDLE_TYPE_NONE. IPC is not\n        supported.\n    accessDescs : CUmemAccessDesc\n        in: array of memory access descriptors. Used to describe peer GPU\n        access\n    accessDescCount : size_t\n        in: number of memory access descriptors. Must not exceed the number\n        of GPUs.\n    bytesize : size_t\n        in: size in bytes of the requested allocation\n    dptr : CUdeviceptr\n        out: address of the allocation returned by CUDA\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_3__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_cuuint32_t(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_10cuuint32_t_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_cuuint32_t(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_10cuuint32_t_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_cuuint32_t[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint32_t_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint32_t_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint32_t_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint32_t_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint32_t_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_10cuuint32_t_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_cuuint32_t = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_10cuuint32_t_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_10cuuint32_t_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_cuuint32_t = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.cuuint32_t", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_cuuint32_t), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_cuuint32_t, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_10cuuint32_t_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_cuuint32_t, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_cuuint32_t, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_cuuint32_t, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_cuuint64_t(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_10cuuint64_t_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_cuuint64_t(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_10cuuint64_t_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_cuuint64_t[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint64_t_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint64_t_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint64_t_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_10cuuint64_t_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_10cuuint64_t_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_10cuuint64_t_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_cuuint64_t = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_10cuuint64_t_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_10cuuint64_t_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_cuuint64_t = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.cuuint64_t", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_cuuint64_t), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_cuuint64_t, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_10cuuint64_t_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_cuuint64_t, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_cuuint64_t, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_cuuint64_t, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdeviceptr_v2(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUdeviceptr_v2(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUdeviceptr_v2[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_14CUdeviceptr_v2_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUdeviceptr_v2 = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUdeviceptr_v2 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdeviceptr_v2", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdeviceptr_v2), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdeviceptr_v2, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_14CUdeviceptr_v2_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUdeviceptr_v2, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUdeviceptr_v2, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdeviceptr_v2, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdeviceptr(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_11CUdeviceptr_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUdeviceptr(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_11CUdeviceptr_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUdeviceptr[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdeviceptr_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdeviceptr_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdeviceptr_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdeviceptr_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdeviceptr_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUdeviceptr_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUdeviceptr = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUdeviceptr_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_11CUdeviceptr_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUdeviceptr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdeviceptr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdeviceptr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdeviceptr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUdeviceptr_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUdeviceptr, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUdeviceptr, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdeviceptr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevice_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_11CUdevice_v1_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUdevice_v1(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_11CUdevice_v1_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUdevice_v1[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdevice_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdevice_v1_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdevice_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUdevice_v1_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUdevice_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUdevice_v1_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUdevice_v1 = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUdevice_v1_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_11CUdevice_v1_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUdevice_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdevice_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdevice_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdevice_v1, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUdevice_v1_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUdevice_v1, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUdevice_v1, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdevice_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUdevice(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_8CUdevice_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUdevice(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_8CUdevice_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUdevice[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUdevice_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUdevice_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUdevice_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_8CUdevice_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_8CUdevice_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_8CUdevice_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUdevice = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUdevice_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_8CUdevice_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUdevice = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUdevice", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUdevice), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUdevice, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_8CUdevice_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUdevice, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUdevice, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUdevice, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUtexObject_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_14CUtexObject_v1_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUtexObject_v1(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_14CUtexObject_v1_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUtexObject_v1[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUtexObject_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUtexObject_v1_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUtexObject_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_14CUtexObject_v1_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_14CUtexObject_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_14CUtexObject_v1_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUtexObject_v1 = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_14CUtexObject_v1_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_14CUtexObject_v1_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUtexObject_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUtexObject_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUtexObject_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUtexObject_v1, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_14CUtexObject_v1_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUtexObject_v1, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUtexObject_v1, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUtexObject_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUtexObject(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_11CUtexObject_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUtexObject(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_11CUtexObject_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUtexObject[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUtexObject_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUtexObject_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUtexObject_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_11CUtexObject_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_11CUtexObject_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_11CUtexObject_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUtexObject = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUtexObject_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_11CUtexObject_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUtexObject = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUtexObject", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUtexObject), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUtexObject, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_11CUtexObject_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUtexObject, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUtexObject, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUtexObject, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUsurfObject_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUsurfObject_v1(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUsurfObject_v1[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_15CUsurfObject_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_15CUsurfObject_v1_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUsurfObject_v1 = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUsurfObject_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUsurfObject_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUsurfObject_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUsurfObject_v1, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_15CUsurfObject_v1_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUsurfObject_v1, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUsurfObject_v1, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUsurfObject_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUsurfObject(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_12CUsurfObject_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUsurfObject(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_12CUsurfObject_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUsurfObject[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUsurfObject_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUsurfObject_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUsurfObject_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_12CUsurfObject_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_12CUsurfObject_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_12CUsurfObject_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUsurfObject = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUsurfObject_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_12CUsurfObject_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUsurfObject = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUsurfObject", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUsurfObject), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUsurfObject, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_12CUsurfObject_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUsurfObject, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUsurfObject, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUsurfObject, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemGenericAllocationHandle_v1(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemGenericAllocationHandle_v1(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemGenericAllocationHandle_v1[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUmemGenericAllocationHandle_v1 = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemGenericAllocationHandle_v1", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle_v1), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemGenericAllocationHandle_v1, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUmemGenericAllocationHandle_v1, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemGenericAllocationHandle_v1, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemGenericAllocationHandle_v1, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyObject *__pyx_tp_new_4cuda_4cuda_CUmemGenericAllocationHandle(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cuda_4cuda_CUmemGenericAllocationHandle(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cuda_4cuda_CUmemGenericAllocationHandle[] = {
  {"getPtr", (PyCFunction)__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_9getPtr, METH_NOARGS, __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_8getPtr},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_11__reduce_cython__, METH_NOARGS, __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_13__setstate_cython__, METH_O, __pyx_doc_4cuda_4cuda_28CUmemGenericAllocationHandle_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CUmemGenericAllocationHandle = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_7__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_7__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.CUmemGenericAllocationHandle", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda_CUmemGenericAllocationHandle), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda_CUmemGenericAllocationHandle, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4cuda_4cuda_28CUmemGenericAllocationHandle_5__repr__, /*tp_repr*/
  &__pyx_tp_as_number_CUmemGenericAllocationHandle, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n\n\n    Methods\n    -------\n    getPtr()\n        Get memory address of class instance\n\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cuda_4cuda_CUmemGenericAllocationHandle, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda_CUmemGenericAllocationHandle, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *__pyx_freelist_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_paramsArray);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3[__pyx_freecount_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *)o;
  if (p->__pyx_v_paramsArray) {
    e = (*v)(p->__pyx_v_paramsArray, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 *)o;
  tmp = ((PyObject*)p->__pyx_v_paramsArray);
  p->__pyx_v_paramsArray = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct__cuCtxCreate_v3", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_1_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_1_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_1_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_1_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_1_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_1_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_1_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_1_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_1_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_1_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_1_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_1_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_1_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_options);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *)o;
  if (p->__pyx_v_options) {
    e = (*v)(p->__pyx_v_options, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx *)o;
  tmp = ((PyObject*)p->__pyx_v_options);
  p->__pyx_v_options = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_2_cuModuleLoadDataEx", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_3_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_3_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_3_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_3_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_3_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_3_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_3_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_3_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_3_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_3_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_3_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_options);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *)o;
  if (p->__pyx_v_options) {
    e = (*v)(p->__pyx_v_options, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate *)o;
  tmp = ((PyObject*)p->__pyx_v_options);
  p->__pyx_v_options = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_4_cuLinkCreate", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_5_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_5_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_5_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_5_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_5_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_5_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_5_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_5_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_5_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_5_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_5_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_5_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_5_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_5_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_5_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_5_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_options);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *)o;
  if (p->__pyx_v_options) {
    e = (*v)(p->__pyx_v_options, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData *)o;
  tmp = ((PyObject*)p->__pyx_v_options);
  p->__pyx_v_options = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_6_cuLinkAddData", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_7_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_7_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_7_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_7_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_7_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_7_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_7_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_7_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_7_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_7_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_7_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_7_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_7_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_7_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_7_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_7_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_options);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *)o;
  if (p->__pyx_v_options) {
    e = (*v)(p->__pyx_v_options, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile *)o;
  tmp = ((PyObject*)p->__pyx_v_options);
  p->__pyx_v_options = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_8_cuLinkAddFile", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_9_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_9_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_9_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_9_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_9_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_9_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_9_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_9_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_9_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_9_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_9_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_9_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_9_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_9_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_9_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_9_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_mapInfoList);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *)o;
  if (p->__pyx_v_mapInfoList) {
    e = (*v)(p->__pyx_v_mapInfoList, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync *)o;
  tmp = ((PyObject*)p->__pyx_v_mapInfoList);
  p->__pyx_v_mapInfoList = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_10_cuMemMapArrayAsync", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_11_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_11_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_11_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_11_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_11_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_11_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_11_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_11_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_11_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_11_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_11_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_11_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_11_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_11_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_11_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_11_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_desc);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *)o;
  if (p->__pyx_v_desc) {
    e = (*v)(p->__pyx_v_desc, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess *)o;
  tmp = ((PyObject*)p->__pyx_v_desc);
  p->__pyx_v_desc = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_12_cuMemSetAccess", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_13_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_13_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_13_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_13_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_13_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_13_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_13_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_13_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_13_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_13_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_13_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_13_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_13_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_13_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_13_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_13_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_map);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *)o;
  if (p->__pyx_v_map) {
    e = (*v)(p->__pyx_v_map, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess *)o;
  tmp = ((PyObject*)p->__pyx_v_map);
  p->__pyx_v_map = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_14_cuMemPoolSetAccess", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_15_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_15_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_15_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_15_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_15_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_15_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_15_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_15_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_15_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_15_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_15_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_15_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_15_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_15_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_15_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_15_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_attributes);
  Py_CLEAR(p->__pyx_v_dataSizes);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *)o;
  if (p->__pyx_v_attributes) {
    e = (*v)(p->__pyx_v_attributes, a); if (e) return e;
  }
  if (p->__pyx_v_dataSizes) {
    e = (*v)(p->__pyx_v_dataSizes, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes *)o;
  tmp = ((PyObject*)p->__pyx_v_attributes);
  p->__pyx_v_attributes = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_dataSizes);
  p->__pyx_v_dataSizes = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_16_cuMemRangeGetAttributes", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_17_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_17_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_17_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_17_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_17_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_17_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_17_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_17_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_17_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_17_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_17_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_17_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_17_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_17_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_17_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_17_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_18_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_18_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_18_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_18_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_18_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_18_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_18_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_18_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_18_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_18_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_18_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_18_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_18_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_18_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_18_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_18_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_attributes);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *)o;
  if (p->__pyx_v_attributes) {
    e = (*v)(p->__pyx_v_attributes, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes *)o;
  tmp = ((PyObject*)p->__pyx_v_attributes);
  p->__pyx_v_attributes = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_19_cuPointerGetAttributes", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_20_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_20_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_20_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_20_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_20_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_20_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_20_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_20_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_20_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_20_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_20_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_20_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_20_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_20_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_20_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_20_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_21_cuStreamUpdateCaptureDependencies", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_22_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_22_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_22_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_22_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_22_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_22_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_22_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_22_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_22_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_22_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_22_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_22_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_22_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_22_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_22_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_22_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_extSemArray);
  Py_CLEAR(p->__pyx_v_paramsArray);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *)o;
  if (p->__pyx_v_extSemArray) {
    e = (*v)(p->__pyx_v_extSemArray, a); if (e) return e;
  }
  if (p->__pyx_v_paramsArray) {
    e = (*v)(p->__pyx_v_paramsArray, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync *)o;
  tmp = ((PyObject*)p->__pyx_v_extSemArray);
  p->__pyx_v_extSemArray = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_paramsArray);
  p->__pyx_v_paramsArray = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_23_cuSignalExternalSemaphoresAsync", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_24_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_24_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_24_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_24_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_24_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_24_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_24_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_24_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_24_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_24_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_24_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_24_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_24_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_24_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_24_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_24_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_25_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_25_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_25_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_25_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_25_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_25_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_25_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_25_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_25_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_25_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_25_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_25_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_25_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_25_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_25_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_25_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_extSemArray);
  Py_CLEAR(p->__pyx_v_paramsArray);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *)o;
  if (p->__pyx_v_extSemArray) {
    e = (*v)(p->__pyx_v_extSemArray, a); if (e) return e;
  }
  if (p->__pyx_v_paramsArray) {
    e = (*v)(p->__pyx_v_paramsArray, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync *)o;
  tmp = ((PyObject*)p->__pyx_v_extSemArray);
  p->__pyx_v_extSemArray = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_paramsArray);
  p->__pyx_v_paramsArray = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_26_cuWaitExternalSemaphoresAsync", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_27_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_27_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_27_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_27_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_27_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_27_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_27_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_27_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_27_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_27_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_27_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_27_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_27_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_27_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_27_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_27_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_28_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_28_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_28_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_28_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_28_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_28_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_28_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_28_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_28_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_28_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_28_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_28_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_28_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_28_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_28_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_28_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_paramArray);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *)o;
  if (p->__pyx_v_paramArray) {
    e = (*v)(p->__pyx_v_paramArray, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp *)o;
  tmp = ((PyObject*)p->__pyx_v_paramArray);
  p->__pyx_v_paramArray = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_29_cuStreamBatchMemOp", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_30_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_30_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_30_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_30_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_30_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_30_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_30_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_30_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_30_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_30_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_30_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_30_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_30_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_30_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_30_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_30_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_launchParamsList);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *)o;
  if (p->__pyx_v_launchParamsList) {
    e = (*v)(p->__pyx_v_launchParamsList, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice *)o;
  tmp = ((PyObject*)p->__pyx_v_launchParamsList);
  p->__pyx_v_launchParamsList = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_32_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_32_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_32_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_32_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_32_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_32_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_32_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_32_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_32_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_32_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_32_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_32_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_32_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_32_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_32_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_32_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_33_cuGraphAddKernelNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_34_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_34_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_34_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_34_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_34_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_34_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_34_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_34_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_34_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_34_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_34_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_34_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_34_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_34_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_34_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_34_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_35_cuGraphAddMemcpyNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_36_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_36_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_36_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_36_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_36_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_36_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_36_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_36_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_36_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_36_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_36_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_36_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_36_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_36_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_36_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_36_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_37_cuGraphAddMemsetNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_38_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_38_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_38_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_38_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_38_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_38_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_38_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_38_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_38_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_38_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_38_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_38_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_38_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_38_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_38_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_38_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_39_cuGraphAddHostNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_40_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_40_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_40_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_40_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_40_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_40_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_40_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_40_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_40_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_40_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_40_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_40_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_40_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_40_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_40_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_40_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_41_cuGraphAddChildGraphNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_42_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_42_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_42_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_42_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_42_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_42_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_42_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_42_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_42_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_42_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_42_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_42_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_42_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_42_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_42_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_42_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_43_cuGraphAddEmptyNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_44_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_44_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_44_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_44_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_44_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_44_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_44_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_44_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_44_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_44_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_44_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_44_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_44_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_44_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_44_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_44_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_45_cuGraphAddEventRecordNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_46_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_46_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_46_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_46_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_46_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_46_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_46_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_46_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_46_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_46_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_46_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_46_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_46_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_46_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_46_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_46_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_47_cuGraphAddEventWaitNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_48_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_48_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_48_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_48_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_48_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_48_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_48_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_48_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_48_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_48_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_48_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_48_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_48_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_48_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_48_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_48_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_50_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_50_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_50_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_50_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_50_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_50_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_50_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_50_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_50_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_50_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_50_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_50_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_50_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_50_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_50_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_50_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_52_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_52_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_52_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_52_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_52_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_52_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_52_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_52_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_52_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_52_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_52_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_52_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_52_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_52_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_52_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_52_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_53_cuGraphAddMemAllocNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_54_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_54_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_54_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_54_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_54_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_54_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_54_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_54_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_54_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_54_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_54_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_54_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_54_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_54_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_54_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_54_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_dependencies);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *)o;
  if (p->__pyx_v_dependencies) {
    e = (*v)(p->__pyx_v_dependencies, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode *)o;
  tmp = ((PyObject*)p->__pyx_v_dependencies);
  p->__pyx_v_dependencies = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_55_cuGraphAddMemFreeNode", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_56_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_56_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_56_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_56_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_56_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_56_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_56_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_56_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_56_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_56_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_56_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_56_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_56_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_56_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_56_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_56_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_from_);
  Py_CLEAR(p->__pyx_v_to);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *)o;
  if (p->__pyx_v_from_) {
    e = (*v)(p->__pyx_v_from_, a); if (e) return e;
  }
  if (p->__pyx_v_to) {
    e = (*v)(p->__pyx_v_to, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies *)o;
  tmp = ((PyObject*)p->__pyx_v_from_);
  p->__pyx_v_from_ = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_to);
  p->__pyx_v_to = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_57_cuGraphAddDependencies", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_58_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_58_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_58_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_58_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_58_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_58_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_58_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_58_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_58_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_58_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_58_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_58_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_58_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_58_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_58_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_58_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_59_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_59_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_59_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_59_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_59_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_59_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_59_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_59_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_59_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_59_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_59_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_59_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_59_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_59_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_59_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_59_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_from_);
  Py_CLEAR(p->__pyx_v_to);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *)o;
  if (p->__pyx_v_from_) {
    e = (*v)(p->__pyx_v_from_, a); if (e) return e;
  }
  if (p->__pyx_v_to) {
    e = (*v)(p->__pyx_v_to, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies *)o;
  tmp = ((PyObject*)p->__pyx_v_from_);
  p->__pyx_v_from_ = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_to);
  p->__pyx_v_to = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_60_cuGraphRemoveDependencies", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies, /*tp_traverse*/
  __pyx_tp_clear_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_61_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_61_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_61_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_61_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_61_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_61_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_61_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_61_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_61_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_61_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_61_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_61_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_61_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_61_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_61_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_61_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *__pyx_freelist_4cuda_4cuda___pyx_scope_struct_62_genexpr[8];
static int __pyx_freecount_4cuda_4cuda___pyx_scope_struct_62_genexpr = 0;

static PyObject *__pyx_tp_new_4cuda_4cuda___pyx_scope_struct_62_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_62_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4cuda_4cuda___pyx_scope_struct_62_genexpr[--__pyx_freecount_4cuda_4cuda___pyx_scope_struct_62_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_62_genexpr(PyObject *o) {
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__x);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4cuda_4cuda___pyx_scope_struct_62_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr)))) {
    __pyx_freelist_4cuda_4cuda___pyx_scope_struct_62_genexpr[__pyx_freecount_4cuda_4cuda___pyx_scope_struct_62_genexpr++] = ((struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_62_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *p = (struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__x) {
    e = (*v)(p->__pyx_v__x, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "cuda.cuda.__pyx_scope_struct_62_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4cuda_4cuda___pyx_scope_struct_62_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cuda_4cuda___pyx_scope_struct_62_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4cuda_4cuda___pyx_scope_struct_62_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cuda_4cuda___pyx_scope_struct_62_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
  0, /*tp_pypy_flags*/
  #endif
};

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_cuda(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_cuda},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "cuda",
    0, /* m_doc */
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    0, /* m_size */
  #else
    -1, /* m_size */
  #endif
    __pyx_methods /* m_methods */,
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    __pyx_moduledef_slots, /* m_slots */
  #else
    NULL, /* m_reload */
  #endif
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
  {&__pyx_kp_s_Access_flags_that_specify_the_l, __pyx_k_Access_flags_that_specify_the_l, sizeof(__pyx_k_Access_flags_that_specify_the_l), 0, 0, 1, 0},
  {&__pyx_n_s_Any, __pyx_k_Any, sizeof(__pyx_k_Any), 0, 0, 1, 1},
  {&__pyx_kp_u_Argument_attributes_is_not_insta, __pyx_k_Argument_attributes_is_not_insta, sizeof(__pyx_k_Argument_attributes_is_not_insta), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_attributes_is_not_insta_2, __pyx_k_Argument_attributes_is_not_insta_2, sizeof(__pyx_k_Argument_attributes_is_not_insta_2), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_dataSizes_is_not_instan, __pyx_k_Argument_dataSizes_is_not_instan, sizeof(__pyx_k_Argument_dataSizes_is_not_instan), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_dependencies_is_not_ins, __pyx_k_Argument_dependencies_is_not_ins, sizeof(__pyx_k_Argument_dependencies_is_not_ins), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_desc_is_not_instance_of, __pyx_k_Argument_desc_is_not_instance_of, sizeof(__pyx_k_Argument_desc_is_not_instance_of), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_extSemArray_is_not_inst, __pyx_k_Argument_extSemArray_is_not_inst, sizeof(__pyx_k_Argument_extSemArray_is_not_inst), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_from__is_not_instance_o, __pyx_k_Argument_from__is_not_instance_o, sizeof(__pyx_k_Argument_from__is_not_instance_o), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_launchParamsList_is_not, __pyx_k_Argument_launchParamsList_is_not, sizeof(__pyx_k_Argument_launchParamsList_is_not), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_mapInfoList_is_not_inst, __pyx_k_Argument_mapInfoList_is_not_inst, sizeof(__pyx_k_Argument_mapInfoList_is_not_inst), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_map_is_not_instance_of, __pyx_k_Argument_map_is_not_instance_of, sizeof(__pyx_k_Argument_map_is_not_instance_of), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_options_is_not_instance, __pyx_k_Argument_options_is_not_instance, sizeof(__pyx_k_Argument_options_is_not_instance), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_paramArray_is_not_insta, __pyx_k_Argument_paramArray_is_not_insta, sizeof(__pyx_k_Argument_paramArray_is_not_insta), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_paramsArray_is_not_inst, __pyx_k_Argument_paramsArray_is_not_inst, sizeof(__pyx_k_Argument_paramsArray_is_not_inst), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_paramsArray_is_not_inst_2, __pyx_k_Argument_paramsArray_is_not_inst_2, sizeof(__pyx_k_Argument_paramsArray_is_not_inst_2), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_paramsArray_is_not_inst_3, __pyx_k_Argument_paramsArray_is_not_inst_3, sizeof(__pyx_k_Argument_paramsArray_is_not_inst_3), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_to_is_not_instance_of_t, __pyx_k_Argument_to_is_not_instance_of_t, sizeof(__pyx_k_Argument_to_is_not_instance_of_t), 0, 1, 0, 0},
  {&__pyx_kp_s_Array_formats, __pyx_k_Array_formats, sizeof(__pyx_k_Array_formats), 0, 0, 1, 0},
  {&__pyx_kp_s_Array_indices_for_cube_faces, __pyx_k_Array_indices_for_cube_faces, sizeof(__pyx_k_Array_indices_for_cube_faces), 0, 0, 1, 0},
  {&__pyx_kp_s_Bitmasks_for_CU_DEVICE_ATTRIBUT, __pyx_k_Bitmasks_for_CU_DEVICE_ATTRIBUT, sizeof(__pyx_k_Bitmasks_for_CU_DEVICE_ATTRIBUT), 0, 0, 1, 0},
  {&__pyx_n_s_ByteCount, __pyx_k_ByteCount, sizeof(__pyx_k_ByteCount), 0, 0, 1, 1},
  {&__pyx_n_s_ByteOffset, __pyx_k_ByteOffset, sizeof(__pyx_k_ByteOffset), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_2DARRAY, __pyx_k_CUDA_ARRAY3D_2DARRAY, sizeof(__pyx_k_CUDA_ARRAY3D_2DARRAY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_COLOR_ATTACHMENT, __pyx_k_CUDA_ARRAY3D_COLOR_ATTACHMENT, sizeof(__pyx_k_CUDA_ARRAY3D_COLOR_ATTACHMENT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_CUBEMAP, __pyx_k_CUDA_ARRAY3D_CUBEMAP, sizeof(__pyx_k_CUDA_ARRAY3D_CUBEMAP), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DEPTH_TEXTURE, __pyx_k_CUDA_ARRAY3D_DEPTH_TEXTURE, sizeof(__pyx_k_CUDA_ARRAY3D_DEPTH_TEXTURE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_ARRAY3D_DESCRIPTOR, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st___red, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st___red, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st___red), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st___set, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st___set, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st___set), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st_getPt, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st_getPt, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR_st_getPt), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_v2, __pyx_k_CUDA_ARRAY3D_DESCRIPTOR_v2, sizeof(__pyx_k_CUDA_ARRAY3D_DESCRIPTOR_v2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_LAYERED, __pyx_k_CUDA_ARRAY3D_LAYERED, sizeof(__pyx_k_CUDA_ARRAY3D_LAYERED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_SPARSE, __pyx_k_CUDA_ARRAY3D_SPARSE, sizeof(__pyx_k_CUDA_ARRAY3D_SPARSE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_SURFACE_LDST, __pyx_k_CUDA_ARRAY3D_SURFACE_LDST, sizeof(__pyx_k_CUDA_ARRAY3D_SURFACE_LDST), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY3D_TEXTURE_GATHER, __pyx_k_CUDA_ARRAY3D_TEXTURE_GATHER, sizeof(__pyx_k_CUDA_ARRAY3D_TEXTURE_GATHER), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_DESCRIPTOR, __pyx_k_CUDA_ARRAY_DESCRIPTOR, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_ARRAY_DESCRIPTOR, __pyx_k_CUDA_ARRAY_DESCRIPTOR, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st, __pyx_k_CUDA_ARRAY_DESCRIPTOR_st, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st___reduc, __pyx_k_CUDA_ARRAY_DESCRIPTOR_st___reduc, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR_st___reduc), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st___setst, __pyx_k_CUDA_ARRAY_DESCRIPTOR_st___setst, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR_st___setst), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st_getPtr, __pyx_k_CUDA_ARRAY_DESCRIPTOR_st_getPtr, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_DESCRIPTOR_v2, __pyx_k_CUDA_ARRAY_DESCRIPTOR_v2, sizeof(__pyx_k_CUDA_ARRAY_DESCRIPTOR_v2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_2, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_2, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_3, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_3, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_4, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_4, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_st_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_2, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_2, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_3, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_3, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_4, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_4, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_5, __pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_5, sizeof(__pyx_k_CUDA_ARRAY_SPARSE_PROPERTIES_v1_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_COOPERATIVE_LAUNCH_MULTI_DE, __pyx_k_CUDA_COOPERATIVE_LAUNCH_MULTI_DE, sizeof(__pyx_k_CUDA_COOPERATIVE_LAUNCH_MULTI_DE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_COOPERATIVE_LAUNCH_MULTI_DE_2, __pyx_k_CUDA_COOPERATIVE_LAUNCH_MULTI_DE_2, sizeof(__pyx_k_CUDA_COOPERATIVE_LAUNCH_MULTI_DE_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ALREADY_ACQUIRED, __pyx_k_CUDA_ERROR_ALREADY_ACQUIRED, sizeof(__pyx_k_CUDA_ERROR_ALREADY_ACQUIRED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ALREADY_MAPPED, __pyx_k_CUDA_ERROR_ALREADY_MAPPED, sizeof(__pyx_k_CUDA_ERROR_ALREADY_MAPPED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ARRAY_IS_MAPPED, __pyx_k_CUDA_ERROR_ARRAY_IS_MAPPED, sizeof(__pyx_k_CUDA_ERROR_ARRAY_IS_MAPPED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ASSERT, __pyx_k_CUDA_ERROR_ASSERT, sizeof(__pyx_k_CUDA_ERROR_ASSERT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_CAPTURED_EVENT, __pyx_k_CUDA_ERROR_CAPTURED_EVENT, sizeof(__pyx_k_CUDA_ERROR_CAPTURED_EVENT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_COMPAT_NOT_SUPPORTED, __pyx_k_CUDA_ERROR_COMPAT_NOT_SUPPORTED, sizeof(__pyx_k_CUDA_ERROR_COMPAT_NOT_SUPPORTED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_CONTEXT_ALREADY_CURRE, __pyx_k_CUDA_ERROR_CONTEXT_ALREADY_CURRE, sizeof(__pyx_k_CUDA_ERROR_CONTEXT_ALREADY_CURRE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_CONTEXT_ALREADY_IN_US, __pyx_k_CUDA_ERROR_CONTEXT_ALREADY_IN_US, sizeof(__pyx_k_CUDA_ERROR_CONTEXT_ALREADY_IN_US), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_CONTEXT_IS_DESTROYED, __pyx_k_CUDA_ERROR_CONTEXT_IS_DESTROYED, sizeof(__pyx_k_CUDA_ERROR_CONTEXT_IS_DESTROYED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_COOPERATIVE_LAUNCH_TO, __pyx_k_CUDA_ERROR_COOPERATIVE_LAUNCH_TO, sizeof(__pyx_k_CUDA_ERROR_COOPERATIVE_LAUNCH_TO), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_DEINITIALIZED, __pyx_k_CUDA_ERROR_DEINITIALIZED, sizeof(__pyx_k_CUDA_ERROR_DEINITIALIZED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_DEVICE_NOT_LICENSED, __pyx_k_CUDA_ERROR_DEVICE_NOT_LICENSED, sizeof(__pyx_k_CUDA_ERROR_DEVICE_NOT_LICENSED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ECC_UNCORRECTABLE, __pyx_k_CUDA_ERROR_ECC_UNCORRECTABLE, sizeof(__pyx_k_CUDA_ERROR_ECC_UNCORRECTABLE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_EXTERNAL_DEVICE, __pyx_k_CUDA_ERROR_EXTERNAL_DEVICE, sizeof(__pyx_k_CUDA_ERROR_EXTERNAL_DEVICE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_FILE_NOT_FOUND, __pyx_k_CUDA_ERROR_FILE_NOT_FOUND, sizeof(__pyx_k_CUDA_ERROR_FILE_NOT_FOUND), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAI, __pyx_k_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAI, sizeof(__pyx_k_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAI), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_HARDWARE_STACK_ERROR, __pyx_k_CUDA_ERROR_HARDWARE_STACK_ERROR, sizeof(__pyx_k_CUDA_ERROR_HARDWARE_STACK_ERROR), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_HOST_MEMORY_ALREADY_R, __pyx_k_CUDA_ERROR_HOST_MEMORY_ALREADY_R, sizeof(__pyx_k_CUDA_ERROR_HOST_MEMORY_ALREADY_R), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_HOST_MEMORY_NOT_REGIS, __pyx_k_CUDA_ERROR_HOST_MEMORY_NOT_REGIS, sizeof(__pyx_k_CUDA_ERROR_HOST_MEMORY_NOT_REGIS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ILLEGAL_ADDRESS, __pyx_k_CUDA_ERROR_ILLEGAL_ADDRESS, sizeof(__pyx_k_CUDA_ERROR_ILLEGAL_ADDRESS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ILLEGAL_INSTRUCTION, __pyx_k_CUDA_ERROR_ILLEGAL_INSTRUCTION, sizeof(__pyx_k_CUDA_ERROR_ILLEGAL_INSTRUCTION), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_ILLEGAL_STATE, __pyx_k_CUDA_ERROR_ILLEGAL_STATE, sizeof(__pyx_k_CUDA_ERROR_ILLEGAL_STATE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_ADDRESS_SPACE, __pyx_k_CUDA_ERROR_INVALID_ADDRESS_SPACE, sizeof(__pyx_k_CUDA_ERROR_INVALID_ADDRESS_SPACE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_CONTEXT, __pyx_k_CUDA_ERROR_INVALID_CONTEXT, sizeof(__pyx_k_CUDA_ERROR_INVALID_CONTEXT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_DEVICE, __pyx_k_CUDA_ERROR_INVALID_DEVICE, sizeof(__pyx_k_CUDA_ERROR_INVALID_DEVICE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_GRAPHICS_CONT, __pyx_k_CUDA_ERROR_INVALID_GRAPHICS_CONT, sizeof(__pyx_k_CUDA_ERROR_INVALID_GRAPHICS_CONT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_HANDLE, __pyx_k_CUDA_ERROR_INVALID_HANDLE, sizeof(__pyx_k_CUDA_ERROR_INVALID_HANDLE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_IMAGE, __pyx_k_CUDA_ERROR_INVALID_IMAGE, sizeof(__pyx_k_CUDA_ERROR_INVALID_IMAGE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_PC, __pyx_k_CUDA_ERROR_INVALID_PC, sizeof(__pyx_k_CUDA_ERROR_INVALID_PC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_PTX, __pyx_k_CUDA_ERROR_INVALID_PTX, sizeof(__pyx_k_CUDA_ERROR_INVALID_PTX), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_SOURCE, __pyx_k_CUDA_ERROR_INVALID_SOURCE, sizeof(__pyx_k_CUDA_ERROR_INVALID_SOURCE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_INVALID_VALUE, __pyx_k_CUDA_ERROR_INVALID_VALUE, sizeof(__pyx_k_CUDA_ERROR_INVALID_VALUE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_JIT_COMPILATION_DISAB, __pyx_k_CUDA_ERROR_JIT_COMPILATION_DISAB, sizeof(__pyx_k_CUDA_ERROR_JIT_COMPILATION_DISAB), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_JIT_COMPILER_NOT_FOUN, __pyx_k_CUDA_ERROR_JIT_COMPILER_NOT_FOUN, sizeof(__pyx_k_CUDA_ERROR_JIT_COMPILER_NOT_FOUN), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_LAUNCH_FAILED, __pyx_k_CUDA_ERROR_LAUNCH_FAILED, sizeof(__pyx_k_CUDA_ERROR_LAUNCH_FAILED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_LAUNCH_INCOMPATIBLE_T, __pyx_k_CUDA_ERROR_LAUNCH_INCOMPATIBLE_T, sizeof(__pyx_k_CUDA_ERROR_LAUNCH_INCOMPATIBLE_T), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_LAUNCH_OUT_OF_RESOURC, __pyx_k_CUDA_ERROR_LAUNCH_OUT_OF_RESOURC, sizeof(__pyx_k_CUDA_ERROR_LAUNCH_OUT_OF_RESOURC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_LAUNCH_TIMEOUT, __pyx_k_CUDA_ERROR_LAUNCH_TIMEOUT, sizeof(__pyx_k_CUDA_ERROR_LAUNCH_TIMEOUT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MAP_FAILED, __pyx_k_CUDA_ERROR_MAP_FAILED, sizeof(__pyx_k_CUDA_ERROR_MAP_FAILED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MISALIGNED_ADDRESS, __pyx_k_CUDA_ERROR_MISALIGNED_ADDRESS, sizeof(__pyx_k_CUDA_ERROR_MISALIGNED_ADDRESS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MPS_CONNECTION_FAILED, __pyx_k_CUDA_ERROR_MPS_CONNECTION_FAILED, sizeof(__pyx_k_CUDA_ERROR_MPS_CONNECTION_FAILED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MPS_MAX_CLIENTS_REACH, __pyx_k_CUDA_ERROR_MPS_MAX_CLIENTS_REACH, sizeof(__pyx_k_CUDA_ERROR_MPS_MAX_CLIENTS_REACH), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MPS_MAX_CONNECTIONS_R, __pyx_k_CUDA_ERROR_MPS_MAX_CONNECTIONS_R, sizeof(__pyx_k_CUDA_ERROR_MPS_MAX_CONNECTIONS_R), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MPS_RPC_FAILURE, __pyx_k_CUDA_ERROR_MPS_RPC_FAILURE, sizeof(__pyx_k_CUDA_ERROR_MPS_RPC_FAILURE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_MPS_SERVER_NOT_READY, __pyx_k_CUDA_ERROR_MPS_SERVER_NOT_READY, sizeof(__pyx_k_CUDA_ERROR_MPS_SERVER_NOT_READY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_FOUND, __pyx_k_CUDA_ERROR_NOT_FOUND, sizeof(__pyx_k_CUDA_ERROR_NOT_FOUND), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_INITIALIZED, __pyx_k_CUDA_ERROR_NOT_INITIALIZED, sizeof(__pyx_k_CUDA_ERROR_NOT_INITIALIZED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_MAPPED, __pyx_k_CUDA_ERROR_NOT_MAPPED, sizeof(__pyx_k_CUDA_ERROR_NOT_MAPPED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_MAPPED_AS_ARRAY, __pyx_k_CUDA_ERROR_NOT_MAPPED_AS_ARRAY, sizeof(__pyx_k_CUDA_ERROR_NOT_MAPPED_AS_ARRAY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_MAPPED_AS_POINTER, __pyx_k_CUDA_ERROR_NOT_MAPPED_AS_POINTER, sizeof(__pyx_k_CUDA_ERROR_NOT_MAPPED_AS_POINTER), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_PERMITTED, __pyx_k_CUDA_ERROR_NOT_PERMITTED, sizeof(__pyx_k_CUDA_ERROR_NOT_PERMITTED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_READY, __pyx_k_CUDA_ERROR_NOT_READY, sizeof(__pyx_k_CUDA_ERROR_NOT_READY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NOT_SUPPORTED, __pyx_k_CUDA_ERROR_NOT_SUPPORTED, sizeof(__pyx_k_CUDA_ERROR_NOT_SUPPORTED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NO_BINARY_FOR_GPU, __pyx_k_CUDA_ERROR_NO_BINARY_FOR_GPU, sizeof(__pyx_k_CUDA_ERROR_NO_BINARY_FOR_GPU), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NO_DEVICE, __pyx_k_CUDA_ERROR_NO_DEVICE, sizeof(__pyx_k_CUDA_ERROR_NO_DEVICE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_NVLINK_UNCORRECTABLE, __pyx_k_CUDA_ERROR_NVLINK_UNCORRECTABLE, sizeof(__pyx_k_CUDA_ERROR_NVLINK_UNCORRECTABLE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_OPERATING_SYSTEM, __pyx_k_CUDA_ERROR_OPERATING_SYSTEM, sizeof(__pyx_k_CUDA_ERROR_OPERATING_SYSTEM), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_OUT_OF_MEMORY, __pyx_k_CUDA_ERROR_OUT_OF_MEMORY, sizeof(__pyx_k_CUDA_ERROR_OUT_OF_MEMORY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PEER_ACCESS_ALREADY_E, __pyx_k_CUDA_ERROR_PEER_ACCESS_ALREADY_E, sizeof(__pyx_k_CUDA_ERROR_PEER_ACCESS_ALREADY_E), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PEER_ACCESS_NOT_ENABL, __pyx_k_CUDA_ERROR_PEER_ACCESS_NOT_ENABL, sizeof(__pyx_k_CUDA_ERROR_PEER_ACCESS_NOT_ENABL), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PEER_ACCESS_UNSUPPORT, __pyx_k_CUDA_ERROR_PEER_ACCESS_UNSUPPORT, sizeof(__pyx_k_CUDA_ERROR_PEER_ACCESS_UNSUPPORT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PRIMARY_CONTEXT_ACTIV, __pyx_k_CUDA_ERROR_PRIMARY_CONTEXT_ACTIV, sizeof(__pyx_k_CUDA_ERROR_PRIMARY_CONTEXT_ACTIV), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PROFILER_ALREADY_STAR, __pyx_k_CUDA_ERROR_PROFILER_ALREADY_STAR, sizeof(__pyx_k_CUDA_ERROR_PROFILER_ALREADY_STAR), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PROFILER_ALREADY_STOP, __pyx_k_CUDA_ERROR_PROFILER_ALREADY_STOP, sizeof(__pyx_k_CUDA_ERROR_PROFILER_ALREADY_STOP), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PROFILER_DISABLED, __pyx_k_CUDA_ERROR_PROFILER_DISABLED, sizeof(__pyx_k_CUDA_ERROR_PROFILER_DISABLED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_PROFILER_NOT_INITIALI, __pyx_k_CUDA_ERROR_PROFILER_NOT_INITIALI, sizeof(__pyx_k_CUDA_ERROR_PROFILER_NOT_INITIALI), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_SHARED_OBJECT_INIT_FA, __pyx_k_CUDA_ERROR_SHARED_OBJECT_INIT_FA, sizeof(__pyx_k_CUDA_ERROR_SHARED_OBJECT_INIT_FA), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_SHARED_OBJECT_SYMBOL, __pyx_k_CUDA_ERROR_SHARED_OBJECT_SYMBOL, sizeof(__pyx_k_CUDA_ERROR_SHARED_OBJECT_SYMBOL), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_IMPLIC, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_IMPLIC, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_IMPLIC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_INVALI, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_INVALI, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_INVALI), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_ISOLAT, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_ISOLAT, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_ISOLAT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_MERGE, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_MERGE, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_MERGE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNJOIN, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNJOIN, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNJOIN), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNMATC, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNMATC, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNMATC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNSUPP, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNSUPP, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_UNSUPP), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_WRONG, __pyx_k_CUDA_ERROR_STREAM_CAPTURE_WRONG, sizeof(__pyx_k_CUDA_ERROR_STREAM_CAPTURE_WRONG), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_STUB_LIBRARY, __pyx_k_CUDA_ERROR_STUB_LIBRARY, sizeof(__pyx_k_CUDA_ERROR_STUB_LIBRARY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_SYSTEM_DRIVER_MISMATC, __pyx_k_CUDA_ERROR_SYSTEM_DRIVER_MISMATC, sizeof(__pyx_k_CUDA_ERROR_SYSTEM_DRIVER_MISMATC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_SYSTEM_NOT_READY, __pyx_k_CUDA_ERROR_SYSTEM_NOT_READY, sizeof(__pyx_k_CUDA_ERROR_SYSTEM_NOT_READY), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_TIMEOUT, __pyx_k_CUDA_ERROR_TIMEOUT, sizeof(__pyx_k_CUDA_ERROR_TIMEOUT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_TOO_MANY_PEERS, __pyx_k_CUDA_ERROR_TOO_MANY_PEERS, sizeof(__pyx_k_CUDA_ERROR_TOO_MANY_PEERS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_UNKNOWN, __pyx_k_CUDA_ERROR_UNKNOWN, sizeof(__pyx_k_CUDA_ERROR_UNKNOWN), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_UNMAP_FAILED, __pyx_k_CUDA_ERROR_UNMAP_FAILED, sizeof(__pyx_k_CUDA_ERROR_UNMAP_FAILED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_UNSUPPORTED_EXEC_AFFI, __pyx_k_CUDA_ERROR_UNSUPPORTED_EXEC_AFFI, sizeof(__pyx_k_CUDA_ERROR_UNSUPPORTED_EXEC_AFFI), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_UNSUPPORTED_LIMIT, __pyx_k_CUDA_ERROR_UNSUPPORTED_LIMIT, sizeof(__pyx_k_CUDA_ERROR_UNSUPPORTED_LIMIT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_ERROR_UNSUPPORTED_PTX_VERSI, __pyx_k_CUDA_ERROR_UNSUPPORTED_PTX_VERSI, sizeof(__pyx_k_CUDA_ERROR_UNSUPPORTED_PTX_VERSI), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_2, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_2, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_4, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_4, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_5, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_5, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_6, __pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_6, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_DEDICATED, __pyx_k_CUDA_EXTERNAL_MEMORY_DEDICATED, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_DEDICATED), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_2, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_2, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_4, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_4, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_5, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_5, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_6, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_6, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_2, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_2, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_3, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_4, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_4, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_5, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_5, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_6, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_6, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_7, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_7, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_7), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_8, __pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_8, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_HANDLE_DES_8), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_2, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_2, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_4, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_4, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_5, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_5, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_6, __pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_6, sizeof(__pyx_k_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_2, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_2, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_4, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_4, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_5, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_5, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_6, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_6, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_7, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_7, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_7), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_8, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_8, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_8), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_2, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_2, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_4, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_4, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_5, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_5, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_6, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_6, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_10, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_10, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_10), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_11, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_11, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_11), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_12, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_12, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_12), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_13, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_13, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_13), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_14, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_14, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_14), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_15, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_15, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_15), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_16, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_16, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_16), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_2, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_2, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_4, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_4, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_5, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_5, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_6, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_6, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_7, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_7, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_7), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_8, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_8, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_8), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_9, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_9, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_9), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_2, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_2, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_4, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_4, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_5, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_5, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_6, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_6, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_S, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_S, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_S), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_2, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_2, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_4, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_4, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_5, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_5, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_6, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_6, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_10, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_10, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_10), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_11, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_11, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_11), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_12, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_12, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_12), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_13, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_13, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_13), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_14, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_14, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_14), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_15, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_15, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_15), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_16, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_16, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_16), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_2, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_2, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_3, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_3, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_4, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_4, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_5, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_5, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_6, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_6, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_7, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_7, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_7), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_8, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_8, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_8), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_9, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_9, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_9), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKI, __pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKI, sizeof(__pyx_k_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKI), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_2, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_2, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_4, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_4, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_5, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_5, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_6, __pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_6, sizeof(__pyx_k_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_EXT_SEM_WAIT_NODE_PARAMS, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1, __pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1, sizeof(__pyx_k_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO, __pyx_k_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO, sizeof(__pyx_k_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_HOST_NODE_PARAMS, __pyx_k_CUDA_HOST_NODE_PARAMS, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_HOST_NODE_PARAMS, __pyx_k_CUDA_HOST_NODE_PARAMS, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_HOST_NODE_PARAMS_st, __pyx_k_CUDA_HOST_NODE_PARAMS_st, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_HOST_NODE_PARAMS_st___reduc, __pyx_k_CUDA_HOST_NODE_PARAMS_st___reduc, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS_st___reduc), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_HOST_NODE_PARAMS_st___setst, __pyx_k_CUDA_HOST_NODE_PARAMS_st___setst, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS_st___setst), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_HOST_NODE_PARAMS_st_getPtr, __pyx_k_CUDA_HOST_NODE_PARAMS_st_getPtr, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_HOST_NODE_PARAMS_v1, __pyx_k_CUDA_HOST_NODE_PARAMS_v1, sizeof(__pyx_k_CUDA_HOST_NODE_PARAMS_v1), 0, 0, 1, 1},
  {&__pyx_kp_s_CUDA_Ipc_Mem_Flags, __pyx_k_CUDA_Ipc_Mem_Flags, sizeof(__pyx_k_CUDA_Ipc_Mem_Flags), 0, 0, 1, 0},
  {&__pyx_n_s_CUDA_KERNEL_NODE_PARAMS, __pyx_k_CUDA_KERNEL_NODE_PARAMS, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_KERNEL_NODE_PARAMS, __pyx_k_CUDA_KERNEL_NODE_PARAMS, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st, __pyx_k_CUDA_KERNEL_NODE_PARAMS_st, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st___red, __pyx_k_CUDA_KERNEL_NODE_PARAMS_st___red, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS_st___red), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st___set, __pyx_k_CUDA_KERNEL_NODE_PARAMS_st___set, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS_st___set), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st_getPt, __pyx_k_CUDA_KERNEL_NODE_PARAMS_st_getPt, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS_st_getPt), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_KERNEL_NODE_PARAMS_v1, __pyx_k_CUDA_KERNEL_NODE_PARAMS_v1, sizeof(__pyx_k_CUDA_KERNEL_NODE_PARAMS_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_LAUNCH_PARAMS, __pyx_k_CUDA_LAUNCH_PARAMS, sizeof(__pyx_k_CUDA_LAUNCH_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_LAUNCH_PARAMS_st, __pyx_k_CUDA_LAUNCH_PARAMS_st, sizeof(__pyx_k_CUDA_LAUNCH_PARAMS_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_LAUNCH_PARAMS_st___reduce_c, __pyx_k_CUDA_LAUNCH_PARAMS_st___reduce_c, sizeof(__pyx_k_CUDA_LAUNCH_PARAMS_st___reduce_c), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_LAUNCH_PARAMS_st___setstate, __pyx_k_CUDA_LAUNCH_PARAMS_st___setstate, sizeof(__pyx_k_CUDA_LAUNCH_PARAMS_st___setstate), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_LAUNCH_PARAMS_st_getPtr, __pyx_k_CUDA_LAUNCH_PARAMS_st_getPtr, sizeof(__pyx_k_CUDA_LAUNCH_PARAMS_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_LAUNCH_PARAMS_v1, __pyx_k_CUDA_LAUNCH_PARAMS_v1, sizeof(__pyx_k_CUDA_LAUNCH_PARAMS_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY2D, __pyx_k_CUDA_MEMCPY2D, sizeof(__pyx_k_CUDA_MEMCPY2D), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_MEMCPY2D, __pyx_k_CUDA_MEMCPY2D, sizeof(__pyx_k_CUDA_MEMCPY2D), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_MEMCPY2D_st, __pyx_k_CUDA_MEMCPY2D_st, sizeof(__pyx_k_CUDA_MEMCPY2D_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY2D_st___reduce_cython, __pyx_k_CUDA_MEMCPY2D_st___reduce_cython, sizeof(__pyx_k_CUDA_MEMCPY2D_st___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY2D_st___setstate_cyth, __pyx_k_CUDA_MEMCPY2D_st___setstate_cyth, sizeof(__pyx_k_CUDA_MEMCPY2D_st___setstate_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY2D_st_getPtr, __pyx_k_CUDA_MEMCPY2D_st_getPtr, sizeof(__pyx_k_CUDA_MEMCPY2D_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY2D_v2, __pyx_k_CUDA_MEMCPY2D_v2, sizeof(__pyx_k_CUDA_MEMCPY2D_v2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D, __pyx_k_CUDA_MEMCPY3D, sizeof(__pyx_k_CUDA_MEMCPY3D), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_MEMCPY3D, __pyx_k_CUDA_MEMCPY3D, sizeof(__pyx_k_CUDA_MEMCPY3D), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_PEER, __pyx_k_CUDA_MEMCPY3D_PEER, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_MEMCPY3D_PEER, __pyx_k_CUDA_MEMCPY3D_PEER, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_PEER_st, __pyx_k_CUDA_MEMCPY3D_PEER_st, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_PEER_st___reduce_c, __pyx_k_CUDA_MEMCPY3D_PEER_st___reduce_c, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER_st___reduce_c), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_PEER_st___setstate, __pyx_k_CUDA_MEMCPY3D_PEER_st___setstate, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER_st___setstate), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_PEER_st_getPtr, __pyx_k_CUDA_MEMCPY3D_PEER_st_getPtr, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_PEER_v1, __pyx_k_CUDA_MEMCPY3D_PEER_v1, sizeof(__pyx_k_CUDA_MEMCPY3D_PEER_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_st, __pyx_k_CUDA_MEMCPY3D_st, sizeof(__pyx_k_CUDA_MEMCPY3D_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_st___reduce_cython, __pyx_k_CUDA_MEMCPY3D_st___reduce_cython, sizeof(__pyx_k_CUDA_MEMCPY3D_st___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_st___setstate_cyth, __pyx_k_CUDA_MEMCPY3D_st___setstate_cyth, sizeof(__pyx_k_CUDA_MEMCPY3D_st___setstate_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_st_getPtr, __pyx_k_CUDA_MEMCPY3D_st_getPtr, sizeof(__pyx_k_CUDA_MEMCPY3D_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMCPY3D_v2, __pyx_k_CUDA_MEMCPY3D_v2, sizeof(__pyx_k_CUDA_MEMCPY3D_v2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMSET_NODE_PARAMS, __pyx_k_CUDA_MEMSET_NODE_PARAMS, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_MEMSET_NODE_PARAMS, __pyx_k_CUDA_MEMSET_NODE_PARAMS, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st, __pyx_k_CUDA_MEMSET_NODE_PARAMS_st, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st___red, __pyx_k_CUDA_MEMSET_NODE_PARAMS_st___red, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS_st___red), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st___set, __pyx_k_CUDA_MEMSET_NODE_PARAMS_st___set, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS_st___set), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st_getPt, __pyx_k_CUDA_MEMSET_NODE_PARAMS_st_getPt, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS_st_getPt), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEMSET_NODE_PARAMS_v1, __pyx_k_CUDA_MEMSET_NODE_PARAMS_v1, sizeof(__pyx_k_CUDA_MEMSET_NODE_PARAMS_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS, __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS, sizeof(__pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_MEM_ALLOC_NODE_PARAMS, __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS, sizeof(__pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st, __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st, sizeof(__pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_2, __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_2, sizeof(__pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_3, __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_3, sizeof(__pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_ge, __pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_ge, sizeof(__pyx_k_CUDA_MEM_ALLOC_NODE_PARAMS_st_ge), 0, 0, 1, 1},
  {&__pyx_kp_s_CUDA_Mem_Attach_Flags, __pyx_k_CUDA_Mem_Attach_Flags, sizeof(__pyx_k_CUDA_Mem_Attach_Flags), 0, 0, 1, 0},
  {&__pyx_n_s_CUDA_NVSCISYNC_ATTR_SIGNAL, __pyx_k_CUDA_NVSCISYNC_ATTR_SIGNAL, sizeof(__pyx_k_CUDA_NVSCISYNC_ATTR_SIGNAL), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_NVSCISYNC_ATTR_WAIT, __pyx_k_CUDA_NVSCISYNC_ATTR_WAIT, sizeof(__pyx_k_CUDA_NVSCISYNC_ATTR_WAIT), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_ACCESS_FL, __pyx_k_CUDA_POINTER_ATTRIBUTE_ACCESS_FL, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_ACCESS_FL), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN, __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_2, __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_2, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_3, __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_3, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_4, __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_4, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_5, __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_5, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_6, __pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_6, sizeof(__pyx_k_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC, __pyx_k_CUDA_RESOURCE_DESC, sizeof(__pyx_k_CUDA_RESOURCE_DESC), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_RESOURCE_DESC, __pyx_k_CUDA_RESOURCE_DESC, sizeof(__pyx_k_CUDA_RESOURCE_DESC), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_st, __pyx_k_CUDA_RESOURCE_DESC_st, sizeof(__pyx_k_CUDA_RESOURCE_DESC_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_st___reduce_c, __pyx_k_CUDA_RESOURCE_DESC_st___reduce_c, sizeof(__pyx_k_CUDA_RESOURCE_DESC_st___reduce_c), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_st___setstate, __pyx_k_CUDA_RESOURCE_DESC_st___setstate, sizeof(__pyx_k_CUDA_RESOURCE_DESC_st___setstate), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_st_getPtr, __pyx_k_CUDA_RESOURCE_DESC_st_getPtr, sizeof(__pyx_k_CUDA_RESOURCE_DESC_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1, __pyx_k_CUDA_RESOURCE_DESC_v1, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_10, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_10, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_10), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_11, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_11, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_11), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_12, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_12, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_12), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_13, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_13, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_13), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_14, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_14, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_14), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_15, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_15, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_15), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_16, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_16, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_16), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_17, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_17, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_17), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_18, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_18, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_18), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_19, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_19, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_19), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_2, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_2, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_20, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_20, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_20), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_21, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_21, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_21), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_22, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_22, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_22), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_23, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_23, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_23), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_24, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_24, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_24), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_3, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_3, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_4, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_4, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_5, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_5, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_6, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_6, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_7, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_7, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_7), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_8, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_8, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_8), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_9, __pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_9, sizeof(__pyx_k_CUDA_RESOURCE_DESC_v1_CUDA_RESO_9), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_VIEW_DESC, __pyx_k_CUDA_RESOURCE_VIEW_DESC, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_RESOURCE_VIEW_DESC, __pyx_k_CUDA_RESOURCE_VIEW_DESC, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st, __pyx_k_CUDA_RESOURCE_VIEW_DESC_st, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st___red, __pyx_k_CUDA_RESOURCE_VIEW_DESC_st___red, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC_st___red), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st___set, __pyx_k_CUDA_RESOURCE_VIEW_DESC_st___set, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC_st___set), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st_getPt, __pyx_k_CUDA_RESOURCE_VIEW_DESC_st_getPt, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC_st_getPt), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_RESOURCE_VIEW_DESC_v1, __pyx_k_CUDA_RESOURCE_VIEW_DESC_v1, sizeof(__pyx_k_CUDA_RESOURCE_VIEW_DESC_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_SUCCESS, __pyx_k_CUDA_SUCCESS, sizeof(__pyx_k_CUDA_SUCCESS), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_TEXTURE_DESC, __pyx_k_CUDA_TEXTURE_DESC, sizeof(__pyx_k_CUDA_TEXTURE_DESC), 0, 0, 1, 1},
  {&__pyx_n_u_CUDA_TEXTURE_DESC, __pyx_k_CUDA_TEXTURE_DESC, sizeof(__pyx_k_CUDA_TEXTURE_DESC), 0, 1, 0, 1},
  {&__pyx_n_s_CUDA_TEXTURE_DESC_st, __pyx_k_CUDA_TEXTURE_DESC_st, sizeof(__pyx_k_CUDA_TEXTURE_DESC_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_TEXTURE_DESC_st___reduce_cy, __pyx_k_CUDA_TEXTURE_DESC_st___reduce_cy, sizeof(__pyx_k_CUDA_TEXTURE_DESC_st___reduce_cy), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_TEXTURE_DESC_st___setstate, __pyx_k_CUDA_TEXTURE_DESC_st___setstate, sizeof(__pyx_k_CUDA_TEXTURE_DESC_st___setstate), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_TEXTURE_DESC_st_getPtr, __pyx_k_CUDA_TEXTURE_DESC_st_getPtr, sizeof(__pyx_k_CUDA_TEXTURE_DESC_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_TEXTURE_DESC_v1, __pyx_k_CUDA_TEXTURE_DESC_v1, sizeof(__pyx_k_CUDA_TEXTURE_DESC_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUDA_VERSION, __pyx_k_CUDA_VERSION, sizeof(__pyx_k_CUDA_VERSION), 0, 0, 1, 1},
  {&__pyx_kp_s_CUDA_memory_pool_attributes, __pyx_k_CUDA_memory_pool_attributes, sizeof(__pyx_k_CUDA_memory_pool_attributes), 0, 0, 1, 0},
  {&__pyx_n_s_CUGPUDirectRDMAWritesOrdering, __pyx_k_CUGPUDirectRDMAWritesOrdering, sizeof(__pyx_k_CUGPUDirectRDMAWritesOrdering), 0, 0, 1, 1},
  {&__pyx_n_s_CU_ACCESS_PROPERTY_NORMAL, __pyx_k_CU_ACCESS_PROPERTY_NORMAL, sizeof(__pyx_k_CU_ACCESS_PROPERTY_NORMAL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_ACCESS_PROPERTY_PERSISTING, __pyx_k_CU_ACCESS_PROPERTY_PERSISTING, sizeof(__pyx_k_CU_ACCESS_PROPERTY_PERSISTING), 0, 0, 1, 1},
  {&__pyx_n_s_CU_ACCESS_PROPERTY_STREAMING, __pyx_k_CU_ACCESS_PROPERTY_STREAMING, sizeof(__pyx_k_CU_ACCESS_PROPERTY_STREAMING), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC1_UNORM, __pyx_k_CU_AD_FORMAT_BC1_UNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC1_UNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC1_UNORM_SRGB, __pyx_k_CU_AD_FORMAT_BC1_UNORM_SRGB, sizeof(__pyx_k_CU_AD_FORMAT_BC1_UNORM_SRGB), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC2_UNORM, __pyx_k_CU_AD_FORMAT_BC2_UNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC2_UNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC2_UNORM_SRGB, __pyx_k_CU_AD_FORMAT_BC2_UNORM_SRGB, sizeof(__pyx_k_CU_AD_FORMAT_BC2_UNORM_SRGB), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC3_UNORM, __pyx_k_CU_AD_FORMAT_BC3_UNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC3_UNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC3_UNORM_SRGB, __pyx_k_CU_AD_FORMAT_BC3_UNORM_SRGB, sizeof(__pyx_k_CU_AD_FORMAT_BC3_UNORM_SRGB), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC4_SNORM, __pyx_k_CU_AD_FORMAT_BC4_SNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC4_SNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC4_UNORM, __pyx_k_CU_AD_FORMAT_BC4_UNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC4_UNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC5_SNORM, __pyx_k_CU_AD_FORMAT_BC5_SNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC5_SNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC5_UNORM, __pyx_k_CU_AD_FORMAT_BC5_UNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC5_UNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC6H_SF16, __pyx_k_CU_AD_FORMAT_BC6H_SF16, sizeof(__pyx_k_CU_AD_FORMAT_BC6H_SF16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC6H_UF16, __pyx_k_CU_AD_FORMAT_BC6H_UF16, sizeof(__pyx_k_CU_AD_FORMAT_BC6H_UF16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC7_UNORM, __pyx_k_CU_AD_FORMAT_BC7_UNORM, sizeof(__pyx_k_CU_AD_FORMAT_BC7_UNORM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_BC7_UNORM_SRGB, __pyx_k_CU_AD_FORMAT_BC7_UNORM_SRGB, sizeof(__pyx_k_CU_AD_FORMAT_BC7_UNORM_SRGB), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_FLOAT, __pyx_k_CU_AD_FORMAT_FLOAT, sizeof(__pyx_k_CU_AD_FORMAT_FLOAT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_HALF, __pyx_k_CU_AD_FORMAT_HALF, sizeof(__pyx_k_CU_AD_FORMAT_HALF), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_NV12, __pyx_k_CU_AD_FORMAT_NV12, sizeof(__pyx_k_CU_AD_FORMAT_NV12), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SIGNED_INT16, __pyx_k_CU_AD_FORMAT_SIGNED_INT16, sizeof(__pyx_k_CU_AD_FORMAT_SIGNED_INT16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SIGNED_INT32, __pyx_k_CU_AD_FORMAT_SIGNED_INT32, sizeof(__pyx_k_CU_AD_FORMAT_SIGNED_INT32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SIGNED_INT8, __pyx_k_CU_AD_FORMAT_SIGNED_INT8, sizeof(__pyx_k_CU_AD_FORMAT_SIGNED_INT8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SNORM_INT16X1, __pyx_k_CU_AD_FORMAT_SNORM_INT16X1, sizeof(__pyx_k_CU_AD_FORMAT_SNORM_INT16X1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SNORM_INT16X2, __pyx_k_CU_AD_FORMAT_SNORM_INT16X2, sizeof(__pyx_k_CU_AD_FORMAT_SNORM_INT16X2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SNORM_INT16X4, __pyx_k_CU_AD_FORMAT_SNORM_INT16X4, sizeof(__pyx_k_CU_AD_FORMAT_SNORM_INT16X4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SNORM_INT8X1, __pyx_k_CU_AD_FORMAT_SNORM_INT8X1, sizeof(__pyx_k_CU_AD_FORMAT_SNORM_INT8X1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SNORM_INT8X2, __pyx_k_CU_AD_FORMAT_SNORM_INT8X2, sizeof(__pyx_k_CU_AD_FORMAT_SNORM_INT8X2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_SNORM_INT8X4, __pyx_k_CU_AD_FORMAT_SNORM_INT8X4, sizeof(__pyx_k_CU_AD_FORMAT_SNORM_INT8X4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNORM_INT16X1, __pyx_k_CU_AD_FORMAT_UNORM_INT16X1, sizeof(__pyx_k_CU_AD_FORMAT_UNORM_INT16X1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNORM_INT16X2, __pyx_k_CU_AD_FORMAT_UNORM_INT16X2, sizeof(__pyx_k_CU_AD_FORMAT_UNORM_INT16X2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNORM_INT16X4, __pyx_k_CU_AD_FORMAT_UNORM_INT16X4, sizeof(__pyx_k_CU_AD_FORMAT_UNORM_INT16X4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNORM_INT8X1, __pyx_k_CU_AD_FORMAT_UNORM_INT8X1, sizeof(__pyx_k_CU_AD_FORMAT_UNORM_INT8X1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNORM_INT8X2, __pyx_k_CU_AD_FORMAT_UNORM_INT8X2, sizeof(__pyx_k_CU_AD_FORMAT_UNORM_INT8X2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNORM_INT8X4, __pyx_k_CU_AD_FORMAT_UNORM_INT8X4, sizeof(__pyx_k_CU_AD_FORMAT_UNORM_INT8X4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT16, __pyx_k_CU_AD_FORMAT_UNSIGNED_INT16, sizeof(__pyx_k_CU_AD_FORMAT_UNSIGNED_INT16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT32, __pyx_k_CU_AD_FORMAT_UNSIGNED_INT32, sizeof(__pyx_k_CU_AD_FORMAT_UNSIGNED_INT32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT8, __pyx_k_CU_AD_FORMAT_UNSIGNED_INT8, sizeof(__pyx_k_CU_AD_FORMAT_UNSIGNED_INT8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_ARRAY_SPARSE_PROPERTIES_SINGL, __pyx_k_CU_ARRAY_SPARSE_PROPERTIES_SINGL, sizeof(__pyx_k_CU_ARRAY_SPARSE_PROPERTIES_SINGL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE, __pyx_k_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE, sizeof(__pyx_k_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_2, __pyx_k_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_2, sizeof(__pyx_k_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_COMPUTEMODE_DEFAULT, __pyx_k_CU_COMPUTEMODE_DEFAULT, sizeof(__pyx_k_CU_COMPUTEMODE_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_COMPUTEMODE_EXCLUSIVE_PROCESS, __pyx_k_CU_COMPUTEMODE_EXCLUSIVE_PROCESS, sizeof(__pyx_k_CU_COMPUTEMODE_EXCLUSIVE_PROCESS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_COMPUTEMODE_PROHIBITED, __pyx_k_CU_COMPUTEMODE_PROHIBITED, sizeof(__pyx_k_CU_COMPUTEMODE_PROHIBITED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_BLOCKING_SYNC, __pyx_k_CU_CTX_BLOCKING_SYNC, sizeof(__pyx_k_CU_CTX_BLOCKING_SYNC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_FLAGS_MASK, __pyx_k_CU_CTX_FLAGS_MASK, sizeof(__pyx_k_CU_CTX_FLAGS_MASK), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_LMEM_RESIZE_TO_MAX, __pyx_k_CU_CTX_LMEM_RESIZE_TO_MAX, sizeof(__pyx_k_CU_CTX_LMEM_RESIZE_TO_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_MAP_HOST, __pyx_k_CU_CTX_MAP_HOST, sizeof(__pyx_k_CU_CTX_MAP_HOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_SCHED_AUTO, __pyx_k_CU_CTX_SCHED_AUTO, sizeof(__pyx_k_CU_CTX_SCHED_AUTO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_SCHED_BLOCKING_SYNC, __pyx_k_CU_CTX_SCHED_BLOCKING_SYNC, sizeof(__pyx_k_CU_CTX_SCHED_BLOCKING_SYNC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_SCHED_MASK, __pyx_k_CU_CTX_SCHED_MASK, sizeof(__pyx_k_CU_CTX_SCHED_MASK), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_SCHED_SPIN, __pyx_k_CU_CTX_SCHED_SPIN, sizeof(__pyx_k_CU_CTX_SCHED_SPIN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CTX_SCHED_YIELD, __pyx_k_CU_CTX_SCHED_YIELD, sizeof(__pyx_k_CU_CTX_SCHED_YIELD), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_X, __pyx_k_CU_CUBEMAP_FACE_NEGATIVE_X, sizeof(__pyx_k_CU_CUBEMAP_FACE_NEGATIVE_X), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_Y, __pyx_k_CU_CUBEMAP_FACE_NEGATIVE_Y, sizeof(__pyx_k_CU_CUBEMAP_FACE_NEGATIVE_Y), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_Z, __pyx_k_CU_CUBEMAP_FACE_NEGATIVE_Z, sizeof(__pyx_k_CU_CUBEMAP_FACE_NEGATIVE_Z), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_X, __pyx_k_CU_CUBEMAP_FACE_POSITIVE_X, sizeof(__pyx_k_CU_CUBEMAP_FACE_POSITIVE_X), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_Y, __pyx_k_CU_CUBEMAP_FACE_POSITIVE_Y, sizeof(__pyx_k_CU_CUBEMAP_FACE_POSITIVE_Y), 0, 0, 1, 1},
  {&__pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_Z, __pyx_k_CU_CUBEMAP_FACE_POSITIVE_Z, sizeof(__pyx_k_CU_CUBEMAP_FACE_POSITIVE_Z), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE, __pyx_k_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_RE, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_RE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_RE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GA, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GA, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_64_B, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_64_B, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_64_B), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE_2, __pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CLOCK_RATE, __pyx_k_CU_DEVICE_ATTRIBUTE_CLOCK_RATE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CLOCK_RATE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA, __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA_2, __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE, __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_PREE, __pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_PREE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_COMPUTE_PREE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CONCURRENT_K, __pyx_k_CU_DEVICE_ATTRIBUTE_CONCURRENT_K, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CONCURRENT_K), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_CONCURRENT_M, __pyx_k_CU_DEVICE_ATTRIBUTE_CONCURRENT_M, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_CONCURRENT_M), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_COOPERATIVE, __pyx_k_CU_DEVICE_ATTRIBUTE_COOPERATIVE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_COOPERATIVE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_COOPERATIVE_2, __pyx_k_CU_DEVICE_ATTRIBUTE_COOPERATIVE_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_COOPERATIVE_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_DIRECT_MANAG, __pyx_k_CU_DEVICE_ATTRIBUTE_DIRECT_MANAG, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_DIRECT_MANAG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_ECC_ENABLED, __pyx_k_CU_DEVICE_ATTRIBUTE_ECC_ENABLED, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_ECC_ENABLED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GENERIC_COMP, __pyx_k_CU_DEVICE_ATTRIBUTE_GENERIC_COMP, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GENERIC_COMP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CA, __pyx_k_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CA, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMOR, __pyx_k_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMOR, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMOR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R, __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_2, __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_3, __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_4, __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_4, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, __pyx_k_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE, __pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_2, __pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_3, __pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_HOST_NATIVE, __pyx_k_CU_DEVICE_ATTRIBUTE_HOST_NATIVE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_HOST_NATIVE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_HOST_REGISTE, __pyx_k_CU_DEVICE_ATTRIBUTE_HOST_REGISTE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_HOST_REGISTE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_INTEGRATED, __pyx_k_CU_DEVICE_ATTRIBUTE_INTEGRATED, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_INTEGRATED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC, __pyx_k_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZ, __pyx_k_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZ, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CAC, __pyx_k_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CAC, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CAC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MANAGED_MEMO, __pyx_k_CU_DEVICE_ATTRIBUTE_MANAGED_MEMO, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MANAGED_MEMO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_10, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_10, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_10), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_11, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_11, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_11), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_12, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_12, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_12), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_13, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_13, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_13), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_14, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_14, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_14), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_3, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_4, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_4, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_5, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_5, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_5), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_6, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_6, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_6), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_7, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_7, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_7), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_8, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_8, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_9, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_9, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_9), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_10, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_10, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_10), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_11, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_11, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_11), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_12, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_12, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_12), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_13, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_13, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_13), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_14, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_14, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_14), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_15, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_15, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_15), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_16, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_16, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_17, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_17, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_17), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_18, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_18, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_18), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_19, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_19, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_19), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_20, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_20, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_20), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_21, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_21, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_21), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_22, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_22, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_22), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_23, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_23, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_23), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_24, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_24, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_24), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_25, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_25, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_25), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_26, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_26, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_26), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_27, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_27, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_27), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_28, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_28, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_28), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_29, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_29, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_29), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_3, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_4, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_4, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_5, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_5, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_5), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_6, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_6, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_6), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_7, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_7, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_7), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_8, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_8, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_9, __pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_9, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_9), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_P, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_P, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_P), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_P, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_P, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_P), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_3, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_3, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_PERSISTI, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_PERSISTI, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_PERSISTI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_PITCH, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_PITCH, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_PITCH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_REGISTER, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_REGISTER, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_REGISTER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_REGISTER_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_REGISTER_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_REGISTER_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_3, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_3, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_THREADS, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_THREADS, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_THREADS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_THREADS_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MAX_THREADS_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MAX_THREADS_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK, __pyx_k_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS, __pyx_k_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPP, __pyx_k_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPP, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTIPROCESS, __pyx_k_CU_DEVICE_ATTRIBUTE_MULTIPROCESS, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MULTIPROCESS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO, __pyx_k_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO_2, __pyx_k_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM, __pyx_k_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM_2, __pyx_k_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM_2, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, __pyx_k_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_I, __pyx_k_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_I, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_I), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_I, __pyx_k_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_I, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_I), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_READ_ONLY_HO, __pyx_k_CU_DEVICE_ATTRIBUTE_READ_ONLY_HO, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_READ_ONLY_HO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_REGISTERS_PE, __pyx_k_CU_DEVICE_ATTRIBUTE_REGISTERS_PE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_REGISTERS_PE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_RESERVED_SHA, __pyx_k_CU_DEVICE_ATTRIBUTE_RESERVED_SHA, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_RESERVED_SHA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_SHARED_MEMOR, __pyx_k_CU_DEVICE_ATTRIBUTE_SHARED_MEMOR, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_SHARED_MEMOR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DO, __pyx_k_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DO, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA, __pyx_k_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_STREAM_PRIOR, __pyx_k_CU_DEVICE_ATTRIBUTE_STREAM_PRIOR, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_STREAM_PRIOR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_SURFACE_ALIG, __pyx_k_CU_DEVICE_ATTRIBUTE_SURFACE_ALIG, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_SURFACE_ALIG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_TCC_DRIVER, __pyx_k_CU_DEVICE_ATTRIBUTE_TCC_DRIVER, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_TCC_DRIVER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIG, __pyx_k_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIG, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_TEXTURE_PITC, __pyx_k_CU_DEVICE_ATTRIBUTE_TEXTURE_PITC, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_TEXTURE_PITC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_TIMELINE_SEM, __pyx_k_CU_DEVICE_ATTRIBUTE_TIMELINE_SEM, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_TIMELINE_SEM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTA, __pyx_k_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTA, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDR, __pyx_k_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDR, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDR, __pyx_k_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDR, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMO, __pyx_k_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMO, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_ATTRIBUTE_WARP_SIZE, __pyx_k_CU_DEVICE_ATTRIBUTE_WARP_SIZE, sizeof(__pyx_k_CU_DEVICE_ATTRIBUTE_WARP_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_CPU, __pyx_k_CU_DEVICE_CPU, sizeof(__pyx_k_CU_DEVICE_CPU), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_INVALID, __pyx_k_CU_DEVICE_INVALID, sizeof(__pyx_k_CU_DEVICE_INVALID), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_A, __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_A, sizeof(__pyx_k_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_A), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_S, __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_S, sizeof(__pyx_k_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_S), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARR, __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARR, sizeof(__pyx_k_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_A, __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_A, sizeof(__pyx_k_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_A), 0, 0, 1, 1},
  {&__pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_PERFORMA, __pyx_k_CU_DEVICE_P2P_ATTRIBUTE_PERFORMA, sizeof(__pyx_k_CU_DEVICE_P2P_ATTRIBUTE_PERFORMA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_BLOCKING_SYNC, __pyx_k_CU_EVENT_BLOCKING_SYNC, sizeof(__pyx_k_CU_EVENT_BLOCKING_SYNC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_DEFAULT, __pyx_k_CU_EVENT_DEFAULT, sizeof(__pyx_k_CU_EVENT_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_DISABLE_TIMING, __pyx_k_CU_EVENT_DISABLE_TIMING, sizeof(__pyx_k_CU_EVENT_DISABLE_TIMING), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_INTERPROCESS, __pyx_k_CU_EVENT_INTERPROCESS, sizeof(__pyx_k_CU_EVENT_INTERPROCESS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_RECORD_DEFAULT, __pyx_k_CU_EVENT_RECORD_DEFAULT, sizeof(__pyx_k_CU_EVENT_RECORD_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_RECORD_EXTERNAL, __pyx_k_CU_EVENT_RECORD_EXTERNAL, sizeof(__pyx_k_CU_EVENT_RECORD_EXTERNAL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_WAIT_DEFAULT, __pyx_k_CU_EVENT_WAIT_DEFAULT, sizeof(__pyx_k_CU_EVENT_WAIT_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EVENT_WAIT_EXTERNAL, __pyx_k_CU_EVENT_WAIT_EXTERNAL, sizeof(__pyx_k_CU_EVENT_WAIT_EXTERNAL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXEC_AFFINITY_TYPE_MAX, __pyx_k_CU_EXEC_AFFINITY_TYPE_MAX, sizeof(__pyx_k_CU_EXEC_AFFINITY_TYPE_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXEC_AFFINITY_TYPE_SM_COUNT, __pyx_k_CU_EXEC_AFFINITY_TYPE_SM_COUNT, sizeof(__pyx_k_CU_EXEC_AFFINITY_TYPE_SM_COUNT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_2, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_2, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_3, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_3, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_4, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_4, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_N, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_N, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_N), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_2, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_2, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_3, __pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_3, sizeof(__pyx_k_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_10, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_10, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_10), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_2, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_2, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_3, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_3, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_4, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_4, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_5, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_5, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_5), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_6, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_6, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_6), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_7, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_7, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_7), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_8, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_8, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_9, __pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_9, sizeof(__pyx_k_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_9), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES, __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES, sizeof(__pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_2, __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_2, sizeof(__pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_3, __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_3, sizeof(__pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_4, __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_4, sizeof(__pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_5, __pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_5, sizeof(__pyx_k_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_5), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_BINARY_VERSION, __pyx_k_CU_FUNC_ATTRIBUTE_BINARY_VERSION, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_BINARY_VERSION), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA, __pyx_k_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYT, __pyx_k_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYT, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYT, __pyx_k_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYT, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_MAX, __pyx_k_CU_FUNC_ATTRIBUTE_MAX, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SH, __pyx_k_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SH, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_MAX_THREADS_PE, __pyx_k_CU_FUNC_ATTRIBUTE_MAX_THREADS_PE, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_MAX_THREADS_PE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_NUM_REGS, __pyx_k_CU_FUNC_ATTRIBUTE_NUM_REGS, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_NUM_REGS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_PREFERRED_SHAR, __pyx_k_CU_FUNC_ATTRIBUTE_PREFERRED_SHAR, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_PREFERRED_SHAR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_PTX_VERSION, __pyx_k_CU_FUNC_ATTRIBUTE_PTX_VERSION, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_PTX_VERSION), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BY, __pyx_k_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BY, sizeof(__pyx_k_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_CACHE_PREFER_EQUAL, __pyx_k_CU_FUNC_CACHE_PREFER_EQUAL, sizeof(__pyx_k_CU_FUNC_CACHE_PREFER_EQUAL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_CACHE_PREFER_L1, __pyx_k_CU_FUNC_CACHE_PREFER_L1, sizeof(__pyx_k_CU_FUNC_CACHE_PREFER_L1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_CACHE_PREFER_NONE, __pyx_k_CU_FUNC_CACHE_PREFER_NONE, sizeof(__pyx_k_CU_FUNC_CACHE_PREFER_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_FUNC_CACHE_PREFER_SHARED, __pyx_k_CU_FUNC_CACHE_PREFER_SHARED, sizeof(__pyx_k_CU_FUNC_CACHE_PREFER_SHARED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GET_PROC_ADDRESS_DEFAULT, __pyx_k_CU_GET_PROC_ADDRESS_DEFAULT, sizeof(__pyx_k_CU_GET_PROC_ADDRESS_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GET_PROC_ADDRESS_LEGACY_STREA, __pyx_k_CU_GET_PROC_ADDRESS_LEGACY_STREA, sizeof(__pyx_k_CU_GET_PROC_ADDRESS_LEGACY_STREA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GET_PROC_ADDRESS_PER_THREAD_D, __pyx_k_CU_GET_PROC_ADDRESS_PER_THREAD_D, sizeof(__pyx_k_CU_GET_PROC_ADDRESS_PER_THREAD_D), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI, __pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI, sizeof(__pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_2, __pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_2, sizeof(__pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_3, __pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_3, sizeof(__pyx_k_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_N, __pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_N, sizeof(__pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_N), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_R, __pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_R, sizeof(__pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_R), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_W, __pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_W, sizeof(__pyx_k_CU_GRAPHICS_MAP_RESOURCE_FLAGS_W), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_NONE, __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_NONE, sizeof(__pyx_k_CU_GRAPHICS_REGISTER_FLAGS_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_READ, __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_READ, sizeof(__pyx_k_CU_GRAPHICS_REGISTER_FLAGS_READ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_SURFA, __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_SURFA, sizeof(__pyx_k_CU_GRAPHICS_REGISTER_FLAGS_SURFA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_TEXTU, __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_TEXTU, sizeof(__pyx_k_CU_GRAPHICS_REGISTER_FLAGS_TEXTU), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_WRITE, __pyx_k_CU_GRAPHICS_REGISTER_FLAGS_WRITE, sizeof(__pyx_k_CU_GRAPHICS_REGISTER_FLAGS_WRITE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_N, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_N, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_N), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM_2, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM_2, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NO, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NO, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_2, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_2, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALL, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALL, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FRE, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FRE, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FRE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE, __pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE, sizeof(__pyx_k_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCT, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCT, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_NODE, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_NODE, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_NODE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_S, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_S, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_S), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_PARAM, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_PARAM, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_PARAM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOL, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOL, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUP, __pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUP, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_EXEC_UPDATE_SUCCESS, __pyx_k_CU_GRAPH_EXEC_UPDATE_SUCCESS, sizeof(__pyx_k_CU_GRAPH_EXEC_UPDATE_SUCCESS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_MEM_ATTR_RESERVED_MEM_C, __pyx_k_CU_GRAPH_MEM_ATTR_RESERVED_MEM_C, sizeof(__pyx_k_CU_GRAPH_MEM_ATTR_RESERVED_MEM_C), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_MEM_ATTR_RESERVED_MEM_H, __pyx_k_CU_GRAPH_MEM_ATTR_RESERVED_MEM_H, sizeof(__pyx_k_CU_GRAPH_MEM_ATTR_RESERVED_MEM_H), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_MEM_ATTR_USED_MEM_CURRE, __pyx_k_CU_GRAPH_MEM_ATTR_USED_MEM_CURRE, sizeof(__pyx_k_CU_GRAPH_MEM_ATTR_USED_MEM_CURRE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH, __pyx_k_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH, sizeof(__pyx_k_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_EMPTY, __pyx_k_CU_GRAPH_NODE_TYPE_EMPTY, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_EMPTY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_EVENT_RECORD, __pyx_k_CU_GRAPH_NODE_TYPE_EVENT_RECORD, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_EVENT_RECORD), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIG, __pyx_k_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIG, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAI, __pyx_k_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAI, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_GRAPH, __pyx_k_CU_GRAPH_NODE_TYPE_GRAPH, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_GRAPH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_HOST, __pyx_k_CU_GRAPH_NODE_TYPE_HOST, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_HOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_KERNEL, __pyx_k_CU_GRAPH_NODE_TYPE_KERNEL, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_KERNEL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_MEMCPY, __pyx_k_CU_GRAPH_NODE_TYPE_MEMCPY, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_MEMCPY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_MEMSET, __pyx_k_CU_GRAPH_NODE_TYPE_MEMSET, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_MEMSET), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_MEM_ALLOC, __pyx_k_CU_GRAPH_NODE_TYPE_MEM_ALLOC, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_MEM_ALLOC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_MEM_FREE, __pyx_k_CU_GRAPH_NODE_TYPE_MEM_FREE, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_MEM_FREE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_NODE_TYPE_WAIT_EVENT, __pyx_k_CU_GRAPH_NODE_TYPE_WAIT_EVENT, sizeof(__pyx_k_CU_GRAPH_NODE_TYPE_WAIT_EVENT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_GRAPH_USER_OBJECT_MOVE, __pyx_k_CU_GRAPH_USER_OBJECT_MOVE, sizeof(__pyx_k_CU_GRAPH_USER_OBJECT_MOVE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_IPC_HANDLE_SIZE, __pyx_k_CU_IPC_HANDLE_SIZE, sizeof(__pyx_k_CU_IPC_HANDLE_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCE, __pyx_k_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCE, sizeof(__pyx_k_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_CACHE_MODE, __pyx_k_CU_JIT_CACHE_MODE, sizeof(__pyx_k_CU_JIT_CACHE_MODE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_CACHE_OPTION_CA, __pyx_k_CU_JIT_CACHE_OPTION_CA, sizeof(__pyx_k_CU_JIT_CACHE_OPTION_CA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_CACHE_OPTION_CG, __pyx_k_CU_JIT_CACHE_OPTION_CG, sizeof(__pyx_k_CU_JIT_CACHE_OPTION_CG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_CACHE_OPTION_NONE, __pyx_k_CU_JIT_CACHE_OPTION_NONE, sizeof(__pyx_k_CU_JIT_CACHE_OPTION_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_ERROR_LOG_BUFFER, __pyx_k_CU_JIT_ERROR_LOG_BUFFER, sizeof(__pyx_k_CU_JIT_ERROR_LOG_BUFFER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYT, __pyx_k_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYT, sizeof(__pyx_k_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_FALLBACK_STRATEGY, __pyx_k_CU_JIT_FALLBACK_STRATEGY, sizeof(__pyx_k_CU_JIT_FALLBACK_STRATEGY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_FAST_COMPILE, __pyx_k_CU_JIT_FAST_COMPILE, sizeof(__pyx_k_CU_JIT_FAST_COMPILE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_FMA, __pyx_k_CU_JIT_FMA, sizeof(__pyx_k_CU_JIT_FMA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_FTZ, __pyx_k_CU_JIT_FTZ, sizeof(__pyx_k_CU_JIT_FTZ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_GENERATE_DEBUG_INFO, __pyx_k_CU_JIT_GENERATE_DEBUG_INFO, sizeof(__pyx_k_CU_JIT_GENERATE_DEBUG_INFO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_GENERATE_LINE_INFO, __pyx_k_CU_JIT_GENERATE_LINE_INFO, sizeof(__pyx_k_CU_JIT_GENERATE_LINE_INFO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_GLOBAL_SYMBOL_ADDRESSES, __pyx_k_CU_JIT_GLOBAL_SYMBOL_ADDRESSES, sizeof(__pyx_k_CU_JIT_GLOBAL_SYMBOL_ADDRESSES), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_GLOBAL_SYMBOL_COUNT, __pyx_k_CU_JIT_GLOBAL_SYMBOL_COUNT, sizeof(__pyx_k_CU_JIT_GLOBAL_SYMBOL_COUNT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_GLOBAL_SYMBOL_NAMES, __pyx_k_CU_JIT_GLOBAL_SYMBOL_NAMES, sizeof(__pyx_k_CU_JIT_GLOBAL_SYMBOL_NAMES), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INFO_LOG_BUFFER, __pyx_k_CU_JIT_INFO_LOG_BUFFER, sizeof(__pyx_k_CU_JIT_INFO_LOG_BUFFER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTE, __pyx_k_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTE, sizeof(__pyx_k_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INPUT_CUBIN, __pyx_k_CU_JIT_INPUT_CUBIN, sizeof(__pyx_k_CU_JIT_INPUT_CUBIN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INPUT_FATBINARY, __pyx_k_CU_JIT_INPUT_FATBINARY, sizeof(__pyx_k_CU_JIT_INPUT_FATBINARY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INPUT_LIBRARY, __pyx_k_CU_JIT_INPUT_LIBRARY, sizeof(__pyx_k_CU_JIT_INPUT_LIBRARY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INPUT_NVVM, __pyx_k_CU_JIT_INPUT_NVVM, sizeof(__pyx_k_CU_JIT_INPUT_NVVM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INPUT_OBJECT, __pyx_k_CU_JIT_INPUT_OBJECT, sizeof(__pyx_k_CU_JIT_INPUT_OBJECT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_INPUT_PTX, __pyx_k_CU_JIT_INPUT_PTX, sizeof(__pyx_k_CU_JIT_INPUT_PTX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_LOG_VERBOSE, __pyx_k_CU_JIT_LOG_VERBOSE, sizeof(__pyx_k_CU_JIT_LOG_VERBOSE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_LTO, __pyx_k_CU_JIT_LTO, sizeof(__pyx_k_CU_JIT_LTO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_MAX_REGISTERS, __pyx_k_CU_JIT_MAX_REGISTERS, sizeof(__pyx_k_CU_JIT_MAX_REGISTERS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_NEW_SM3X_OPT, __pyx_k_CU_JIT_NEW_SM3X_OPT, sizeof(__pyx_k_CU_JIT_NEW_SM3X_OPT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_NUM_INPUT_TYPES, __pyx_k_CU_JIT_NUM_INPUT_TYPES, sizeof(__pyx_k_CU_JIT_NUM_INPUT_TYPES), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_NUM_OPTIONS, __pyx_k_CU_JIT_NUM_OPTIONS, sizeof(__pyx_k_CU_JIT_NUM_OPTIONS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_OPTIMIZATION_LEVEL, __pyx_k_CU_JIT_OPTIMIZATION_LEVEL, sizeof(__pyx_k_CU_JIT_OPTIMIZATION_LEVEL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_PREC_DIV, __pyx_k_CU_JIT_PREC_DIV, sizeof(__pyx_k_CU_JIT_PREC_DIV), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_PREC_SQRT, __pyx_k_CU_JIT_PREC_SQRT, sizeof(__pyx_k_CU_JIT_PREC_SQRT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_TARGET, __pyx_k_CU_JIT_TARGET, sizeof(__pyx_k_CU_JIT_TARGET), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_TARGET_FROM_CUCONTEXT, __pyx_k_CU_JIT_TARGET_FROM_CUCONTEXT, sizeof(__pyx_k_CU_JIT_TARGET_FROM_CUCONTEXT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_THREADS_PER_BLOCK, __pyx_k_CU_JIT_THREADS_PER_BLOCK, sizeof(__pyx_k_CU_JIT_THREADS_PER_BLOCK), 0, 0, 1, 1},
  {&__pyx_n_s_CU_JIT_WALL_TIME, __pyx_k_CU_JIT_WALL_TIME, sizeof(__pyx_k_CU_JIT_WALL_TIME), 0, 0, 1, 1},
  {&__pyx_n_s_CU_KERNEL_NODE_ATTRIBUTE_ACCESS, __pyx_k_CU_KERNEL_NODE_ATTRIBUTE_ACCESS, sizeof(__pyx_k_CU_KERNEL_NODE_ATTRIBUTE_ACCESS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_KERNEL_NODE_ATTRIBUTE_COOPERA, __pyx_k_CU_KERNEL_NODE_ATTRIBUTE_COOPERA, sizeof(__pyx_k_CU_KERNEL_NODE_ATTRIBUTE_COOPERA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LAUNCH_PARAM_BUFFER_POINTER, __pyx_k_CU_LAUNCH_PARAM_BUFFER_POINTER, sizeof(__pyx_k_CU_LAUNCH_PARAM_BUFFER_POINTER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LAUNCH_PARAM_BUFFER_SIZE, __pyx_k_CU_LAUNCH_PARAM_BUFFER_SIZE, sizeof(__pyx_k_CU_LAUNCH_PARAM_BUFFER_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LAUNCH_PARAM_END, __pyx_k_CU_LAUNCH_PARAM_END, sizeof(__pyx_k_CU_LAUNCH_PARAM_END), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_DEV_RUNTIME_PENDING_LAU, __pyx_k_CU_LIMIT_DEV_RUNTIME_PENDING_LAU, sizeof(__pyx_k_CU_LIMIT_DEV_RUNTIME_PENDING_LAU), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH, __pyx_k_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH, sizeof(__pyx_k_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_MALLOC_HEAP_SIZE, __pyx_k_CU_LIMIT_MALLOC_HEAP_SIZE, sizeof(__pyx_k_CU_LIMIT_MALLOC_HEAP_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_MAX, __pyx_k_CU_LIMIT_MAX, sizeof(__pyx_k_CU_LIMIT_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_MAX_L2_FETCH_GRANULARIT, __pyx_k_CU_LIMIT_MAX_L2_FETCH_GRANULARIT, sizeof(__pyx_k_CU_LIMIT_MAX_L2_FETCH_GRANULARIT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_PERSISTING_L2_CACHE_SIZ, __pyx_k_CU_LIMIT_PERSISTING_L2_CACHE_SIZ, sizeof(__pyx_k_CU_LIMIT_PERSISTING_L2_CACHE_SIZ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_PRINTF_FIFO_SIZE, __pyx_k_CU_LIMIT_PRINTF_FIFO_SIZE, sizeof(__pyx_k_CU_LIMIT_PRINTF_FIFO_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_LIMIT_STACK_SIZE, __pyx_k_CU_LIMIT_STACK_SIZE, sizeof(__pyx_k_CU_LIMIT_STACK_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTALLOC_DEVICEMAP, __pyx_k_CU_MEMHOSTALLOC_DEVICEMAP, sizeof(__pyx_k_CU_MEMHOSTALLOC_DEVICEMAP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTALLOC_PORTABLE, __pyx_k_CU_MEMHOSTALLOC_PORTABLE, sizeof(__pyx_k_CU_MEMHOSTALLOC_PORTABLE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTALLOC_WRITECOMBINED, __pyx_k_CU_MEMHOSTALLOC_WRITECOMBINED, sizeof(__pyx_k_CU_MEMHOSTALLOC_WRITECOMBINED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTREGISTER_DEVICEMAP, __pyx_k_CU_MEMHOSTREGISTER_DEVICEMAP, sizeof(__pyx_k_CU_MEMHOSTREGISTER_DEVICEMAP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTREGISTER_IOMEMORY, __pyx_k_CU_MEMHOSTREGISTER_IOMEMORY, sizeof(__pyx_k_CU_MEMHOSTREGISTER_IOMEMORY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTREGISTER_PORTABLE, __pyx_k_CU_MEMHOSTREGISTER_PORTABLE, sizeof(__pyx_k_CU_MEMHOSTREGISTER_PORTABLE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMHOSTREGISTER_READ_ONLY, __pyx_k_CU_MEMHOSTREGISTER_READ_ONLY, sizeof(__pyx_k_CU_MEMHOSTREGISTER_READ_ONLY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMORYTYPE_ARRAY, __pyx_k_CU_MEMORYTYPE_ARRAY, sizeof(__pyx_k_CU_MEMORYTYPE_ARRAY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMORYTYPE_DEVICE, __pyx_k_CU_MEMORYTYPE_DEVICE, sizeof(__pyx_k_CU_MEMORYTYPE_DEVICE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMORYTYPE_HOST, __pyx_k_CU_MEMORYTYPE_HOST, sizeof(__pyx_k_CU_MEMORYTYPE_HOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMORYTYPE_UNIFIED, __pyx_k_CU_MEMORYTYPE_UNIFIED, sizeof(__pyx_k_CU_MEMORYTYPE_UNIFIED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_RELEASE_THRESHOL, __pyx_k_CU_MEMPOOL_ATTR_RELEASE_THRESHOL, sizeof(__pyx_k_CU_MEMPOOL_ATTR_RELEASE_THRESHOL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_RESERVED_MEM_CUR, __pyx_k_CU_MEMPOOL_ATTR_RESERVED_MEM_CUR, sizeof(__pyx_k_CU_MEMPOOL_ATTR_RESERVED_MEM_CUR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_RESERVED_MEM_HIG, __pyx_k_CU_MEMPOOL_ATTR_RESERVED_MEM_HIG, sizeof(__pyx_k_CU_MEMPOOL_ATTR_RESERVED_MEM_HIG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTE, __pyx_k_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTE, sizeof(__pyx_k_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPO, __pyx_k_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPO, sizeof(__pyx_k_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVE, __pyx_k_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVE, sizeof(__pyx_k_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_USED_MEM_CURRENT, __pyx_k_CU_MEMPOOL_ATTR_USED_MEM_CURRENT, sizeof(__pyx_k_CU_MEMPOOL_ATTR_USED_MEM_CURRENT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEMPOOL_ATTR_USED_MEM_HIGH, __pyx_k_CU_MEMPOOL_ATTR_USED_MEM_HIGH, sizeof(__pyx_k_CU_MEMPOOL_ATTR_USED_MEM_HIGH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_MAX, __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_MAX, sizeof(__pyx_k_CU_MEM_ACCESS_FLAGS_PROT_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_NONE, __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_NONE, sizeof(__pyx_k_CU_MEM_ACCESS_FLAGS_PROT_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_READ, __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_READ, sizeof(__pyx_k_CU_MEM_ACCESS_FLAGS_PROT_READ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_READWRI, __pyx_k_CU_MEM_ACCESS_FLAGS_PROT_READWRI, sizeof(__pyx_k_CU_MEM_ACCESS_FLAGS_PROT_READWRI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ADVISE_SET_ACCESSED_BY, __pyx_k_CU_MEM_ADVISE_SET_ACCESSED_BY, sizeof(__pyx_k_CU_MEM_ADVISE_SET_ACCESSED_BY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ADVISE_SET_PREFERRED_LOCA, __pyx_k_CU_MEM_ADVISE_SET_PREFERRED_LOCA, sizeof(__pyx_k_CU_MEM_ADVISE_SET_PREFERRED_LOCA), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ADVISE_SET_READ_MOSTLY, __pyx_k_CU_MEM_ADVISE_SET_READ_MOSTLY, sizeof(__pyx_k_CU_MEM_ADVISE_SET_READ_MOSTLY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ADVISE_UNSET_ACCESSED_BY, __pyx_k_CU_MEM_ADVISE_UNSET_ACCESSED_BY, sizeof(__pyx_k_CU_MEM_ADVISE_UNSET_ACCESSED_BY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ADVISE_UNSET_PREFERRED_LO, __pyx_k_CU_MEM_ADVISE_UNSET_PREFERRED_LO, sizeof(__pyx_k_CU_MEM_ADVISE_UNSET_PREFERRED_LO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ADVISE_UNSET_READ_MOSTLY, __pyx_k_CU_MEM_ADVISE_UNSET_READ_MOSTLY, sizeof(__pyx_k_CU_MEM_ADVISE_UNSET_READ_MOSTLY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOCATION_COMP_GENERIC, __pyx_k_CU_MEM_ALLOCATION_COMP_GENERIC, sizeof(__pyx_k_CU_MEM_ALLOCATION_COMP_GENERIC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOCATION_COMP_NONE, __pyx_k_CU_MEM_ALLOCATION_COMP_NONE, sizeof(__pyx_k_CU_MEM_ALLOCATION_COMP_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOCATION_TYPE_INVALID, __pyx_k_CU_MEM_ALLOCATION_TYPE_INVALID, sizeof(__pyx_k_CU_MEM_ALLOCATION_TYPE_INVALID), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOCATION_TYPE_MAX, __pyx_k_CU_MEM_ALLOCATION_TYPE_MAX, sizeof(__pyx_k_CU_MEM_ALLOCATION_TYPE_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOCATION_TYPE_PINNED, __pyx_k_CU_MEM_ALLOCATION_TYPE_PINNED, sizeof(__pyx_k_CU_MEM_ALLOCATION_TYPE_PINNED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOC_GRANULARITY_MINIMUM, __pyx_k_CU_MEM_ALLOC_GRANULARITY_MINIMUM, sizeof(__pyx_k_CU_MEM_ALLOC_GRANULARITY_MINIMUM), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ALLOC_GRANULARITY_RECOMME, __pyx_k_CU_MEM_ALLOC_GRANULARITY_RECOMME, sizeof(__pyx_k_CU_MEM_ALLOC_GRANULARITY_RECOMME), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ATTACH_GLOBAL, __pyx_k_CU_MEM_ATTACH_GLOBAL, sizeof(__pyx_k_CU_MEM_ATTACH_GLOBAL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ATTACH_HOST, __pyx_k_CU_MEM_ATTACH_HOST, sizeof(__pyx_k_CU_MEM_ATTACH_HOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_ATTACH_SINGLE, __pyx_k_CU_MEM_ATTACH_SINGLE, sizeof(__pyx_k_CU_MEM_ATTACH_SINGLE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_CREATE_USAGE_TILE_POOL, __pyx_k_CU_MEM_CREATE_USAGE_TILE_POOL, sizeof(__pyx_k_CU_MEM_CREATE_USAGE_TILE_POOL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_HANDLE_TYPE_GENERIC, __pyx_k_CU_MEM_HANDLE_TYPE_GENERIC, sizeof(__pyx_k_CU_MEM_HANDLE_TYPE_GENERIC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_HANDLE_TYPE_MAX, __pyx_k_CU_MEM_HANDLE_TYPE_MAX, sizeof(__pyx_k_CU_MEM_HANDLE_TYPE_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_HANDLE_TYPE_NONE, __pyx_k_CU_MEM_HANDLE_TYPE_NONE, sizeof(__pyx_k_CU_MEM_HANDLE_TYPE_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_HANDLE_TYPE_POSIX_FILE_DE, __pyx_k_CU_MEM_HANDLE_TYPE_POSIX_FILE_DE, sizeof(__pyx_k_CU_MEM_HANDLE_TYPE_POSIX_FILE_DE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_HANDLE_TYPE_WIN32, __pyx_k_CU_MEM_HANDLE_TYPE_WIN32, sizeof(__pyx_k_CU_MEM_HANDLE_TYPE_WIN32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_HANDLE_TYPE_WIN32_KMT, __pyx_k_CU_MEM_HANDLE_TYPE_WIN32_KMT, sizeof(__pyx_k_CU_MEM_HANDLE_TYPE_WIN32_KMT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_LOCATION_TYPE_DEVICE, __pyx_k_CU_MEM_LOCATION_TYPE_DEVICE, sizeof(__pyx_k_CU_MEM_LOCATION_TYPE_DEVICE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_LOCATION_TYPE_INVALID, __pyx_k_CU_MEM_LOCATION_TYPE_INVALID, sizeof(__pyx_k_CU_MEM_LOCATION_TYPE_INVALID), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_LOCATION_TYPE_MAX, __pyx_k_CU_MEM_LOCATION_TYPE_MAX, sizeof(__pyx_k_CU_MEM_LOCATION_TYPE_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_OPERATION_TYPE_MAP, __pyx_k_CU_MEM_OPERATION_TYPE_MAP, sizeof(__pyx_k_CU_MEM_OPERATION_TYPE_MAP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_OPERATION_TYPE_UNMAP, __pyx_k_CU_MEM_OPERATION_TYPE_UNMAP, sizeof(__pyx_k_CU_MEM_OPERATION_TYPE_UNMAP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_ACCESSED, __pyx_k_CU_MEM_RANGE_ATTRIBUTE_ACCESSED, sizeof(__pyx_k_CU_MEM_RANGE_ATTRIBUTE_ACCESSED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_LAST_PREF, __pyx_k_CU_MEM_RANGE_ATTRIBUTE_LAST_PREF, sizeof(__pyx_k_CU_MEM_RANGE_ATTRIBUTE_LAST_PREF), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_PREFERRED, __pyx_k_CU_MEM_RANGE_ATTRIBUTE_PREFERRED, sizeof(__pyx_k_CU_MEM_RANGE_ATTRIBUTE_PREFERRED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_READ_MOST, __pyx_k_CU_MEM_RANGE_ATTRIBUTE_READ_MOST, sizeof(__pyx_k_CU_MEM_RANGE_ATTRIBUTE_READ_MOST), 0, 0, 1, 1},
  {&__pyx_n_s_CU_OCCUPANCY_DEFAULT, __pyx_k_CU_OCCUPANCY_DEFAULT, sizeof(__pyx_k_CU_OCCUPANCY_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_OCCUPANCY_DISABLE_CACHING_OVE, __pyx_k_CU_OCCUPANCY_DISABLE_CACHING_OVE, sizeof(__pyx_k_CU_OCCUPANCY_DISABLE_CACHING_OVE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_PARAM_TR_DEFAULT, __pyx_k_CU_PARAM_TR_DEFAULT, sizeof(__pyx_k_CU_PARAM_TR_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG, __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_2, __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_2, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_3, __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_3, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_4, __pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_4, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_ALLOWED_HAN, __pyx_k_CU_POINTER_ATTRIBUTE_ALLOWED_HAN, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_ALLOWED_HAN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_BUFFER_ID, __pyx_k_CU_POINTER_ATTRIBUTE_BUFFER_ID, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_BUFFER_ID), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_CONTEXT, __pyx_k_CU_POINTER_ATTRIBUTE_CONTEXT, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_CONTEXT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_DEVICE_ORDI, __pyx_k_CU_POINTER_ATTRIBUTE_DEVICE_ORDI, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_DEVICE_ORDI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_DEVICE_POIN, __pyx_k_CU_POINTER_ATTRIBUTE_DEVICE_POIN, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_DEVICE_POIN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_HOST_POINTE, __pyx_k_CU_POINTER_ATTRIBUTE_HOST_POINTE, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_HOST_POINTE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_IS_GPU_DIRE, __pyx_k_CU_POINTER_ATTRIBUTE_IS_GPU_DIRE, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_IS_GPU_DIRE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_IS_LEGACY_C, __pyx_k_CU_POINTER_ATTRIBUTE_IS_LEGACY_C, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_IS_LEGACY_C), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_IS_MANAGED, __pyx_k_CU_POINTER_ATTRIBUTE_IS_MANAGED, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_IS_MANAGED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_MAPPED, __pyx_k_CU_POINTER_ATTRIBUTE_MAPPED, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_MAPPED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_MEMORY_TYPE, __pyx_k_CU_POINTER_ATTRIBUTE_MEMORY_TYPE, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_MEMORY_TYPE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_MEMPOOL_HAN, __pyx_k_CU_POINTER_ATTRIBUTE_MEMPOOL_HAN, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_MEMPOOL_HAN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_P2P_TOKENS, __pyx_k_CU_POINTER_ATTRIBUTE_P2P_TOKENS, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_P2P_TOKENS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_RANGE_SIZE, __pyx_k_CU_POINTER_ATTRIBUTE_RANGE_SIZE, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_RANGE_SIZE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_RANGE_START, __pyx_k_CU_POINTER_ATTRIBUTE_RANGE_START, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_RANGE_START), 0, 0, 1, 1},
  {&__pyx_n_s_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS, __pyx_k_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS, sizeof(__pyx_k_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS), 0, 0, 1, 1},
  {&__pyx_n_s_CU_PREFER_BINARY, __pyx_k_CU_PREFER_BINARY, sizeof(__pyx_k_CU_PREFER_BINARY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_PREFER_PTX, __pyx_k_CU_PREFER_PTX, sizeof(__pyx_k_CU_PREFER_PTX), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RESOURCE_TYPE_ARRAY, __pyx_k_CU_RESOURCE_TYPE_ARRAY, sizeof(__pyx_k_CU_RESOURCE_TYPE_ARRAY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RESOURCE_TYPE_LINEAR, __pyx_k_CU_RESOURCE_TYPE_LINEAR, sizeof(__pyx_k_CU_RESOURCE_TYPE_LINEAR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY, __pyx_k_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY, sizeof(__pyx_k_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RESOURCE_TYPE_PITCH2D, __pyx_k_CU_RESOURCE_TYPE_PITCH2D, sizeof(__pyx_k_CU_RESOURCE_TYPE_PITCH2D), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_1X16, __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_1X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_FLOAT_1X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_1X32, __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_1X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_FLOAT_1X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_2X16, __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_2X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_FLOAT_2X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_2X32, __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_2X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_FLOAT_2X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_4X16, __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_4X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_FLOAT_4X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_4X32, __pyx_k_CU_RES_VIEW_FORMAT_FLOAT_4X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_FLOAT_4X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_NONE, __pyx_k_CU_RES_VIEW_FORMAT_NONE, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC4, __pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC4, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC5, __pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC5, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC5), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC6H, __pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC6H, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SIGNED_BC6H), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X16, __pyx_k_CU_RES_VIEW_FORMAT_SINT_1X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_1X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X32, __pyx_k_CU_RES_VIEW_FORMAT_SINT_1X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_1X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X8, __pyx_k_CU_RES_VIEW_FORMAT_SINT_1X8, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_1X8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X16, __pyx_k_CU_RES_VIEW_FORMAT_SINT_2X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_2X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X32, __pyx_k_CU_RES_VIEW_FORMAT_SINT_2X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_2X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X8, __pyx_k_CU_RES_VIEW_FORMAT_SINT_2X8, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_2X8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X16, __pyx_k_CU_RES_VIEW_FORMAT_SINT_4X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_4X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X32, __pyx_k_CU_RES_VIEW_FORMAT_SINT_4X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_4X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X8, __pyx_k_CU_RES_VIEW_FORMAT_SINT_4X8, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_SINT_4X8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X16, __pyx_k_CU_RES_VIEW_FORMAT_UINT_1X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_1X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X32, __pyx_k_CU_RES_VIEW_FORMAT_UINT_1X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_1X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X8, __pyx_k_CU_RES_VIEW_FORMAT_UINT_1X8, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_1X8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X16, __pyx_k_CU_RES_VIEW_FORMAT_UINT_2X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_2X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X32, __pyx_k_CU_RES_VIEW_FORMAT_UINT_2X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_2X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X8, __pyx_k_CU_RES_VIEW_FORMAT_UINT_2X8, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_2X8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X16, __pyx_k_CU_RES_VIEW_FORMAT_UINT_4X16, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_4X16), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X32, __pyx_k_CU_RES_VIEW_FORMAT_UINT_4X32, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_4X32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X8, __pyx_k_CU_RES_VIEW_FORMAT_UINT_4X8, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UINT_4X8), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC1, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC1, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC2, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC2, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC2), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC3, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC3, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC3), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC4, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC4, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC4), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC5, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC5, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC5), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H), 0, 0, 1, 1},
  {&__pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC7, __pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC7, sizeof(__pyx_k_CU_RES_VIEW_FORMAT_UNSIGNED_BC7), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SHAREDMEM_CARVEOUT_DEFAULT, __pyx_k_CU_SHAREDMEM_CARVEOUT_DEFAULT, sizeof(__pyx_k_CU_SHAREDMEM_CARVEOUT_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SHAREDMEM_CARVEOUT_MAX_L1, __pyx_k_CU_SHAREDMEM_CARVEOUT_MAX_L1, sizeof(__pyx_k_CU_SHAREDMEM_CARVEOUT_MAX_L1), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SHAREDMEM_CARVEOUT_MAX_SHARED, __pyx_k_CU_SHAREDMEM_CARVEOUT_MAX_SHARED, sizeof(__pyx_k_CU_SHAREDMEM_CARVEOUT_MAX_SHARED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SHARED_MEM_CONFIG_DEFAULT_BAN, __pyx_k_CU_SHARED_MEM_CONFIG_DEFAULT_BAN, sizeof(__pyx_k_CU_SHARED_MEM_CONFIG_DEFAULT_BAN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SHARED_MEM_CONFIG_EIGHT_BYTE, __pyx_k_CU_SHARED_MEM_CONFIG_EIGHT_BYTE, sizeof(__pyx_k_CU_SHARED_MEM_CONFIG_EIGHT_BYTE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SHARED_MEM_CONFIG_FOUR_BYTE_B, __pyx_k_CU_SHARED_MEM_CONFIG_FOUR_BYTE_B, sizeof(__pyx_k_CU_SHARED_MEM_CONFIG_FOUR_BYTE_B), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_ADD_CAPTURE_DEPENDENCI, __pyx_k_CU_STREAM_ADD_CAPTURE_DEPENDENCI, sizeof(__pyx_k_CU_STREAM_ADD_CAPTURE_DEPENDENCI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_ATTRIBUTE_ACCESS_POLIC, __pyx_k_CU_STREAM_ATTRIBUTE_ACCESS_POLIC, sizeof(__pyx_k_CU_STREAM_ATTRIBUTE_ACCESS_POLIC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_ATTRIBUTE_SYNCHRONIZAT, __pyx_k_CU_STREAM_ATTRIBUTE_SYNCHRONIZAT, sizeof(__pyx_k_CU_STREAM_ATTRIBUTE_SYNCHRONIZAT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_CAPTURE_MODE_GLOBAL, __pyx_k_CU_STREAM_CAPTURE_MODE_GLOBAL, sizeof(__pyx_k_CU_STREAM_CAPTURE_MODE_GLOBAL), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_CAPTURE_MODE_RELAXED, __pyx_k_CU_STREAM_CAPTURE_MODE_RELAXED, sizeof(__pyx_k_CU_STREAM_CAPTURE_MODE_RELAXED), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_CAPTURE_MODE_THREAD_LO, __pyx_k_CU_STREAM_CAPTURE_MODE_THREAD_LO, sizeof(__pyx_k_CU_STREAM_CAPTURE_MODE_THREAD_LO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_CAPTURE_STATUS_ACTIVE, __pyx_k_CU_STREAM_CAPTURE_STATUS_ACTIVE, sizeof(__pyx_k_CU_STREAM_CAPTURE_STATUS_ACTIVE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_CAPTURE_STATUS_INVALID, __pyx_k_CU_STREAM_CAPTURE_STATUS_INVALID, sizeof(__pyx_k_CU_STREAM_CAPTURE_STATUS_INVALID), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_CAPTURE_STATUS_NONE, __pyx_k_CU_STREAM_CAPTURE_STATUS_NONE, sizeof(__pyx_k_CU_STREAM_CAPTURE_STATUS_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_DEFAULT, __pyx_k_CU_STREAM_DEFAULT, sizeof(__pyx_k_CU_STREAM_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_LEGACY, __pyx_k_CU_STREAM_LEGACY, sizeof(__pyx_k_CU_STREAM_LEGACY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_MEM_OP_FLUSH_REMOTE_WR, __pyx_k_CU_STREAM_MEM_OP_FLUSH_REMOTE_WR, sizeof(__pyx_k_CU_STREAM_MEM_OP_FLUSH_REMOTE_WR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_MEM_OP_WAIT_VALUE_32, __pyx_k_CU_STREAM_MEM_OP_WAIT_VALUE_32, sizeof(__pyx_k_CU_STREAM_MEM_OP_WAIT_VALUE_32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_MEM_OP_WAIT_VALUE_64, __pyx_k_CU_STREAM_MEM_OP_WAIT_VALUE_64, sizeof(__pyx_k_CU_STREAM_MEM_OP_WAIT_VALUE_64), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_MEM_OP_WRITE_VALUE_32, __pyx_k_CU_STREAM_MEM_OP_WRITE_VALUE_32, sizeof(__pyx_k_CU_STREAM_MEM_OP_WRITE_VALUE_32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_MEM_OP_WRITE_VALUE_64, __pyx_k_CU_STREAM_MEM_OP_WRITE_VALUE_64, sizeof(__pyx_k_CU_STREAM_MEM_OP_WRITE_VALUE_64), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_NON_BLOCKING, __pyx_k_CU_STREAM_NON_BLOCKING, sizeof(__pyx_k_CU_STREAM_NON_BLOCKING), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_PER_THREAD, __pyx_k_CU_STREAM_PER_THREAD, sizeof(__pyx_k_CU_STREAM_PER_THREAD), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_SET_CAPTURE_DEPENDENCI, __pyx_k_CU_STREAM_SET_CAPTURE_DEPENDENCI, sizeof(__pyx_k_CU_STREAM_SET_CAPTURE_DEPENDENCI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WAIT_VALUE_AND, __pyx_k_CU_STREAM_WAIT_VALUE_AND, sizeof(__pyx_k_CU_STREAM_WAIT_VALUE_AND), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WAIT_VALUE_EQ, __pyx_k_CU_STREAM_WAIT_VALUE_EQ, sizeof(__pyx_k_CU_STREAM_WAIT_VALUE_EQ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WAIT_VALUE_FLUSH, __pyx_k_CU_STREAM_WAIT_VALUE_FLUSH, sizeof(__pyx_k_CU_STREAM_WAIT_VALUE_FLUSH), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WAIT_VALUE_GEQ, __pyx_k_CU_STREAM_WAIT_VALUE_GEQ, sizeof(__pyx_k_CU_STREAM_WAIT_VALUE_GEQ), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WAIT_VALUE_NOR, __pyx_k_CU_STREAM_WAIT_VALUE_NOR, sizeof(__pyx_k_CU_STREAM_WAIT_VALUE_NOR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WRITE_VALUE_DEFAULT, __pyx_k_CU_STREAM_WRITE_VALUE_DEFAULT, sizeof(__pyx_k_CU_STREAM_WRITE_VALUE_DEFAULT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_STREAM_WRITE_VALUE_NO_MEMORY, __pyx_k_CU_STREAM_WRITE_VALUE_NO_MEMORY, sizeof(__pyx_k_CU_STREAM_WRITE_VALUE_NO_MEMORY), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SYNC_POLICY_AUTO, __pyx_k_CU_SYNC_POLICY_AUTO, sizeof(__pyx_k_CU_SYNC_POLICY_AUTO), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SYNC_POLICY_BLOCKING_SYNC, __pyx_k_CU_SYNC_POLICY_BLOCKING_SYNC, sizeof(__pyx_k_CU_SYNC_POLICY_BLOCKING_SYNC), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SYNC_POLICY_SPIN, __pyx_k_CU_SYNC_POLICY_SPIN, sizeof(__pyx_k_CU_SYNC_POLICY_SPIN), 0, 0, 1, 1},
  {&__pyx_n_s_CU_SYNC_POLICY_YIELD, __pyx_k_CU_SYNC_POLICY_YIELD, sizeof(__pyx_k_CU_SYNC_POLICY_YIELD), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_20, __pyx_k_CU_TARGET_COMPUTE_20, sizeof(__pyx_k_CU_TARGET_COMPUTE_20), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_21, __pyx_k_CU_TARGET_COMPUTE_21, sizeof(__pyx_k_CU_TARGET_COMPUTE_21), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_30, __pyx_k_CU_TARGET_COMPUTE_30, sizeof(__pyx_k_CU_TARGET_COMPUTE_30), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_32, __pyx_k_CU_TARGET_COMPUTE_32, sizeof(__pyx_k_CU_TARGET_COMPUTE_32), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_35, __pyx_k_CU_TARGET_COMPUTE_35, sizeof(__pyx_k_CU_TARGET_COMPUTE_35), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_37, __pyx_k_CU_TARGET_COMPUTE_37, sizeof(__pyx_k_CU_TARGET_COMPUTE_37), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_50, __pyx_k_CU_TARGET_COMPUTE_50, sizeof(__pyx_k_CU_TARGET_COMPUTE_50), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_52, __pyx_k_CU_TARGET_COMPUTE_52, sizeof(__pyx_k_CU_TARGET_COMPUTE_52), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_53, __pyx_k_CU_TARGET_COMPUTE_53, sizeof(__pyx_k_CU_TARGET_COMPUTE_53), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_60, __pyx_k_CU_TARGET_COMPUTE_60, sizeof(__pyx_k_CU_TARGET_COMPUTE_60), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_61, __pyx_k_CU_TARGET_COMPUTE_61, sizeof(__pyx_k_CU_TARGET_COMPUTE_61), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_62, __pyx_k_CU_TARGET_COMPUTE_62, sizeof(__pyx_k_CU_TARGET_COMPUTE_62), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_70, __pyx_k_CU_TARGET_COMPUTE_70, sizeof(__pyx_k_CU_TARGET_COMPUTE_70), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_72, __pyx_k_CU_TARGET_COMPUTE_72, sizeof(__pyx_k_CU_TARGET_COMPUTE_72), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_75, __pyx_k_CU_TARGET_COMPUTE_75, sizeof(__pyx_k_CU_TARGET_COMPUTE_75), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_80, __pyx_k_CU_TARGET_COMPUTE_80, sizeof(__pyx_k_CU_TARGET_COMPUTE_80), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TARGET_COMPUTE_86, __pyx_k_CU_TARGET_COMPUTE_86, sizeof(__pyx_k_CU_TARGET_COMPUTE_86), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TRSA_OVERRIDE_FORMAT, __pyx_k_CU_TRSA_OVERRIDE_FORMAT, sizeof(__pyx_k_CU_TRSA_OVERRIDE_FORMAT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TRSF_DISABLE_TRILINEAR_OPTIMI, __pyx_k_CU_TRSF_DISABLE_TRILINEAR_OPTIMI, sizeof(__pyx_k_CU_TRSF_DISABLE_TRILINEAR_OPTIMI), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TRSF_NORMALIZED_COORDINATES, __pyx_k_CU_TRSF_NORMALIZED_COORDINATES, sizeof(__pyx_k_CU_TRSF_NORMALIZED_COORDINATES), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TRSF_READ_AS_INTEGER, __pyx_k_CU_TRSF_READ_AS_INTEGER, sizeof(__pyx_k_CU_TRSF_READ_AS_INTEGER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TRSF_SRGB, __pyx_k_CU_TRSF_SRGB, sizeof(__pyx_k_CU_TRSF_SRGB), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TR_ADDRESS_MODE_BORDER, __pyx_k_CU_TR_ADDRESS_MODE_BORDER, sizeof(__pyx_k_CU_TR_ADDRESS_MODE_BORDER), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TR_ADDRESS_MODE_CLAMP, __pyx_k_CU_TR_ADDRESS_MODE_CLAMP, sizeof(__pyx_k_CU_TR_ADDRESS_MODE_CLAMP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TR_ADDRESS_MODE_MIRROR, __pyx_k_CU_TR_ADDRESS_MODE_MIRROR, sizeof(__pyx_k_CU_TR_ADDRESS_MODE_MIRROR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TR_ADDRESS_MODE_WRAP, __pyx_k_CU_TR_ADDRESS_MODE_WRAP, sizeof(__pyx_k_CU_TR_ADDRESS_MODE_WRAP), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TR_FILTER_MODE_LINEAR, __pyx_k_CU_TR_FILTER_MODE_LINEAR, sizeof(__pyx_k_CU_TR_FILTER_MODE_LINEAR), 0, 0, 1, 1},
  {&__pyx_n_s_CU_TR_FILTER_MODE_POINT, __pyx_k_CU_TR_FILTER_MODE_POINT, sizeof(__pyx_k_CU_TR_FILTER_MODE_POINT), 0, 0, 1, 1},
  {&__pyx_n_s_CU_USER_OBJECT_NO_DESTRUCTOR_SYN, __pyx_k_CU_USER_OBJECT_NO_DESTRUCTOR_SYN, sizeof(__pyx_k_CU_USER_OBJECT_NO_DESTRUCTOR_SYN), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessPolicyWindow, __pyx_k_CUaccessPolicyWindow, sizeof(__pyx_k_CUaccessPolicyWindow), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessPolicyWindow_st, __pyx_k_CUaccessPolicyWindow_st, sizeof(__pyx_k_CUaccessPolicyWindow_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessPolicyWindow_st___reduce, __pyx_k_CUaccessPolicyWindow_st___reduce, sizeof(__pyx_k_CUaccessPolicyWindow_st___reduce), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessPolicyWindow_st___setsta, __pyx_k_CUaccessPolicyWindow_st___setsta, sizeof(__pyx_k_CUaccessPolicyWindow_st___setsta), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessPolicyWindow_st_getPtr, __pyx_k_CUaccessPolicyWindow_st_getPtr, sizeof(__pyx_k_CUaccessPolicyWindow_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessPolicyWindow_v1, __pyx_k_CUaccessPolicyWindow_v1, sizeof(__pyx_k_CUaccessPolicyWindow_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUaccessProperty, __pyx_k_CUaccessProperty, sizeof(__pyx_k_CUaccessProperty), 0, 0, 1, 1},
  {&__pyx_n_s_CUaddress_mode, __pyx_k_CUaddress_mode, sizeof(__pyx_k_CUaddress_mode), 0, 0, 1, 1},
  {&__pyx_kp_u_CUarray, __pyx_k_CUarray, sizeof(__pyx_k_CUarray), 0, 1, 0, 0},
  {&__pyx_n_s_CUarrayMapInfo, __pyx_k_CUarrayMapInfo, sizeof(__pyx_k_CUarrayMapInfo), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_st, __pyx_k_CUarrayMapInfo_st, sizeof(__pyx_k_CUarrayMapInfo_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_st___reduce_cytho, __pyx_k_CUarrayMapInfo_st___reduce_cytho, sizeof(__pyx_k_CUarrayMapInfo_st___reduce_cytho), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_st___setstate_cyt, __pyx_k_CUarrayMapInfo_st___setstate_cyt, sizeof(__pyx_k_CUarrayMapInfo_st___setstate_cyt), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_st_getPtr, __pyx_k_CUarrayMapInfo_st_getPtr, sizeof(__pyx_k_CUarrayMapInfo_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1, __pyx_k_CUarrayMapInfo_v1, sizeof(__pyx_k_CUarrayMapInfo_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_10, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_10, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_10), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_11, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_11, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_11), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_12, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_12, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_12), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_13, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_13, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_13), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_14, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_14, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_14), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_15, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_15, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_15), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_16, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_16, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_16), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_17, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_17, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_17), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_18, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_18, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_18), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_19, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_19, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_19), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_2, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_2, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_20, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_20, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_20), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_3, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_3, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_4, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_4, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_5, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_5, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_6, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_6, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_6), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_7, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_7, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_7), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_8, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_8, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_8), 0, 0, 1, 1},
  {&__pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_9, __pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_9, sizeof(__pyx_k_CUarrayMapInfo_v1_CUarrayMapInf_9), 0, 0, 1, 1},
  {&__pyx_n_s_CUarraySparseSubresourceType, __pyx_k_CUarraySparseSubresourceType, sizeof(__pyx_k_CUarraySparseSubresourceType), 0, 0, 1, 1},
  {&__pyx_n_s_CUarray_2, __pyx_k_CUarray_2, sizeof(__pyx_k_CUarray_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUarray_2, __pyx_k_CUarray_2, sizeof(__pyx_k_CUarray_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUarray___reduce_cython, __pyx_k_CUarray___reduce_cython, sizeof(__pyx_k_CUarray___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUarray___setstate_cython, __pyx_k_CUarray___setstate_cython, sizeof(__pyx_k_CUarray___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUarray_cubemap_face, __pyx_k_CUarray_cubemap_face, sizeof(__pyx_k_CUarray_cubemap_face), 0, 0, 1, 1},
  {&__pyx_n_s_CUarray_format, __pyx_k_CUarray_format, sizeof(__pyx_k_CUarray_format), 0, 0, 1, 1},
  {&__pyx_n_s_CUarray_getPtr, __pyx_k_CUarray_getPtr, sizeof(__pyx_k_CUarray_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUcomputemode, __pyx_k_CUcomputemode, sizeof(__pyx_k_CUcomputemode), 0, 0, 1, 1},
  {&__pyx_kp_u_CUcontext, __pyx_k_CUcontext, sizeof(__pyx_k_CUcontext), 0, 1, 0, 0},
  {&__pyx_n_s_CUcontext_2, __pyx_k_CUcontext_2, sizeof(__pyx_k_CUcontext_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUcontext_2, __pyx_k_CUcontext_2, sizeof(__pyx_k_CUcontext_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUcontext___reduce_cython, __pyx_k_CUcontext___reduce_cython, sizeof(__pyx_k_CUcontext___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUcontext___setstate_cython, __pyx_k_CUcontext___setstate_cython, sizeof(__pyx_k_CUcontext___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUcontext_getPtr, __pyx_k_CUcontext_getPtr, sizeof(__pyx_k_CUcontext_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUctx_flags, __pyx_k_CUctx_flags, sizeof(__pyx_k_CUctx_flags), 0, 0, 1, 1},
  {&__pyx_kp_u_CUdevice, __pyx_k_CUdevice, sizeof(__pyx_k_CUdevice), 0, 1, 0, 0},
  {&__pyx_n_s_CUdevice_2, __pyx_k_CUdevice_2, sizeof(__pyx_k_CUdevice_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUdevice_2, __pyx_k_CUdevice_2, sizeof(__pyx_k_CUdevice_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUdevice_P2PAttribute, __pyx_k_CUdevice_P2PAttribute, sizeof(__pyx_k_CUdevice_P2PAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice___reduce_cython, __pyx_k_CUdevice___reduce_cython, sizeof(__pyx_k_CUdevice___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice___setstate_cython, __pyx_k_CUdevice___setstate_cython, sizeof(__pyx_k_CUdevice___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice_attribute, __pyx_k_CUdevice_attribute, sizeof(__pyx_k_CUdevice_attribute), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice_getPtr, __pyx_k_CUdevice_getPtr, sizeof(__pyx_k_CUdevice_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUdevice_v1, __pyx_k_CUdevice_v1, sizeof(__pyx_k_CUdevice_v1), 0, 1, 0, 0},
  {&__pyx_n_s_CUdevice_v1_2, __pyx_k_CUdevice_v1_2, sizeof(__pyx_k_CUdevice_v1_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice_v1___reduce_cython, __pyx_k_CUdevice_v1___reduce_cython, sizeof(__pyx_k_CUdevice_v1___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice_v1___setstate_cython, __pyx_k_CUdevice_v1___setstate_cython, sizeof(__pyx_k_CUdevice_v1___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevice_v1_getPtr, __pyx_k_CUdevice_v1_getPtr, sizeof(__pyx_k_CUdevice_v1_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUdeviceptr, __pyx_k_CUdeviceptr, sizeof(__pyx_k_CUdeviceptr), 0, 1, 0, 0},
  {&__pyx_n_s_CUdeviceptr_2, __pyx_k_CUdeviceptr_2, sizeof(__pyx_k_CUdeviceptr_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUdeviceptr_2, __pyx_k_CUdeviceptr_2, sizeof(__pyx_k_CUdeviceptr_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUdeviceptr___reduce_cython, __pyx_k_CUdeviceptr___reduce_cython, sizeof(__pyx_k_CUdeviceptr___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdeviceptr___setstate_cython, __pyx_k_CUdeviceptr___setstate_cython, sizeof(__pyx_k_CUdeviceptr___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdeviceptr_getPtr, __pyx_k_CUdeviceptr_getPtr, sizeof(__pyx_k_CUdeviceptr_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUdeviceptr_v2, __pyx_k_CUdeviceptr_v2, sizeof(__pyx_k_CUdeviceptr_v2), 0, 1, 0, 0},
  {&__pyx_n_s_CUdeviceptr_v2_2, __pyx_k_CUdeviceptr_v2_2, sizeof(__pyx_k_CUdeviceptr_v2_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUdeviceptr_v2___reduce_cython, __pyx_k_CUdeviceptr_v2___reduce_cython, sizeof(__pyx_k_CUdeviceptr_v2___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdeviceptr_v2___setstate_cython, __pyx_k_CUdeviceptr_v2___setstate_cython, sizeof(__pyx_k_CUdeviceptr_v2___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdeviceptr_v2_getPtr, __pyx_k_CUdeviceptr_v2_getPtr, sizeof(__pyx_k_CUdeviceptr_v2_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevprop, __pyx_k_CUdevprop, sizeof(__pyx_k_CUdevprop), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevprop_st, __pyx_k_CUdevprop_st, sizeof(__pyx_k_CUdevprop_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevprop_st___reduce_cython, __pyx_k_CUdevprop_st___reduce_cython, sizeof(__pyx_k_CUdevprop_st___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevprop_st___setstate_cython, __pyx_k_CUdevprop_st___setstate_cython, sizeof(__pyx_k_CUdevprop_st___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevprop_st_getPtr, __pyx_k_CUdevprop_st_getPtr, sizeof(__pyx_k_CUdevprop_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUdevprop_v1, __pyx_k_CUdevprop_v1, sizeof(__pyx_k_CUdevprop_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUdriverProcAddress_flags, __pyx_k_CUdriverProcAddress_flags, sizeof(__pyx_k_CUdriverProcAddress_flags), 0, 0, 1, 1},
  {&__pyx_kp_u_CUevent, __pyx_k_CUevent, sizeof(__pyx_k_CUevent), 0, 1, 0, 0},
  {&__pyx_n_s_CUevent_2, __pyx_k_CUevent_2, sizeof(__pyx_k_CUevent_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUevent_2, __pyx_k_CUevent_2, sizeof(__pyx_k_CUevent_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUevent___reduce_cython, __pyx_k_CUevent___reduce_cython, sizeof(__pyx_k_CUevent___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUevent___setstate_cython, __pyx_k_CUevent___setstate_cython, sizeof(__pyx_k_CUevent___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUevent_flags, __pyx_k_CUevent_flags, sizeof(__pyx_k_CUevent_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUevent_getPtr, __pyx_k_CUevent_getPtr, sizeof(__pyx_k_CUevent_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUevent_record_flags, __pyx_k_CUevent_record_flags, sizeof(__pyx_k_CUevent_record_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUevent_wait_flags, __pyx_k_CUevent_wait_flags, sizeof(__pyx_k_CUevent_wait_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam, __pyx_k_CUexecAffinityParam, sizeof(__pyx_k_CUexecAffinityParam), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_st, __pyx_k_CUexecAffinityParam_st, sizeof(__pyx_k_CUexecAffinityParam_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_st___reduce, __pyx_k_CUexecAffinityParam_st___reduce, sizeof(__pyx_k_CUexecAffinityParam_st___reduce), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_st___setstat, __pyx_k_CUexecAffinityParam_st___setstat, sizeof(__pyx_k_CUexecAffinityParam_st___setstat), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_st_getPtr, __pyx_k_CUexecAffinityParam_st_getPtr, sizeof(__pyx_k_CUexecAffinityParam_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_v1, __pyx_k_CUexecAffinityParam_v1, sizeof(__pyx_k_CUexecAffinityParam_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_v1_CUexecAf, __pyx_k_CUexecAffinityParam_v1_CUexecAf, sizeof(__pyx_k_CUexecAffinityParam_v1_CUexecAf), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_v1_CUexecAf_2, __pyx_k_CUexecAffinityParam_v1_CUexecAf_2, sizeof(__pyx_k_CUexecAffinityParam_v1_CUexecAf_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_v1_CUexecAf_3, __pyx_k_CUexecAffinityParam_v1_CUexecAf_3, sizeof(__pyx_k_CUexecAffinityParam_v1_CUexecAf_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityParam_v1_CUexecAf_4, __pyx_k_CUexecAffinityParam_v1_CUexecAf_4, sizeof(__pyx_k_CUexecAffinityParam_v1_CUexecAf_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinitySmCount, __pyx_k_CUexecAffinitySmCount, sizeof(__pyx_k_CUexecAffinitySmCount), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinitySmCount_st, __pyx_k_CUexecAffinitySmCount_st, sizeof(__pyx_k_CUexecAffinitySmCount_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinitySmCount_st___reduc, __pyx_k_CUexecAffinitySmCount_st___reduc, sizeof(__pyx_k_CUexecAffinitySmCount_st___reduc), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinitySmCount_st___setst, __pyx_k_CUexecAffinitySmCount_st___setst, sizeof(__pyx_k_CUexecAffinitySmCount_st___setst), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinitySmCount_st_getPtr, __pyx_k_CUexecAffinitySmCount_st_getPtr, sizeof(__pyx_k_CUexecAffinitySmCount_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinitySmCount_v1, __pyx_k_CUexecAffinitySmCount_v1, sizeof(__pyx_k_CUexecAffinitySmCount_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUexecAffinityType, __pyx_k_CUexecAffinityType, sizeof(__pyx_k_CUexecAffinityType), 0, 0, 1, 1},
  {&__pyx_kp_u_CUexternalMemory, __pyx_k_CUexternalMemory, sizeof(__pyx_k_CUexternalMemory), 0, 1, 0, 0},
  {&__pyx_n_s_CUexternalMemoryHandleType, __pyx_k_CUexternalMemoryHandleType, sizeof(__pyx_k_CUexternalMemoryHandleType), 0, 0, 1, 1},
  {&__pyx_n_s_CUexternalMemory_2, __pyx_k_CUexternalMemory_2, sizeof(__pyx_k_CUexternalMemory_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUexternalMemory_2, __pyx_k_CUexternalMemory_2, sizeof(__pyx_k_CUexternalMemory_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUexternalMemory___reduce_cython, __pyx_k_CUexternalMemory___reduce_cython, sizeof(__pyx_k_CUexternalMemory___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUexternalMemory___setstate_cyth, __pyx_k_CUexternalMemory___setstate_cyth, sizeof(__pyx_k_CUexternalMemory___setstate_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUexternalMemory_getPtr, __pyx_k_CUexternalMemory_getPtr, sizeof(__pyx_k_CUexternalMemory_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUexternalSemaphore, __pyx_k_CUexternalSemaphore, sizeof(__pyx_k_CUexternalSemaphore), 0, 1, 0, 0},
  {&__pyx_n_s_CUexternalSemaphoreHandleType, __pyx_k_CUexternalSemaphoreHandleType, sizeof(__pyx_k_CUexternalSemaphoreHandleType), 0, 0, 1, 1},
  {&__pyx_n_s_CUexternalSemaphore_2, __pyx_k_CUexternalSemaphore_2, sizeof(__pyx_k_CUexternalSemaphore_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUexternalSemaphore_2, __pyx_k_CUexternalSemaphore_2, sizeof(__pyx_k_CUexternalSemaphore_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUexternalSemaphore___reduce_cyt, __pyx_k_CUexternalSemaphore___reduce_cyt, sizeof(__pyx_k_CUexternalSemaphore___reduce_cyt), 0, 0, 1, 1},
  {&__pyx_n_s_CUexternalSemaphore___setstate_c, __pyx_k_CUexternalSemaphore___setstate_c, sizeof(__pyx_k_CUexternalSemaphore___setstate_c), 0, 0, 1, 1},
  {&__pyx_n_s_CUexternalSemaphore_getPtr, __pyx_k_CUexternalSemaphore_getPtr, sizeof(__pyx_k_CUexternalSemaphore_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUfilter_mode, __pyx_k_CUfilter_mode, sizeof(__pyx_k_CUfilter_mode), 0, 0, 1, 1},
  {&__pyx_n_s_CUflushGPUDirectRDMAWritesOption, __pyx_k_CUflushGPUDirectRDMAWritesOption, sizeof(__pyx_k_CUflushGPUDirectRDMAWritesOption), 0, 0, 1, 1},
  {&__pyx_n_s_CUflushGPUDirectRDMAWritesScope, __pyx_k_CUflushGPUDirectRDMAWritesScope, sizeof(__pyx_k_CUflushGPUDirectRDMAWritesScope), 0, 0, 1, 1},
  {&__pyx_n_s_CUflushGPUDirectRDMAWritesTarget, __pyx_k_CUflushGPUDirectRDMAWritesTarget, sizeof(__pyx_k_CUflushGPUDirectRDMAWritesTarget), 0, 0, 1, 1},
  {&__pyx_n_s_CUfunc_cache, __pyx_k_CUfunc_cache, sizeof(__pyx_k_CUfunc_cache), 0, 0, 1, 1},
  {&__pyx_kp_u_CUfunction, __pyx_k_CUfunction, sizeof(__pyx_k_CUfunction), 0, 1, 0, 0},
  {&__pyx_n_s_CUfunction_2, __pyx_k_CUfunction_2, sizeof(__pyx_k_CUfunction_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUfunction_2, __pyx_k_CUfunction_2, sizeof(__pyx_k_CUfunction_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUfunction___reduce_cython, __pyx_k_CUfunction___reduce_cython, sizeof(__pyx_k_CUfunction___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUfunction___setstate_cython, __pyx_k_CUfunction___setstate_cython, sizeof(__pyx_k_CUfunction___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUfunction_attribute, __pyx_k_CUfunction_attribute, sizeof(__pyx_k_CUfunction_attribute), 0, 0, 1, 1},
  {&__pyx_n_s_CUfunction_getPtr, __pyx_k_CUfunction_getPtr, sizeof(__pyx_k_CUfunction_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUgraph, __pyx_k_CUgraph, sizeof(__pyx_k_CUgraph), 0, 1, 0, 0},
  {&__pyx_n_s_CUgraphDebugDot_flags, __pyx_k_CUgraphDebugDot_flags, sizeof(__pyx_k_CUgraphDebugDot_flags), 0, 0, 1, 1},
  {&__pyx_kp_u_CUgraphExec, __pyx_k_CUgraphExec, sizeof(__pyx_k_CUgraphExec), 0, 1, 0, 0},
  {&__pyx_n_s_CUgraphExecUpdateResult, __pyx_k_CUgraphExecUpdateResult, sizeof(__pyx_k_CUgraphExecUpdateResult), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphExec_2, __pyx_k_CUgraphExec_2, sizeof(__pyx_k_CUgraphExec_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUgraphExec_2, __pyx_k_CUgraphExec_2, sizeof(__pyx_k_CUgraphExec_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUgraphExec___reduce_cython, __pyx_k_CUgraphExec___reduce_cython, sizeof(__pyx_k_CUgraphExec___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphExec___setstate_cython, __pyx_k_CUgraphExec___setstate_cython, sizeof(__pyx_k_CUgraphExec___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphExec_getPtr, __pyx_k_CUgraphExec_getPtr, sizeof(__pyx_k_CUgraphExec_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphInstantiate_flags, __pyx_k_CUgraphInstantiate_flags, sizeof(__pyx_k_CUgraphInstantiate_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphMem_attribute, __pyx_k_CUgraphMem_attribute, sizeof(__pyx_k_CUgraphMem_attribute), 0, 0, 1, 1},
  {&__pyx_kp_u_CUgraphNode, __pyx_k_CUgraphNode, sizeof(__pyx_k_CUgraphNode), 0, 1, 0, 0},
  {&__pyx_n_s_CUgraphNodeType, __pyx_k_CUgraphNodeType, sizeof(__pyx_k_CUgraphNodeType), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphNode_2, __pyx_k_CUgraphNode_2, sizeof(__pyx_k_CUgraphNode_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUgraphNode_2, __pyx_k_CUgraphNode_2, sizeof(__pyx_k_CUgraphNode_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUgraphNode___reduce_cython, __pyx_k_CUgraphNode___reduce_cython, sizeof(__pyx_k_CUgraphNode___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphNode___setstate_cython, __pyx_k_CUgraphNode___setstate_cython, sizeof(__pyx_k_CUgraphNode___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphNode_getPtr, __pyx_k_CUgraphNode_getPtr, sizeof(__pyx_k_CUgraphNode_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraph_2, __pyx_k_CUgraph_2, sizeof(__pyx_k_CUgraph_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUgraph_2, __pyx_k_CUgraph_2, sizeof(__pyx_k_CUgraph_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUgraph___reduce_cython, __pyx_k_CUgraph___reduce_cython, sizeof(__pyx_k_CUgraph___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraph___setstate_cython, __pyx_k_CUgraph___setstate_cython, sizeof(__pyx_k_CUgraph___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraph_getPtr, __pyx_k_CUgraph_getPtr, sizeof(__pyx_k_CUgraph_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphicsMapResourceFlags, __pyx_k_CUgraphicsMapResourceFlags, sizeof(__pyx_k_CUgraphicsMapResourceFlags), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphicsRegisterFlags, __pyx_k_CUgraphicsRegisterFlags, sizeof(__pyx_k_CUgraphicsRegisterFlags), 0, 0, 1, 1},
  {&__pyx_kp_u_CUgraphicsResource, __pyx_k_CUgraphicsResource, sizeof(__pyx_k_CUgraphicsResource), 0, 1, 0, 0},
  {&__pyx_n_s_CUgraphicsResource_2, __pyx_k_CUgraphicsResource_2, sizeof(__pyx_k_CUgraphicsResource_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUgraphicsResource_2, __pyx_k_CUgraphicsResource_2, sizeof(__pyx_k_CUgraphicsResource_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUgraphicsResource___reduce_cyth, __pyx_k_CUgraphicsResource___reduce_cyth, sizeof(__pyx_k_CUgraphicsResource___reduce_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphicsResource___setstate_cy, __pyx_k_CUgraphicsResource___setstate_cy, sizeof(__pyx_k_CUgraphicsResource___setstate_cy), 0, 0, 1, 1},
  {&__pyx_n_s_CUgraphicsResource_getPtr, __pyx_k_CUgraphicsResource_getPtr, sizeof(__pyx_k_CUgraphicsResource_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUhostFn, __pyx_k_CUhostFn, sizeof(__pyx_k_CUhostFn), 0, 1, 0, 0},
  {&__pyx_n_s_CUhostFn_2, __pyx_k_CUhostFn_2, sizeof(__pyx_k_CUhostFn_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUhostFn_2, __pyx_k_CUhostFn_2, sizeof(__pyx_k_CUhostFn_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUhostFn___reduce_cython, __pyx_k_CUhostFn___reduce_cython, sizeof(__pyx_k_CUhostFn___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUhostFn___setstate_cython, __pyx_k_CUhostFn___setstate_cython, sizeof(__pyx_k_CUhostFn___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUhostFn_getPtr, __pyx_k_CUhostFn_getPtr, sizeof(__pyx_k_CUhostFn_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcEventHandle, __pyx_k_CUipcEventHandle, sizeof(__pyx_k_CUipcEventHandle), 0, 0, 1, 1},
  {&__pyx_n_u_CUipcEventHandle, __pyx_k_CUipcEventHandle, sizeof(__pyx_k_CUipcEventHandle), 0, 1, 0, 1},
  {&__pyx_n_s_CUipcEventHandle_st, __pyx_k_CUipcEventHandle_st, sizeof(__pyx_k_CUipcEventHandle_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcEventHandle_st___reduce_cyt, __pyx_k_CUipcEventHandle_st___reduce_cyt, sizeof(__pyx_k_CUipcEventHandle_st___reduce_cyt), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcEventHandle_st___setstate_c, __pyx_k_CUipcEventHandle_st___setstate_c, sizeof(__pyx_k_CUipcEventHandle_st___setstate_c), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcEventHandle_st_getPtr, __pyx_k_CUipcEventHandle_st_getPtr, sizeof(__pyx_k_CUipcEventHandle_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcEventHandle_v1, __pyx_k_CUipcEventHandle_v1, sizeof(__pyx_k_CUipcEventHandle_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcMemHandle, __pyx_k_CUipcMemHandle, sizeof(__pyx_k_CUipcMemHandle), 0, 0, 1, 1},
  {&__pyx_n_u_CUipcMemHandle, __pyx_k_CUipcMemHandle, sizeof(__pyx_k_CUipcMemHandle), 0, 1, 0, 1},
  {&__pyx_n_s_CUipcMemHandle_st, __pyx_k_CUipcMemHandle_st, sizeof(__pyx_k_CUipcMemHandle_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcMemHandle_st___reduce_cytho, __pyx_k_CUipcMemHandle_st___reduce_cytho, sizeof(__pyx_k_CUipcMemHandle_st___reduce_cytho), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcMemHandle_st___setstate_cyt, __pyx_k_CUipcMemHandle_st___setstate_cyt, sizeof(__pyx_k_CUipcMemHandle_st___setstate_cyt), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcMemHandle_st_getPtr, __pyx_k_CUipcMemHandle_st_getPtr, sizeof(__pyx_k_CUipcMemHandle_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcMemHandle_v1, __pyx_k_CUipcMemHandle_v1, sizeof(__pyx_k_CUipcMemHandle_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUipcMem_flags, __pyx_k_CUipcMem_flags, sizeof(__pyx_k_CUipcMem_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUjitInputType, __pyx_k_CUjitInputType, sizeof(__pyx_k_CUjitInputType), 0, 0, 1, 1},
  {&__pyx_n_s_CUjit_cacheMode, __pyx_k_CUjit_cacheMode, sizeof(__pyx_k_CUjit_cacheMode), 0, 0, 1, 1},
  {&__pyx_n_s_CUjit_fallback, __pyx_k_CUjit_fallback, sizeof(__pyx_k_CUjit_fallback), 0, 0, 1, 1},
  {&__pyx_n_s_CUjit_option, __pyx_k_CUjit_option, sizeof(__pyx_k_CUjit_option), 0, 0, 1, 1},
  {&__pyx_n_s_CUjit_target, __pyx_k_CUjit_target, sizeof(__pyx_k_CUjit_target), 0, 0, 1, 1},
  {&__pyx_n_s_CUkernelNodeAttrID, __pyx_k_CUkernelNodeAttrID, sizeof(__pyx_k_CUkernelNodeAttrID), 0, 0, 1, 1},
  {&__pyx_n_s_CUkernelNodeAttrValue, __pyx_k_CUkernelNodeAttrValue, sizeof(__pyx_k_CUkernelNodeAttrValue), 0, 0, 1, 1},
  {&__pyx_n_u_CUkernelNodeAttrValue, __pyx_k_CUkernelNodeAttrValue, sizeof(__pyx_k_CUkernelNodeAttrValue), 0, 1, 0, 1},
  {&__pyx_n_s_CUkernelNodeAttrValue_union, __pyx_k_CUkernelNodeAttrValue_union, sizeof(__pyx_k_CUkernelNodeAttrValue_union), 0, 0, 1, 1},
  {&__pyx_n_s_CUkernelNodeAttrValue_union___re, __pyx_k_CUkernelNodeAttrValue_union___re, sizeof(__pyx_k_CUkernelNodeAttrValue_union___re), 0, 0, 1, 1},
  {&__pyx_n_s_CUkernelNodeAttrValue_union___se, __pyx_k_CUkernelNodeAttrValue_union___se, sizeof(__pyx_k_CUkernelNodeAttrValue_union___se), 0, 0, 1, 1},
  {&__pyx_n_s_CUkernelNodeAttrValue_union_getP, __pyx_k_CUkernelNodeAttrValue_union_getP, sizeof(__pyx_k_CUkernelNodeAttrValue_union_getP), 0, 0, 1, 1},
  {&__pyx_n_s_CUkernelNodeAttrValue_v1, __pyx_k_CUkernelNodeAttrValue_v1, sizeof(__pyx_k_CUkernelNodeAttrValue_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUlimit, __pyx_k_CUlimit, sizeof(__pyx_k_CUlimit), 0, 0, 1, 1},
  {&__pyx_kp_u_CUlinkState, __pyx_k_CUlinkState, sizeof(__pyx_k_CUlinkState), 0, 1, 0, 0},
  {&__pyx_n_s_CUlinkState_2, __pyx_k_CUlinkState_2, sizeof(__pyx_k_CUlinkState_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUlinkState_2, __pyx_k_CUlinkState_2, sizeof(__pyx_k_CUlinkState_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUlinkState___reduce_cython, __pyx_k_CUlinkState___reduce_cython, sizeof(__pyx_k_CUlinkState___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUlinkState___setstate_cython, __pyx_k_CUlinkState___setstate_cython, sizeof(__pyx_k_CUlinkState___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUlinkState_getPtr, __pyx_k_CUlinkState_getPtr, sizeof(__pyx_k_CUlinkState_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccessDesc, __pyx_k_CUmemAccessDesc, sizeof(__pyx_k_CUmemAccessDesc), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccessDesc_st, __pyx_k_CUmemAccessDesc_st, sizeof(__pyx_k_CUmemAccessDesc_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccessDesc_st___reduce_cyth, __pyx_k_CUmemAccessDesc_st___reduce_cyth, sizeof(__pyx_k_CUmemAccessDesc_st___reduce_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccessDesc_st___setstate_cy, __pyx_k_CUmemAccessDesc_st___setstate_cy, sizeof(__pyx_k_CUmemAccessDesc_st___setstate_cy), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccessDesc_st_getPtr, __pyx_k_CUmemAccessDesc_st_getPtr, sizeof(__pyx_k_CUmemAccessDesc_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccessDesc_v1, __pyx_k_CUmemAccessDesc_v1, sizeof(__pyx_k_CUmemAccessDesc_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAccess_flags, __pyx_k_CUmemAccess_flags, sizeof(__pyx_k_CUmemAccess_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationCompType, __pyx_k_CUmemAllocationCompType, sizeof(__pyx_k_CUmemAllocationCompType), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationGranularity_flags, __pyx_k_CUmemAllocationGranularity_flags, sizeof(__pyx_k_CUmemAllocationGranularity_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationHandleType, __pyx_k_CUmemAllocationHandleType, sizeof(__pyx_k_CUmemAllocationHandleType), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp, __pyx_k_CUmemAllocationProp, sizeof(__pyx_k_CUmemAllocationProp), 0, 0, 1, 1},
  {&__pyx_n_u_CUmemAllocationProp, __pyx_k_CUmemAllocationProp, sizeof(__pyx_k_CUmemAllocationProp), 0, 1, 0, 1},
  {&__pyx_n_s_CUmemAllocationProp_st, __pyx_k_CUmemAllocationProp_st, sizeof(__pyx_k_CUmemAllocationProp_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_st___reduce, __pyx_k_CUmemAllocationProp_st___reduce, sizeof(__pyx_k_CUmemAllocationProp_st___reduce), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_st___setstat, __pyx_k_CUmemAllocationProp_st___setstat, sizeof(__pyx_k_CUmemAllocationProp_st___setstat), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_st_getPtr, __pyx_k_CUmemAllocationProp_st_getPtr, sizeof(__pyx_k_CUmemAllocationProp_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_v1, __pyx_k_CUmemAllocationProp_v1, sizeof(__pyx_k_CUmemAllocationProp_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_v1_CUmemAll, __pyx_k_CUmemAllocationProp_v1_CUmemAll, sizeof(__pyx_k_CUmemAllocationProp_v1_CUmemAll), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_v1_CUmemAll_2, __pyx_k_CUmemAllocationProp_v1_CUmemAll_2, sizeof(__pyx_k_CUmemAllocationProp_v1_CUmemAll_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_v1_CUmemAll_3, __pyx_k_CUmemAllocationProp_v1_CUmemAll_3, sizeof(__pyx_k_CUmemAllocationProp_v1_CUmemAll_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationProp_v1_CUmemAll_4, __pyx_k_CUmemAllocationProp_v1_CUmemAll_4, sizeof(__pyx_k_CUmemAllocationProp_v1_CUmemAll_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAllocationType, __pyx_k_CUmemAllocationType, sizeof(__pyx_k_CUmemAllocationType), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemAttach_flags, __pyx_k_CUmemAttach_flags, sizeof(__pyx_k_CUmemAttach_flags), 0, 0, 1, 1},
  {&__pyx_kp_u_CUmemGenericAllocationHandle, __pyx_k_CUmemGenericAllocationHandle, sizeof(__pyx_k_CUmemGenericAllocationHandle), 0, 1, 0, 0},
  {&__pyx_n_s_CUmemGenericAllocationHandle_2, __pyx_k_CUmemGenericAllocationHandle_2, sizeof(__pyx_k_CUmemGenericAllocationHandle_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUmemGenericAllocationHandle_2, __pyx_k_CUmemGenericAllocationHandle_2, sizeof(__pyx_k_CUmemGenericAllocationHandle_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUmemGenericAllocationHandle___r, __pyx_k_CUmemGenericAllocationHandle___r, sizeof(__pyx_k_CUmemGenericAllocationHandle___r), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemGenericAllocationHandle___s, __pyx_k_CUmemGenericAllocationHandle___s, sizeof(__pyx_k_CUmemGenericAllocationHandle___s), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemGenericAllocationHandle_get, __pyx_k_CUmemGenericAllocationHandle_get, sizeof(__pyx_k_CUmemGenericAllocationHandle_get), 0, 0, 1, 1},
  {&__pyx_kp_u_CUmemGenericAllocationHandle_v1, __pyx_k_CUmemGenericAllocationHandle_v1, sizeof(__pyx_k_CUmemGenericAllocationHandle_v1), 0, 1, 0, 0},
  {&__pyx_n_s_CUmemGenericAllocationHandle_v1_2, __pyx_k_CUmemGenericAllocationHandle_v1_2, sizeof(__pyx_k_CUmemGenericAllocationHandle_v1_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemGenericAllocationHandle_v1_3, __pyx_k_CUmemGenericAllocationHandle_v1_3, sizeof(__pyx_k_CUmemGenericAllocationHandle_v1_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemGenericAllocationHandle_v1_4, __pyx_k_CUmemGenericAllocationHandle_v1_4, sizeof(__pyx_k_CUmemGenericAllocationHandle_v1_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemGenericAllocationHandle_v1_5, __pyx_k_CUmemGenericAllocationHandle_v1_5, sizeof(__pyx_k_CUmemGenericAllocationHandle_v1_5), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemHandleType, __pyx_k_CUmemHandleType, sizeof(__pyx_k_CUmemHandleType), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemLocation, __pyx_k_CUmemLocation, sizeof(__pyx_k_CUmemLocation), 0, 0, 1, 1},
  {&__pyx_n_u_CUmemLocation, __pyx_k_CUmemLocation, sizeof(__pyx_k_CUmemLocation), 0, 1, 0, 1},
  {&__pyx_n_s_CUmemLocationType, __pyx_k_CUmemLocationType, sizeof(__pyx_k_CUmemLocationType), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemLocation_st, __pyx_k_CUmemLocation_st, sizeof(__pyx_k_CUmemLocation_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemLocation_st___reduce_cython, __pyx_k_CUmemLocation_st___reduce_cython, sizeof(__pyx_k_CUmemLocation_st___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemLocation_st___setstate_cyth, __pyx_k_CUmemLocation_st___setstate_cyth, sizeof(__pyx_k_CUmemLocation_st___setstate_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemLocation_st_getPtr, __pyx_k_CUmemLocation_st_getPtr, sizeof(__pyx_k_CUmemLocation_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemLocation_v1, __pyx_k_CUmemLocation_v1, sizeof(__pyx_k_CUmemLocation_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemOperationType, __pyx_k_CUmemOperationType, sizeof(__pyx_k_CUmemOperationType), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolProps, __pyx_k_CUmemPoolProps, sizeof(__pyx_k_CUmemPoolProps), 0, 0, 1, 1},
  {&__pyx_n_u_CUmemPoolProps, __pyx_k_CUmemPoolProps, sizeof(__pyx_k_CUmemPoolProps), 0, 1, 0, 1},
  {&__pyx_n_s_CUmemPoolProps_st, __pyx_k_CUmemPoolProps_st, sizeof(__pyx_k_CUmemPoolProps_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolProps_st___reduce_cytho, __pyx_k_CUmemPoolProps_st___reduce_cytho, sizeof(__pyx_k_CUmemPoolProps_st___reduce_cytho), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolProps_st___setstate_cyt, __pyx_k_CUmemPoolProps_st___setstate_cyt, sizeof(__pyx_k_CUmemPoolProps_st___setstate_cyt), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolProps_st_getPtr, __pyx_k_CUmemPoolProps_st_getPtr, sizeof(__pyx_k_CUmemPoolProps_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolProps_v1, __pyx_k_CUmemPoolProps_v1, sizeof(__pyx_k_CUmemPoolProps_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolPtrExportData, __pyx_k_CUmemPoolPtrExportData, sizeof(__pyx_k_CUmemPoolPtrExportData), 0, 0, 1, 1},
  {&__pyx_n_u_CUmemPoolPtrExportData, __pyx_k_CUmemPoolPtrExportData, sizeof(__pyx_k_CUmemPoolPtrExportData), 0, 1, 0, 1},
  {&__pyx_n_s_CUmemPoolPtrExportData_st, __pyx_k_CUmemPoolPtrExportData_st, sizeof(__pyx_k_CUmemPoolPtrExportData_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolPtrExportData_st___redu, __pyx_k_CUmemPoolPtrExportData_st___redu, sizeof(__pyx_k_CUmemPoolPtrExportData_st___redu), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolPtrExportData_st___sets, __pyx_k_CUmemPoolPtrExportData_st___sets, sizeof(__pyx_k_CUmemPoolPtrExportData_st___sets), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolPtrExportData_st_getPtr, __pyx_k_CUmemPoolPtrExportData_st_getPtr, sizeof(__pyx_k_CUmemPoolPtrExportData_st_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPoolPtrExportData_v1, __pyx_k_CUmemPoolPtrExportData_v1, sizeof(__pyx_k_CUmemPoolPtrExportData_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemPool_attribute, __pyx_k_CUmemPool_attribute, sizeof(__pyx_k_CUmemPool_attribute), 0, 0, 1, 1},
  {&__pyx_n_s_CUmem_advise, __pyx_k_CUmem_advise, sizeof(__pyx_k_CUmem_advise), 0, 0, 1, 1},
  {&__pyx_n_s_CUmem_range_attribute, __pyx_k_CUmem_range_attribute, sizeof(__pyx_k_CUmem_range_attribute), 0, 0, 1, 1},
  {&__pyx_kp_u_CUmemoryPool, __pyx_k_CUmemoryPool, sizeof(__pyx_k_CUmemoryPool), 0, 1, 0, 0},
  {&__pyx_n_s_CUmemoryPool_2, __pyx_k_CUmemoryPool_2, sizeof(__pyx_k_CUmemoryPool_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUmemoryPool_2, __pyx_k_CUmemoryPool_2, sizeof(__pyx_k_CUmemoryPool_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUmemoryPool___reduce_cython, __pyx_k_CUmemoryPool___reduce_cython, sizeof(__pyx_k_CUmemoryPool___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemoryPool___setstate_cython, __pyx_k_CUmemoryPool___setstate_cython, sizeof(__pyx_k_CUmemoryPool___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemoryPool_getPtr, __pyx_k_CUmemoryPool_getPtr, sizeof(__pyx_k_CUmemoryPool_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUmemorytype, __pyx_k_CUmemorytype, sizeof(__pyx_k_CUmemorytype), 0, 0, 1, 1},
  {&__pyx_kp_u_CUmipmappedArray, __pyx_k_CUmipmappedArray, sizeof(__pyx_k_CUmipmappedArray), 0, 1, 0, 0},
  {&__pyx_n_s_CUmipmappedArray_2, __pyx_k_CUmipmappedArray_2, sizeof(__pyx_k_CUmipmappedArray_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUmipmappedArray_2, __pyx_k_CUmipmappedArray_2, sizeof(__pyx_k_CUmipmappedArray_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUmipmappedArray___reduce_cython, __pyx_k_CUmipmappedArray___reduce_cython, sizeof(__pyx_k_CUmipmappedArray___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUmipmappedArray___setstate_cyth, __pyx_k_CUmipmappedArray___setstate_cyth, sizeof(__pyx_k_CUmipmappedArray___setstate_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUmipmappedArray_getPtr, __pyx_k_CUmipmappedArray_getPtr, sizeof(__pyx_k_CUmipmappedArray_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUmodule, __pyx_k_CUmodule, sizeof(__pyx_k_CUmodule), 0, 1, 0, 0},
  {&__pyx_n_s_CUmodule_2, __pyx_k_CUmodule_2, sizeof(__pyx_k_CUmodule_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUmodule_2, __pyx_k_CUmodule_2, sizeof(__pyx_k_CUmodule_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUmodule___reduce_cython, __pyx_k_CUmodule___reduce_cython, sizeof(__pyx_k_CUmodule___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUmodule___setstate_cython, __pyx_k_CUmodule___setstate_cython, sizeof(__pyx_k_CUmodule___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUmodule_getPtr, __pyx_k_CUmodule_getPtr, sizeof(__pyx_k_CUmodule_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUoccupancyB2DSize, __pyx_k_CUoccupancyB2DSize, sizeof(__pyx_k_CUoccupancyB2DSize), 0, 1, 0, 0},
  {&__pyx_n_s_CUoccupancyB2DSize_2, __pyx_k_CUoccupancyB2DSize_2, sizeof(__pyx_k_CUoccupancyB2DSize_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUoccupancyB2DSize_2, __pyx_k_CUoccupancyB2DSize_2, sizeof(__pyx_k_CUoccupancyB2DSize_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUoccupancyB2DSize___reduce_cyth, __pyx_k_CUoccupancyB2DSize___reduce_cyth, sizeof(__pyx_k_CUoccupancyB2DSize___reduce_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUoccupancyB2DSize___setstate_cy, __pyx_k_CUoccupancyB2DSize___setstate_cy, sizeof(__pyx_k_CUoccupancyB2DSize___setstate_cy), 0, 0, 1, 1},
  {&__pyx_n_s_CUoccupancyB2DSize_getPtr, __pyx_k_CUoccupancyB2DSize_getPtr, sizeof(__pyx_k_CUoccupancyB2DSize_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUoccupancy_flags, __pyx_k_CUoccupancy_flags, sizeof(__pyx_k_CUoccupancy_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUpointer_attribute, __pyx_k_CUpointer_attribute, sizeof(__pyx_k_CUpointer_attribute), 0, 0, 1, 1},
  {&__pyx_n_s_CUresourceViewFormat, __pyx_k_CUresourceViewFormat, sizeof(__pyx_k_CUresourceViewFormat), 0, 0, 1, 1},
  {&__pyx_n_s_CUresourcetype, __pyx_k_CUresourcetype, sizeof(__pyx_k_CUresourcetype), 0, 0, 1, 1},
  {&__pyx_n_s_CUresult, __pyx_k_CUresult, sizeof(__pyx_k_CUresult), 0, 0, 1, 1},
  {&__pyx_n_s_CUshared_carveout, __pyx_k_CUshared_carveout, sizeof(__pyx_k_CUshared_carveout), 0, 0, 1, 1},
  {&__pyx_n_s_CUsharedconfig, __pyx_k_CUsharedconfig, sizeof(__pyx_k_CUsharedconfig), 0, 0, 1, 1},
  {&__pyx_kp_u_CUstream, __pyx_k_CUstream, sizeof(__pyx_k_CUstream), 0, 1, 0, 0},
  {&__pyx_n_s_CUstreamAttrID, __pyx_k_CUstreamAttrID, sizeof(__pyx_k_CUstreamAttrID), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamAttrValue, __pyx_k_CUstreamAttrValue, sizeof(__pyx_k_CUstreamAttrValue), 0, 0, 1, 1},
  {&__pyx_n_u_CUstreamAttrValue, __pyx_k_CUstreamAttrValue, sizeof(__pyx_k_CUstreamAttrValue), 0, 1, 0, 1},
  {&__pyx_n_s_CUstreamAttrValue_union, __pyx_k_CUstreamAttrValue_union, sizeof(__pyx_k_CUstreamAttrValue_union), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamAttrValue_union___reduce, __pyx_k_CUstreamAttrValue_union___reduce, sizeof(__pyx_k_CUstreamAttrValue_union___reduce), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamAttrValue_union___setsta, __pyx_k_CUstreamAttrValue_union___setsta, sizeof(__pyx_k_CUstreamAttrValue_union___setsta), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamAttrValue_union_getPtr, __pyx_k_CUstreamAttrValue_union_getPtr, sizeof(__pyx_k_CUstreamAttrValue_union_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamAttrValue_v1, __pyx_k_CUstreamAttrValue_v1, sizeof(__pyx_k_CUstreamAttrValue_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpParams, __pyx_k_CUstreamBatchMemOpParams, sizeof(__pyx_k_CUstreamBatchMemOpParams), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpParams_union, __pyx_k_CUstreamBatchMemOpParams_union, sizeof(__pyx_k_CUstreamBatchMemOpParams_union), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpParams_union_2, __pyx_k_CUstreamBatchMemOpParams_union_2, sizeof(__pyx_k_CUstreamBatchMemOpParams_union_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpParams_union_3, __pyx_k_CUstreamBatchMemOpParams_union_3, sizeof(__pyx_k_CUstreamBatchMemOpParams_union_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpParams_union_g, __pyx_k_CUstreamBatchMemOpParams_union_g, sizeof(__pyx_k_CUstreamBatchMemOpParams_union_g), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpParams_v1, __pyx_k_CUstreamBatchMemOpParams_v1, sizeof(__pyx_k_CUstreamBatchMemOpParams_v1), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamBatchMemOpType, __pyx_k_CUstreamBatchMemOpType, sizeof(__pyx_k_CUstreamBatchMemOpType), 0, 0, 1, 1},
  {&__pyx_kp_u_CUstreamCallback, __pyx_k_CUstreamCallback, sizeof(__pyx_k_CUstreamCallback), 0, 1, 0, 0},
  {&__pyx_n_s_CUstreamCallback_2, __pyx_k_CUstreamCallback_2, sizeof(__pyx_k_CUstreamCallback_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUstreamCallback_2, __pyx_k_CUstreamCallback_2, sizeof(__pyx_k_CUstreamCallback_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUstreamCallback___reduce_cython, __pyx_k_CUstreamCallback___reduce_cython, sizeof(__pyx_k_CUstreamCallback___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamCallback___setstate_cyth, __pyx_k_CUstreamCallback___setstate_cyth, sizeof(__pyx_k_CUstreamCallback___setstate_cyth), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamCallback_getPtr, __pyx_k_CUstreamCallback_getPtr, sizeof(__pyx_k_CUstreamCallback_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamCaptureMode, __pyx_k_CUstreamCaptureMode, sizeof(__pyx_k_CUstreamCaptureMode), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamCaptureStatus, __pyx_k_CUstreamCaptureStatus, sizeof(__pyx_k_CUstreamCaptureStatus), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa, __pyx_k_CUstreamMemOpFlushRemoteWritesPa, sizeof(__pyx_k_CUstreamMemOpFlushRemoteWritesPa), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_2, __pyx_k_CUstreamMemOpFlushRemoteWritesPa_2, sizeof(__pyx_k_CUstreamMemOpFlushRemoteWritesPa_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_3, __pyx_k_CUstreamMemOpFlushRemoteWritesPa_3, sizeof(__pyx_k_CUstreamMemOpFlushRemoteWritesPa_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_4, __pyx_k_CUstreamMemOpFlushRemoteWritesPa_4, sizeof(__pyx_k_CUstreamMemOpFlushRemoteWritesPa_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWaitValueParams_st, __pyx_k_CUstreamMemOpWaitValueParams_st, sizeof(__pyx_k_CUstreamMemOpWaitValueParams_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWaitValueParams_st_2, __pyx_k_CUstreamMemOpWaitValueParams_st_2, sizeof(__pyx_k_CUstreamMemOpWaitValueParams_st_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWaitValueParams_st_3, __pyx_k_CUstreamMemOpWaitValueParams_st_3, sizeof(__pyx_k_CUstreamMemOpWaitValueParams_st_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWaitValueParams_st_4, __pyx_k_CUstreamMemOpWaitValueParams_st_4, sizeof(__pyx_k_CUstreamMemOpWaitValueParams_st_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWriteValueParams_st, __pyx_k_CUstreamMemOpWriteValueParams_st, sizeof(__pyx_k_CUstreamMemOpWriteValueParams_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWriteValueParams_st_2, __pyx_k_CUstreamMemOpWriteValueParams_st_2, sizeof(__pyx_k_CUstreamMemOpWriteValueParams_st_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWriteValueParams_st_3, __pyx_k_CUstreamMemOpWriteValueParams_st_3, sizeof(__pyx_k_CUstreamMemOpWriteValueParams_st_3), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamMemOpWriteValueParams_st_4, __pyx_k_CUstreamMemOpWriteValueParams_st_4, sizeof(__pyx_k_CUstreamMemOpWriteValueParams_st_4), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamUpdateCaptureDependencie, __pyx_k_CUstreamUpdateCaptureDependencie, sizeof(__pyx_k_CUstreamUpdateCaptureDependencie), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamWaitValue_flags, __pyx_k_CUstreamWaitValue_flags, sizeof(__pyx_k_CUstreamWaitValue_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUstreamWriteValue_flags, __pyx_k_CUstreamWriteValue_flags, sizeof(__pyx_k_CUstreamWriteValue_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUstream_2, __pyx_k_CUstream_2, sizeof(__pyx_k_CUstream_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUstream_2, __pyx_k_CUstream_2, sizeof(__pyx_k_CUstream_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUstream___reduce_cython, __pyx_k_CUstream___reduce_cython, sizeof(__pyx_k_CUstream___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUstream___setstate_cython, __pyx_k_CUstream___setstate_cython, sizeof(__pyx_k_CUstream___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUstream_flags, __pyx_k_CUstream_flags, sizeof(__pyx_k_CUstream_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUstream_getPtr, __pyx_k_CUstream_getPtr, sizeof(__pyx_k_CUstream_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUsurfObject, __pyx_k_CUsurfObject, sizeof(__pyx_k_CUsurfObject), 0, 1, 0, 0},
  {&__pyx_n_s_CUsurfObject_2, __pyx_k_CUsurfObject_2, sizeof(__pyx_k_CUsurfObject_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUsurfObject_2, __pyx_k_CUsurfObject_2, sizeof(__pyx_k_CUsurfObject_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUsurfObject___reduce_cython, __pyx_k_CUsurfObject___reduce_cython, sizeof(__pyx_k_CUsurfObject___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfObject___setstate_cython, __pyx_k_CUsurfObject___setstate_cython, sizeof(__pyx_k_CUsurfObject___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfObject_getPtr, __pyx_k_CUsurfObject_getPtr, sizeof(__pyx_k_CUsurfObject_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUsurfObject_v1, __pyx_k_CUsurfObject_v1, sizeof(__pyx_k_CUsurfObject_v1), 0, 1, 0, 0},
  {&__pyx_n_s_CUsurfObject_v1_2, __pyx_k_CUsurfObject_v1_2, sizeof(__pyx_k_CUsurfObject_v1_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfObject_v1___reduce_cython, __pyx_k_CUsurfObject_v1___reduce_cython, sizeof(__pyx_k_CUsurfObject_v1___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfObject_v1___setstate_cytho, __pyx_k_CUsurfObject_v1___setstate_cytho, sizeof(__pyx_k_CUsurfObject_v1___setstate_cytho), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfObject_v1_getPtr, __pyx_k_CUsurfObject_v1_getPtr, sizeof(__pyx_k_CUsurfObject_v1_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUsurfref, __pyx_k_CUsurfref, sizeof(__pyx_k_CUsurfref), 0, 1, 0, 0},
  {&__pyx_n_s_CUsurfref_2, __pyx_k_CUsurfref_2, sizeof(__pyx_k_CUsurfref_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUsurfref_2, __pyx_k_CUsurfref_2, sizeof(__pyx_k_CUsurfref_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUsurfref___reduce_cython, __pyx_k_CUsurfref___reduce_cython, sizeof(__pyx_k_CUsurfref___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfref___setstate_cython, __pyx_k_CUsurfref___setstate_cython, sizeof(__pyx_k_CUsurfref___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUsurfref_getPtr, __pyx_k_CUsurfref_getPtr, sizeof(__pyx_k_CUsurfref_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUsynchronizationPolicy, __pyx_k_CUsynchronizationPolicy, sizeof(__pyx_k_CUsynchronizationPolicy), 0, 0, 1, 1},
  {&__pyx_kp_u_CUtexObject, __pyx_k_CUtexObject, sizeof(__pyx_k_CUtexObject), 0, 1, 0, 0},
  {&__pyx_n_s_CUtexObject_2, __pyx_k_CUtexObject_2, sizeof(__pyx_k_CUtexObject_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUtexObject_2, __pyx_k_CUtexObject_2, sizeof(__pyx_k_CUtexObject_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUtexObject___reduce_cython, __pyx_k_CUtexObject___reduce_cython, sizeof(__pyx_k_CUtexObject___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexObject___setstate_cython, __pyx_k_CUtexObject___setstate_cython, sizeof(__pyx_k_CUtexObject___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexObject_getPtr, __pyx_k_CUtexObject_getPtr, sizeof(__pyx_k_CUtexObject_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUtexObject_v1, __pyx_k_CUtexObject_v1, sizeof(__pyx_k_CUtexObject_v1), 0, 1, 0, 0},
  {&__pyx_n_s_CUtexObject_v1_2, __pyx_k_CUtexObject_v1_2, sizeof(__pyx_k_CUtexObject_v1_2), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexObject_v1___reduce_cython, __pyx_k_CUtexObject_v1___reduce_cython, sizeof(__pyx_k_CUtexObject_v1___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexObject_v1___setstate_cython, __pyx_k_CUtexObject_v1___setstate_cython, sizeof(__pyx_k_CUtexObject_v1___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexObject_v1_getPtr, __pyx_k_CUtexObject_v1_getPtr, sizeof(__pyx_k_CUtexObject_v1_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUtexref, __pyx_k_CUtexref, sizeof(__pyx_k_CUtexref), 0, 1, 0, 0},
  {&__pyx_n_s_CUtexref_2, __pyx_k_CUtexref_2, sizeof(__pyx_k_CUtexref_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUtexref_2, __pyx_k_CUtexref_2, sizeof(__pyx_k_CUtexref_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUtexref___reduce_cython, __pyx_k_CUtexref___reduce_cython, sizeof(__pyx_k_CUtexref___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexref___setstate_cython, __pyx_k_CUtexref___setstate_cython, sizeof(__pyx_k_CUtexref___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUtexref_getPtr, __pyx_k_CUtexref_getPtr, sizeof(__pyx_k_CUtexref_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_CUuserObject, __pyx_k_CUuserObject, sizeof(__pyx_k_CUuserObject), 0, 1, 0, 0},
  {&__pyx_n_s_CUuserObjectRetain_flags, __pyx_k_CUuserObjectRetain_flags, sizeof(__pyx_k_CUuserObjectRetain_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUuserObject_2, __pyx_k_CUuserObject_2, sizeof(__pyx_k_CUuserObject_2), 0, 0, 1, 1},
  {&__pyx_n_u_CUuserObject_2, __pyx_k_CUuserObject_2, sizeof(__pyx_k_CUuserObject_2), 0, 1, 0, 1},
  {&__pyx_n_s_CUuserObject___reduce_cython, __pyx_k_CUuserObject___reduce_cython, sizeof(__pyx_k_CUuserObject___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUuserObject___setstate_cython, __pyx_k_CUuserObject___setstate_cython, sizeof(__pyx_k_CUuserObject___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUuserObject_flags, __pyx_k_CUuserObject_flags, sizeof(__pyx_k_CUuserObject_flags), 0, 0, 1, 1},
  {&__pyx_n_s_CUuserObject_getPtr, __pyx_k_CUuserObject_getPtr, sizeof(__pyx_k_CUuserObject_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_CUuuid, __pyx_k_CUuuid, sizeof(__pyx_k_CUuuid), 0, 0, 1, 1},
  {&__pyx_n_u_CUuuid, __pyx_k_CUuuid, sizeof(__pyx_k_CUuuid), 0, 1, 0, 1},
  {&__pyx_n_s_CUuuid_st, __pyx_k_CUuuid_st, sizeof(__pyx_k_CUuuid_st), 0, 0, 1, 1},
  {&__pyx_n_s_CUuuid_st___reduce_cython, __pyx_k_CUuuid_st___reduce_cython, sizeof(__pyx_k_CUuuid_st___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUuuid_st___setstate_cython, __pyx_k_CUuuid_st___setstate_cython, sizeof(__pyx_k_CUuuid_st___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_CUuuid_st_getPtr, __pyx_k_CUuuid_st_getPtr, sizeof(__pyx_k_CUuuid_st_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_s_Caching_modes_for_dlcm, __pyx_k_Caching_modes_for_dlcm, sizeof(__pyx_k_Caching_modes_for_dlcm), 0, 0, 1, 0},
  {&__pyx_kp_s_Compute_Modes, __pyx_k_Compute_Modes, sizeof(__pyx_k_Compute_Modes), 0, 0, 1, 0},
  {&__pyx_kp_s_Context_creation_flags, __pyx_k_Context_creation_flags, sizeof(__pyx_k_Context_creation_flags), 0, 0, 1, 0},
  {&__pyx_kp_s_Cubin_matching_fallback_strateg, __pyx_k_Cubin_matching_fallback_strateg, sizeof(__pyx_k_Cubin_matching_fallback_strateg), 0, 0, 1, 0},
  {&__pyx_kp_s_Defines_the_allocation_types_av, __pyx_k_Defines_the_allocation_types_av, sizeof(__pyx_k_Defines_the_allocation_types_av), 0, 0, 1, 0},
  {&__pyx_kp_u_Depth, __pyx_k_Depth, sizeof(__pyx_k_Depth), 0, 1, 0, 0},
  {&__pyx_n_s_Depth_2, __pyx_k_Depth_2, sizeof(__pyx_k_Depth_2), 0, 0, 1, 1},
  {&__pyx_kp_s_Device_code_formats, __pyx_k_Device_code_formats, sizeof(__pyx_k_Device_code_formats), 0, 0, 1, 0},
  {&__pyx_kp_s_Device_properties, __pyx_k_Device_properties, sizeof(__pyx_k_Device_properties), 0, 0, 1, 0},
  {&__pyx_n_s_ElementSizeBytes, __pyx_k_ElementSizeBytes, sizeof(__pyx_k_ElementSizeBytes), 0, 0, 1, 1},
  {&__pyx_n_s_Enum, __pyx_k_Enum, sizeof(__pyx_k_Enum), 0, 0, 1, 1},
  {&__pyx_kp_s_Error_codes, __pyx_k_Error_codes, sizeof(__pyx_k_Error_codes), 0, 0, 1, 0},
  {&__pyx_kp_s_Event_creation_flags, __pyx_k_Event_creation_flags, sizeof(__pyx_k_Event_creation_flags), 0, 0, 1, 0},
  {&__pyx_kp_s_Event_record_flags, __pyx_k_Event_record_flags, sizeof(__pyx_k_Event_record_flags), 0, 0, 1, 0},
  {&__pyx_kp_s_Event_wait_flags, __pyx_k_Event_wait_flags, sizeof(__pyx_k_Event_wait_flags), 0, 0, 1, 0},
  {&__pyx_kp_s_Execution_Affinity_Types, __pyx_k_Execution_Affinity_Types, sizeof(__pyx_k_Execution_Affinity_Types), 0, 0, 1, 0},
  {&__pyx_kp_s_External_memory_handle_types, __pyx_k_External_memory_handle_types, sizeof(__pyx_k_External_memory_handle_types), 0, 0, 1, 0},
  {&__pyx_kp_s_External_semaphore_handle_types, __pyx_k_External_semaphore_handle_types, sizeof(__pyx_k_External_semaphore_handle_types), 0, 0, 1, 0},
  {&__pyx_kp_u_Failed_to_allocate_length_x_size, __pyx_k_Failed_to_allocate_length_x_size, sizeof(__pyx_k_Failed_to_allocate_length_x_size), 0, 1, 0, 0},
  {&__pyx_kp_u_Failed_to_allocate_length_x_size_2, __pyx_k_Failed_to_allocate_length_x_size_2, sizeof(__pyx_k_Failed_to_allocate_length_x_size_2), 0, 1, 0, 0},
  {&__pyx_kp_s_Flag_for_requesting_different_o, __pyx_k_Flag_for_requesting_different_o, sizeof(__pyx_k_Flag_for_requesting_different_o), 0, 0, 1, 0},
  {&__pyx_kp_u_Flags, __pyx_k_Flags, sizeof(__pyx_k_Flags), 0, 1, 0, 0},
  {&__pyx_n_s_Flags_2, __pyx_k_Flags_2, sizeof(__pyx_k_Flags_2), 0, 0, 1, 1},
  {&__pyx_kp_s_Flags_for_cuStreamUpdateCapture, __pyx_k_Flags_for_cuStreamUpdateCapture, sizeof(__pyx_k_Flags_for_cuStreamUpdateCapture), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_cuStreamWaitValue32_a, __pyx_k_Flags_for_cuStreamWaitValue32_a, sizeof(__pyx_k_Flags_for_cuStreamWaitValue32_a), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_cuStreamWriteValue32, __pyx_k_Flags_for_cuStreamWriteValue32, sizeof(__pyx_k_Flags_for_cuStreamWriteValue32), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_instantiating_a_graph, __pyx_k_Flags_for_instantiating_a_graph, sizeof(__pyx_k_Flags_for_instantiating_a_graph), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_mapping_and_unmapping, __pyx_k_Flags_for_mapping_and_unmapping, sizeof(__pyx_k_Flags_for_mapping_and_unmapping), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_retaining_user_object, __pyx_k_Flags_for_retaining_user_object, sizeof(__pyx_k_Flags_for_retaining_user_object), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_specifying_particular, __pyx_k_Flags_for_specifying_particular, sizeof(__pyx_k_Flags_for_specifying_particular), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_for_user_objects_for_grap, __pyx_k_Flags_for_user_objects_for_grap, sizeof(__pyx_k_Flags_for_user_objects_for_grap), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_to_register_a_graphics_re, __pyx_k_Flags_to_register_a_graphics_re, sizeof(__pyx_k_Flags_to_register_a_graphics_re), 0, 0, 1, 0},
  {&__pyx_kp_s_Flags_to_specify_search_options, __pyx_k_Flags_to_specify_search_options, sizeof(__pyx_k_Flags_to_specify_search_options), 0, 0, 1, 0},
  {&__pyx_kp_u_Format, __pyx_k_Format, sizeof(__pyx_k_Format), 0, 1, 0, 0},
  {&__pyx_n_s_Format_2, __pyx_k_Format_2, sizeof(__pyx_k_Format_2), 0, 0, 1, 1},
  {&__pyx_kp_s_Function_cache_configurations, __pyx_k_Function_cache_configurations, sizeof(__pyx_k_Function_cache_configurations), 0, 0, 1, 0},
  {&__pyx_kp_s_Function_properties, __pyx_k_Function_properties, sizeof(__pyx_k_Function_properties), 0, 0, 1, 0},
  {&__pyx_kp_s_Graph_kernel_node_Attributes, __pyx_k_Graph_kernel_node_Attributes, sizeof(__pyx_k_Graph_kernel_node_Attributes), 0, 0, 1, 0},
  {&__pyx_kp_s_Graph_node_types, __pyx_k_Graph_node_types, sizeof(__pyx_k_Graph_node_types), 0, 0, 1, 0},
  {&__pyx_kp_u_Height, __pyx_k_Height, sizeof(__pyx_k_Height), 0, 1, 0, 0},
  {&__pyx_n_s_Height_2, __pyx_k_Height_2, sizeof(__pyx_k_Height_2), 0, 0, 1, 1},
  {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
  {&__pyx_kp_s_Limits, __pyx_k_Limits, sizeof(__pyx_k_Limits), 0, 0, 1, 0},
  {&__pyx_n_s_List, __pyx_k_List, sizeof(__pyx_k_List), 0, 0, 1, 1},
  {&__pyx_kp_u_List_is_too_small, __pyx_k_List_is_too_small, sizeof(__pyx_k_List_is_too_small), 0, 1, 0, 0},
  {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
  {&__pyx_kp_s_Memory_advise_values, __pyx_k_Memory_advise_values, sizeof(__pyx_k_Memory_advise_values), 0, 0, 1, 0},
  {&__pyx_kp_s_Memory_handle_types, __pyx_k_Memory_handle_types, sizeof(__pyx_k_Memory_handle_types), 0, 0, 1, 0},
  {&__pyx_kp_s_Memory_operation_types, __pyx_k_Memory_operation_types, sizeof(__pyx_k_Memory_operation_types), 0, 0, 1, 0},
  {&__pyx_kp_s_Memory_types, __pyx_k_Memory_types, sizeof(__pyx_k_Memory_types), 0, 0, 1, 0},
  {&__pyx_n_s_N, __pyx_k_N, sizeof(__pyx_k_N), 0, 0, 1, 1},
  {&__pyx_kp_u_NumChannels, __pyx_k_NumChannels, sizeof(__pyx_k_NumChannels), 0, 1, 0, 0},
  {&__pyx_n_s_NumChannels_2, __pyx_k_NumChannels_2, sizeof(__pyx_k_NumChannels_2), 0, 0, 1, 1},
  {&__pyx_n_s_NumPackedComponents, __pyx_k_NumPackedComponents, sizeof(__pyx_k_NumPackedComponents), 0, 0, 1, 1},
  {&__pyx_kp_s_Occupancy_calculator_flag, __pyx_k_Occupancy_calculator_flag, sizeof(__pyx_k_Occupancy_calculator_flag), 0, 0, 1, 0},
  {&__pyx_kp_s_Online_compilation_targets, __pyx_k_Online_compilation_targets, sizeof(__pyx_k_Online_compilation_targets), 0, 0, 1, 0},
  {&__pyx_kp_s_Online_compiler_and_linker_opti, __pyx_k_Online_compiler_and_linker_opti, sizeof(__pyx_k_Online_compiler_and_linker_opti), 0, 0, 1, 0},
  {&__pyx_kp_s_Operations_for_cuStreamBatchMem, __pyx_k_Operations_for_cuStreamBatchMem, sizeof(__pyx_k_Operations_for_cuStreamBatchMem), 0, 0, 1, 0},
  {&__pyx_n_s_OverflowError, __pyx_k_OverflowError, sizeof(__pyx_k_OverflowError), 0, 0, 1, 1},
  {&__pyx_kp_s_P2P_Attributes, __pyx_k_P2P_Attributes, sizeof(__pyx_k_P2P_Attributes), 0, 0, 1, 0},
  {&__pyx_n_s_Pitch, __pyx_k_Pitch, sizeof(__pyx_k_Pitch), 0, 0, 1, 1},
  {&__pyx_kp_s_Platform_native_ordering_for_GP, __pyx_k_Platform_native_ordering_for_GP, sizeof(__pyx_k_Platform_native_ordering_for_GP), 0, 0, 1, 0},
  {&__pyx_kp_s_Pointer_information, __pyx_k_Pointer_information, sizeof(__pyx_k_Pointer_information), 0, 0, 1, 0},
  {&__pyx_kp_s_Possible_modes_for_stream_captu, __pyx_k_Possible_modes_for_stream_captu, sizeof(__pyx_k_Possible_modes_for_stream_captu), 0, 0, 1, 0},
  {&__pyx_kp_s_Possible_stream_capture_statuse, __pyx_k_Possible_stream_capture_statuse, sizeof(__pyx_k_Possible_stream_capture_statuse), 0, 0, 1, 0},
  {&__pyx_kp_s_Resource_types, __pyx_k_Resource_types, sizeof(__pyx_k_Resource_types), 0, 0, 1, 0},
  {&__pyx_kp_s_Resource_view_format, __pyx_k_Resource_view_format, sizeof(__pyx_k_Resource_view_format), 0, 0, 1, 0},
  {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
  {&__pyx_kp_u_SIMDWidth, __pyx_k_SIMDWidth, sizeof(__pyx_k_SIMDWidth), 0, 1, 0, 0},
  {&__pyx_n_s_SIMDWidth_2, __pyx_k_SIMDWidth_2, sizeof(__pyx_k_SIMDWidth_2), 0, 0, 1, 1},
  {&__pyx_kp_s_Shared_memory_carveout_configur, __pyx_k_Shared_memory_carveout_configur, sizeof(__pyx_k_Shared_memory_carveout_configur), 0, 0, 1, 0},
  {&__pyx_kp_s_Shared_memory_configurations, __pyx_k_Shared_memory_configurations, sizeof(__pyx_k_Shared_memory_configurations), 0, 0, 1, 0},
  {&__pyx_kp_s_Sparse_subresource_types, __pyx_k_Sparse_subresource_types, sizeof(__pyx_k_Sparse_subresource_types), 0, 0, 1, 0},
  {&__pyx_kp_s_Specifies_compression_attribute, __pyx_k_Specifies_compression_attribute, sizeof(__pyx_k_Specifies_compression_attribute), 0, 0, 1, 0},
  {&__pyx_kp_s_Specifies_performance_hint_with, __pyx_k_Specifies_performance_hint_with, sizeof(__pyx_k_Specifies_performance_hint_with), 0, 0, 1, 0},
  {&__pyx_kp_s_Specifies_the_memory_protection, __pyx_k_Specifies_the_memory_protection, sizeof(__pyx_k_Specifies_the_memory_protection), 0, 0, 1, 0},
  {&__pyx_kp_s_Specifies_the_type_of_location, __pyx_k_Specifies_the_type_of_location, sizeof(__pyx_k_Specifies_the_type_of_location), 0, 0, 1, 0},
  {&__pyx_kp_s_Stream_Attributes, __pyx_k_Stream_Attributes, sizeof(__pyx_k_Stream_Attributes), 0, 0, 1, 0},
  {&__pyx_kp_s_Stream_creation_flags, __pyx_k_Stream_creation_flags, sizeof(__pyx_k_Stream_creation_flags), 0, 0, 1, 0},
  {&__pyx_kp_s_Texture_reference_addressing_mo, __pyx_k_Texture_reference_addressing_mo, sizeof(__pyx_k_Texture_reference_addressing_mo), 0, 0, 1, 0},
  {&__pyx_kp_s_Texture_reference_filtering_mod, __pyx_k_Texture_reference_filtering_mod, sizeof(__pyx_k_Texture_reference_filtering_mod), 0, 0, 1, 0},
  {&__pyx_kp_s_The_additional_write_options_fo, __pyx_k_The_additional_write_options_fo, sizeof(__pyx_k_The_additional_write_options_fo), 0, 0, 1, 0},
  {&__pyx_kp_s_The_scopes_for_cuFlushGPUDirect, __pyx_k_The_scopes_for_cuFlushGPUDirect, sizeof(__pyx_k_The_scopes_for_cuFlushGPUDirect), 0, 0, 1, 0},
  {&__pyx_kp_s_The_targets_for_cuFlushGPUDirec, __pyx_k_The_targets_for_cuFlushGPUDirec, sizeof(__pyx_k_The_targets_for_cuFlushGPUDirec), 0, 0, 1, 0},
  {&__pyx_n_s_Tuple, __pyx_k_Tuple, sizeof(__pyx_k_Tuple), 0, 0, 1, 1},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_kp_u_Unknown_type, __pyx_k_Unknown_type, sizeof(__pyx_k_Unknown_type), 0, 1, 0, 0},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_kp_u_Width, __pyx_k_Width, sizeof(__pyx_k_Width), 0, 1, 0, 0},
  {&__pyx_kp_u_WidthInBytes, __pyx_k_WidthInBytes, sizeof(__pyx_k_WidthInBytes), 0, 1, 0, 0},
  {&__pyx_n_s_WidthInBytes_2, __pyx_k_WidthInBytes_2, sizeof(__pyx_k_WidthInBytes_2), 0, 0, 1, 1},
  {&__pyx_n_s_Width_2, __pyx_k_Width_2, sizeof(__pyx_k_Width_2), 0, 0, 1, 1},
  {&__pyx_kp_u__108, __pyx_k__108, sizeof(__pyx_k__108), 0, 1, 0, 0},
  {&__pyx_kp_u__109, __pyx_k__109, sizeof(__pyx_k__109), 0, 1, 0, 0},
  {&__pyx_kp_u__140, __pyx_k__140, sizeof(__pyx_k__140), 0, 1, 0, 0},
  {&__pyx_n_u__141, __pyx_k__141, sizeof(__pyx_k__141), 0, 1, 0, 1},
  {&__pyx_kp_u__564, __pyx_k__564, sizeof(__pyx_k__564), 0, 1, 0, 0},
  {&__pyx_kp_s__879, __pyx_k__879, sizeof(__pyx_k__879), 0, 0, 1, 0},
  {&__pyx_kp_u_accessDescCount, __pyx_k_accessDescCount, sizeof(__pyx_k_accessDescCount), 0, 1, 0, 0},
  {&__pyx_n_s_accessDescCount_2, __pyx_k_accessDescCount_2, sizeof(__pyx_k_accessDescCount_2), 0, 0, 1, 1},
  {&__pyx_kp_u_accessDescs, __pyx_k_accessDescs, sizeof(__pyx_k_accessDescs), 0, 1, 0, 0},
  {&__pyx_n_s_accessDescs_2, __pyx_k_accessDescs_2, sizeof(__pyx_k_accessDescs_2), 0, 0, 1, 1},
  {&__pyx_kp_u_accessPolicyWindow, __pyx_k_accessPolicyWindow, sizeof(__pyx_k_accessPolicyWindow), 0, 1, 0, 0},
  {&__pyx_n_s_accessPolicyWindow_2, __pyx_k_accessPolicyWindow_2, sizeof(__pyx_k_accessPolicyWindow_2), 0, 0, 1, 1},
  {&__pyx_n_s_active, __pyx_k_active, sizeof(__pyx_k_active), 0, 0, 1, 1},
  {&__pyx_n_s_addr, __pyx_k_addr, sizeof(__pyx_k_addr), 0, 0, 1, 1},
  {&__pyx_kp_u_address, __pyx_k_address, sizeof(__pyx_k_address), 0, 1, 0, 0},
  {&__pyx_kp_u_addressMode, __pyx_k_addressMode, sizeof(__pyx_k_addressMode), 0, 1, 0, 0},
  {&__pyx_n_s_addressMode_2, __pyx_k_addressMode_2, sizeof(__pyx_k_addressMode_2), 0, 0, 1, 1},
  {&__pyx_n_s_address_2, __pyx_k_address_2, sizeof(__pyx_k_address_2), 0, 0, 1, 1},
  {&__pyx_n_s_advice, __pyx_k_advice, sizeof(__pyx_k_advice), 0, 0, 1, 1},
  {&__pyx_kp_u_alias, __pyx_k_alias, sizeof(__pyx_k_alias), 0, 1, 0, 0},
  {&__pyx_n_s_alias_2, __pyx_k_alias_2, sizeof(__pyx_k_alias_2), 0, 0, 1, 1},
  {&__pyx_n_s_alignment, __pyx_k_alignment, sizeof(__pyx_k_alignment), 0, 0, 1, 1},
  {&__pyx_kp_u_allocFlags, __pyx_k_allocFlags, sizeof(__pyx_k_allocFlags), 0, 1, 0, 0},
  {&__pyx_n_s_allocFlags_2, __pyx_k_allocFlags_2, sizeof(__pyx_k_allocFlags_2), 0, 0, 1, 1},
  {&__pyx_kp_u_allocType, __pyx_k_allocType, sizeof(__pyx_k_allocType), 0, 1, 0, 0},
  {&__pyx_n_s_allocType_2, __pyx_k_allocType_2, sizeof(__pyx_k_allocType_2), 0, 0, 1, 1},
  {&__pyx_n_s_am, __pyx_k_am, sizeof(__pyx_k_am), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_kp_u_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 1, 0, 0},
  {&__pyx_kp_u_arrayDesc, __pyx_k_arrayDesc, sizeof(__pyx_k_arrayDesc), 0, 1, 0, 0},
  {&__pyx_n_s_arrayDesc_2, __pyx_k_arrayDesc_2, sizeof(__pyx_k_arrayDesc_2), 0, 0, 1, 1},
  {&__pyx_n_s_arrayIndex, __pyx_k_arrayIndex, sizeof(__pyx_k_arrayIndex), 0, 0, 1, 1},
  {&__pyx_n_s_array_2, __pyx_k_array_2, sizeof(__pyx_k_array_2), 0, 0, 1, 1},
  {&__pyx_kp_u_array_3, __pyx_k_array_3, sizeof(__pyx_k_array_3), 0, 1, 0, 0},
  {&__pyx_n_s_attr, __pyx_k_attr, sizeof(__pyx_k_attr), 0, 0, 1, 1},
  {&__pyx_n_s_attrib, __pyx_k_attrib, sizeof(__pyx_k_attrib), 0, 0, 1, 1},
  {&__pyx_n_s_attribute, __pyx_k_attribute, sizeof(__pyx_k_attribute), 0, 0, 1, 1},
  {&__pyx_n_s_attributes, __pyx_k_attributes, sizeof(__pyx_k_attributes), 0, 0, 1, 1},
  {&__pyx_kp_u_base_ptr, __pyx_k_base_ptr, sizeof(__pyx_k_base_ptr), 0, 1, 0, 0},
  {&__pyx_n_s_base_ptr_2, __pyx_k_base_ptr_2, sizeof(__pyx_k_base_ptr_2), 0, 0, 1, 1},
  {&__pyx_n_s_bias, __pyx_k_bias, sizeof(__pyx_k_bias), 0, 0, 1, 1},
  {&__pyx_kp_u_blockDimX, __pyx_k_blockDimX, sizeof(__pyx_k_blockDimX), 0, 1, 0, 0},
  {&__pyx_n_s_blockDimX_2, __pyx_k_blockDimX_2, sizeof(__pyx_k_blockDimX_2), 0, 0, 1, 1},
  {&__pyx_kp_u_blockDimY, __pyx_k_blockDimY, sizeof(__pyx_k_blockDimY), 0, 1, 0, 0},
  {&__pyx_n_s_blockDimY_2, __pyx_k_blockDimY_2, sizeof(__pyx_k_blockDimY_2), 0, 0, 1, 1},
  {&__pyx_kp_u_blockDimZ, __pyx_k_blockDimZ, sizeof(__pyx_k_blockDimZ), 0, 1, 0, 0},
  {&__pyx_n_s_blockDimZ_2, __pyx_k_blockDimZ_2, sizeof(__pyx_k_blockDimZ_2), 0, 0, 1, 1},
  {&__pyx_n_s_blockSize, __pyx_k_blockSize, sizeof(__pyx_k_blockSize), 0, 0, 1, 1},
  {&__pyx_n_s_blockSizeLimit, __pyx_k_blockSizeLimit, sizeof(__pyx_k_blockSizeLimit), 0, 0, 1, 1},
  {&__pyx_n_s_blockSizeToDynamicSMemSize, __pyx_k_blockSizeToDynamicSMemSize, sizeof(__pyx_k_blockSizeToDynamicSMemSize), 0, 0, 1, 1},
  {&__pyx_kp_u_borderColor, __pyx_k_borderColor, sizeof(__pyx_k_borderColor), 0, 1, 0, 0},
  {&__pyx_n_s_borderColor_2, __pyx_k_borderColor_2, sizeof(__pyx_k_borderColor_2), 0, 0, 1, 1},
  {&__pyx_n_s_bufferDesc, __pyx_k_bufferDesc, sizeof(__pyx_k_bufferDesc), 0, 0, 1, 1},
  {&__pyx_n_s_bufferSize, __pyx_k_bufferSize, sizeof(__pyx_k_bufferSize), 0, 0, 1, 1},
  {&__pyx_kp_u_bytes, __pyx_k_bytes, sizeof(__pyx_k_bytes), 0, 1, 0, 0},
  {&__pyx_n_s_bytes_2, __pyx_k_bytes_2, sizeof(__pyx_k_bytes_2), 0, 0, 1, 1},
  {&__pyx_kp_u_bytesize, __pyx_k_bytesize, sizeof(__pyx_k_bytesize), 0, 1, 0, 0},
  {&__pyx_n_s_bytesize_2, __pyx_k_bytesize_2, sizeof(__pyx_k_bytesize_2), 0, 0, 1, 1},
  {&__pyx_n_s_caddr, __pyx_k_caddr, sizeof(__pyx_k_caddr), 0, 0, 1, 1},
  {&__pyx_n_s_caddr_ptr, __pyx_k_caddr_ptr, sizeof(__pyx_k_caddr_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cadvice, __pyx_k_cadvice, sizeof(__pyx_k_cadvice), 0, 0, 1, 1},
  {&__pyx_n_s_callback, __pyx_k_callback, sizeof(__pyx_k_callback), 0, 0, 1, 1},
  {&__pyx_n_s_cam, __pyx_k_cam, sizeof(__pyx_k_cam), 0, 0, 1, 1},
  {&__pyx_n_s_canAccessPeer, __pyx_k_canAccessPeer, sizeof(__pyx_k_canAccessPeer), 0, 0, 1, 1},
  {&__pyx_n_s_captureStatus, __pyx_k_captureStatus, sizeof(__pyx_k_captureStatus), 0, 0, 1, 1},
  {&__pyx_n_s_captureStatus_out, __pyx_k_captureStatus_out, sizeof(__pyx_k_captureStatus_out), 0, 0, 1, 1},
  {&__pyx_n_s_cattr, __pyx_k_cattr, sizeof(__pyx_k_cattr), 0, 0, 1, 1},
  {&__pyx_n_s_cattrib, __pyx_k_cattrib, sizeof(__pyx_k_cattrib), 0, 0, 1, 1},
  {&__pyx_n_s_cattribute, __pyx_k_cattribute, sizeof(__pyx_k_cattribute), 0, 0, 1, 1},
  {&__pyx_n_s_cattributes, __pyx_k_cattributes, sizeof(__pyx_k_cattributes), 0, 0, 1, 1},
  {&__pyx_n_s_cbufferDesc_ptr, __pyx_k_cbufferDesc_ptr, sizeof(__pyx_k_cbufferDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cconfig, __pyx_k_cconfig, sizeof(__pyx_k_cconfig), 0, 0, 1, 1},
  {&__pyx_n_s_ccopyParams_ptr, __pyx_k_ccopyParams_ptr, sizeof(__pyx_k_ccopyParams_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cdata, __pyx_k_cdata, sizeof(__pyx_k_cdata), 0, 0, 1, 1},
  {&__pyx_n_s_cdataSizes, __pyx_k_cdataSizes, sizeof(__pyx_k_cdataSizes), 0, 0, 1, 1},
  {&__pyx_n_s_cdata_ptr, __pyx_k_cdata_ptr, sizeof(__pyx_k_cdata_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cdependencies, __pyx_k_cdependencies, sizeof(__pyx_k_cdependencies), 0, 0, 1, 1},
  {&__pyx_n_s_cdependencies_out, __pyx_k_cdependencies_out, sizeof(__pyx_k_cdependencies_out), 0, 0, 1, 1},
  {&__pyx_n_s_cdependentNodes, __pyx_k_cdependentNodes, sizeof(__pyx_k_cdependentNodes), 0, 0, 1, 1},
  {&__pyx_n_s_cdesc, __pyx_k_cdesc, sizeof(__pyx_k_cdesc), 0, 0, 1, 1},
  {&__pyx_n_s_cdesc_ptr, __pyx_k_cdesc_ptr, sizeof(__pyx_k_cdesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cdstHost, __pyx_k_cdstHost, sizeof(__pyx_k_cdstHost), 0, 0, 1, 1},
  {&__pyx_n_s_cdstHost_ptr, __pyx_k_cdstHost_ptr, sizeof(__pyx_k_cdstHost_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cerror, __pyx_k_cerror, sizeof(__pyx_k_cerror), 0, 0, 1, 1},
  {&__pyx_n_s_cextSemArray, __pyx_k_cextSemArray, sizeof(__pyx_k_cextSemArray), 0, 0, 1, 1},
  {&__pyx_n_s_cfatCubin, __pyx_k_cfatCubin, sizeof(__pyx_k_cfatCubin), 0, 0, 1, 1},
  {&__pyx_n_s_cfatCubin_ptr, __pyx_k_cfatCubin_ptr, sizeof(__pyx_k_cfatCubin_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cfm, __pyx_k_cfm, sizeof(__pyx_k_cfm), 0, 0, 1, 1},
  {&__pyx_n_s_cfmt, __pyx_k_cfmt, sizeof(__pyx_k_cfmt), 0, 0, 1, 1},
  {&__pyx_n_s_cfrom, __pyx_k_cfrom, sizeof(__pyx_k_cfrom), 0, 0, 1, 1},
  {&__pyx_n_s_chandle, __pyx_k_chandle, sizeof(__pyx_k_chandle), 0, 0, 1, 1},
  {&__pyx_n_s_chandleType, __pyx_k_chandleType, sizeof(__pyx_k_chandleType), 0, 0, 1, 1},
  {&__pyx_n_s_chandle_out_ptr, __pyx_k_chandle_out_ptr, sizeof(__pyx_k_chandle_out_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_chandle_ptr, __pyx_k_chandle_ptr, sizeof(__pyx_k_chandle_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_childGraph, __pyx_k_childGraph, sizeof(__pyx_k_childGraph), 0, 0, 1, 1},
  {&__pyx_n_s_cimage, __pyx_k_cimage, sizeof(__pyx_k_cimage), 0, 0, 1, 1},
  {&__pyx_n_s_cimage_ptr, __pyx_k_cimage_ptr, sizeof(__pyx_k_cimage_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_ckernelParams, __pyx_k_ckernelParams, sizeof(__pyx_k_ckernelParams), 0, 0, 1, 1},
  {&__pyx_n_s_claunchParamsList, __pyx_k_claunchParamsList, sizeof(__pyx_k_claunchParamsList), 0, 0, 1, 1},
  {&__pyx_n_s_climit, __pyx_k_climit, sizeof(__pyx_k_climit), 0, 0, 1, 1},
  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
  {&__pyx_n_s_clocation_ptr, __pyx_k_clocation_ptr, sizeof(__pyx_k_clocation_ptr), 0, 0, 1, 1},
  {&__pyx_kp_u_clockRate, __pyx_k_clockRate, sizeof(__pyx_k_clockRate), 0, 1, 0, 0},
  {&__pyx_n_s_clockRate_2, __pyx_k_clockRate_2, sizeof(__pyx_k_clockRate_2), 0, 0, 1, 1},
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
  {&__pyx_n_s_cmap, __pyx_k_cmap, sizeof(__pyx_k_cmap), 0, 0, 1, 1},
  {&__pyx_n_s_cmapInfoList, __pyx_k_cmapInfoList, sizeof(__pyx_k_cmapInfoList), 0, 0, 1, 1},
  {&__pyx_n_s_cmemHandleDesc_ptr, __pyx_k_cmemHandleDesc_ptr, sizeof(__pyx_k_cmemHandleDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cmemsetParams_ptr, __pyx_k_cmemsetParams_ptr, sizeof(__pyx_k_cmemsetParams_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cmipmapDesc_ptr, __pyx_k_cmipmapDesc_ptr, sizeof(__pyx_k_cmipmapDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cmode, __pyx_k_cmode, sizeof(__pyx_k_cmode), 0, 0, 1, 1},
  {&__pyx_n_s_cnodeParams_ptr, __pyx_k_cnodeParams_ptr, sizeof(__pyx_k_cnodeParams_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cnodes, __pyx_k_cnodes, sizeof(__pyx_k_cnodes), 0, 0, 1, 1},
  {&__pyx_n_s_cnvSciSyncAttrList_ptr, __pyx_k_cnvSciSyncAttrList_ptr, sizeof(__pyx_k_cnvSciSyncAttrList_ptr), 0, 0, 1, 1},
  {&__pyx_kp_u_compressionType, __pyx_k_compressionType, sizeof(__pyx_k_compressionType), 0, 1, 0, 0},
  {&__pyx_n_s_compressionType_2, __pyx_k_compressionType_2, sizeof(__pyx_k_compressionType_2), 0, 0, 1, 1},
  {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1},
  {&__pyx_kp_u_cooperative, __pyx_k_cooperative, sizeof(__pyx_k_cooperative), 0, 1, 0, 0},
  {&__pyx_n_s_cooperative_2, __pyx_k_cooperative_2, sizeof(__pyx_k_cooperative_2), 0, 0, 1, 1},
  {&__pyx_n_s_coption, __pyx_k_coption, sizeof(__pyx_k_coption), 0, 0, 1, 1},
  {&__pyx_n_s_coptions, __pyx_k_coptions, sizeof(__pyx_k_coptions), 0, 0, 1, 1},
  {&__pyx_n_s_copyParams, __pyx_k_copyParams, sizeof(__pyx_k_copyParams), 0, 0, 1, 1},
  {&__pyx_n_s_cosHandle, __pyx_k_cosHandle, sizeof(__pyx_k_cosHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cosHandle_ptr, __pyx_k_cosHandle_ptr, sizeof(__pyx_k_cosHandle_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
  {&__pyx_n_s_cp, __pyx_k_cp, sizeof(__pyx_k_cp), 0, 0, 1, 1},
  {&__pyx_n_s_cpAllocateArray_ptr, __pyx_k_cpAllocateArray_ptr, sizeof(__pyx_k_cpAllocateArray_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cpCopy_ptr, __pyx_k_cpCopy_ptr, sizeof(__pyx_k_cpCopy_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cpExportTableId_ptr, __pyx_k_cpExportTableId_ptr, sizeof(__pyx_k_cpExportTableId_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cpMipmappedArrayDesc_ptr, __pyx_k_cpMipmappedArrayDesc_ptr, sizeof(__pyx_k_cpMipmappedArrayDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cpResDesc_ptr, __pyx_k_cpResDesc_ptr, sizeof(__pyx_k_cpResDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cpResViewDesc_ptr, __pyx_k_cpResViewDesc_ptr, sizeof(__pyx_k_cpResViewDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cpTexDesc_ptr, __pyx_k_cpTexDesc_ptr, sizeof(__pyx_k_cpTexDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cp_ptr, __pyx_k_cp_ptr, sizeof(__pyx_k_cp_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cparamArray, __pyx_k_cparamArray, sizeof(__pyx_k_cparamArray), 0, 0, 1, 1},
  {&__pyx_n_s_cparamsArray, __pyx_k_cparamsArray, sizeof(__pyx_k_cparamsArray), 0, 0, 1, 1},
  {&__pyx_n_s_cpformat, __pyx_k_cpformat, sizeof(__pyx_k_cpformat), 0, 0, 1, 1},
  {&__pyx_n_s_cpoolProps_ptr, __pyx_k_cpoolProps_ptr, sizeof(__pyx_k_cpoolProps_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cprop_ptr, __pyx_k_cprop_ptr, sizeof(__pyx_k_cprop_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cptr, __pyx_k_cptr, sizeof(__pyx_k_cptr), 0, 0, 1, 1},
  {&__pyx_n_s_cptr_ptr, __pyx_k_cptr_ptr, sizeof(__pyx_k_cptr_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cresources_ptr, __pyx_k_cresources_ptr, sizeof(__pyx_k_cresources_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_crootNodes, __pyx_k_crootNodes, sizeof(__pyx_k_crootNodes), 0, 0, 1, 1},
  {&__pyx_n_s_cscope, __pyx_k_cscope, sizeof(__pyx_k_cscope), 0, 0, 1, 1},
  {&__pyx_n_s_csemHandleDesc_ptr, __pyx_k_csemHandleDesc_ptr, sizeof(__pyx_k_csemHandleDesc_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cshHandleType, __pyx_k_cshHandleType, sizeof(__pyx_k_cshHandleType), 0, 0, 1, 1},
  {&__pyx_n_s_cshareData_ptr, __pyx_k_cshareData_ptr, sizeof(__pyx_k_cshareData_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cshareableHandle_ptr, __pyx_k_cshareableHandle_ptr, sizeof(__pyx_k_cshareableHandle_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_csrcHost, __pyx_k_csrcHost, sizeof(__pyx_k_csrcHost), 0, 0, 1, 1},
  {&__pyx_n_s_csrcHost_ptr, __pyx_k_csrcHost_ptr, sizeof(__pyx_k_csrcHost_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_ctarget, __pyx_k_ctarget, sizeof(__pyx_k_ctarget), 0, 0, 1, 1},
  {&__pyx_n_s_cto, __pyx_k_cto, sizeof(__pyx_k_cto), 0, 0, 1, 1},
  {&__pyx_n_s_ctx, __pyx_k_ctx, sizeof(__pyx_k_ctx), 0, 0, 1, 1},
  {&__pyx_n_s_ctypename, __pyx_k_ctypename, sizeof(__pyx_k_ctypename), 0, 0, 1, 1},
  {&__pyx_n_s_ctypes, __pyx_k_ctypes, sizeof(__pyx_k_ctypes), 0, 0, 1, 1},
  {&__pyx_n_s_cuArray3DCreate, __pyx_k_cuArray3DCreate, sizeof(__pyx_k_cuArray3DCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuArray3DGetDescriptor, __pyx_k_cuArray3DGetDescriptor, sizeof(__pyx_k_cuArray3DGetDescriptor), 0, 0, 1, 1},
  {&__pyx_n_s_cuArrayCreate, __pyx_k_cuArrayCreate, sizeof(__pyx_k_cuArrayCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuArrayDestroy, __pyx_k_cuArrayDestroy, sizeof(__pyx_k_cuArrayDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuArrayGetDescriptor, __pyx_k_cuArrayGetDescriptor, sizeof(__pyx_k_cuArrayGetDescriptor), 0, 0, 1, 1},
  {&__pyx_n_s_cuArrayGetPlane, __pyx_k_cuArrayGetPlane, sizeof(__pyx_k_cuArrayGetPlane), 0, 0, 1, 1},
  {&__pyx_n_s_cuArrayGetSparseProperties, __pyx_k_cuArrayGetSparseProperties, sizeof(__pyx_k_cuArrayGetSparseProperties), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxAttach, __pyx_k_cuCtxAttach, sizeof(__pyx_k_cuCtxAttach), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxCreate, __pyx_k_cuCtxCreate, sizeof(__pyx_k_cuCtxCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxCreate_v3, __pyx_k_cuCtxCreate_v3, sizeof(__pyx_k_cuCtxCreate_v3), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxCreate_v3_locals_genexpr, __pyx_k_cuCtxCreate_v3_locals_genexpr, sizeof(__pyx_k_cuCtxCreate_v3_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxDestroy, __pyx_k_cuCtxDestroy, sizeof(__pyx_k_cuCtxDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxDetach, __pyx_k_cuCtxDetach, sizeof(__pyx_k_cuCtxDetach), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxDisablePeerAccess, __pyx_k_cuCtxDisablePeerAccess, sizeof(__pyx_k_cuCtxDisablePeerAccess), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxEnablePeerAccess, __pyx_k_cuCtxEnablePeerAccess, sizeof(__pyx_k_cuCtxEnablePeerAccess), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetApiVersion, __pyx_k_cuCtxGetApiVersion, sizeof(__pyx_k_cuCtxGetApiVersion), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetCacheConfig, __pyx_k_cuCtxGetCacheConfig, sizeof(__pyx_k_cuCtxGetCacheConfig), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetCurrent, __pyx_k_cuCtxGetCurrent, sizeof(__pyx_k_cuCtxGetCurrent), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetDevice, __pyx_k_cuCtxGetDevice, sizeof(__pyx_k_cuCtxGetDevice), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetExecAffinity, __pyx_k_cuCtxGetExecAffinity, sizeof(__pyx_k_cuCtxGetExecAffinity), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetFlags, __pyx_k_cuCtxGetFlags, sizeof(__pyx_k_cuCtxGetFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetLimit, __pyx_k_cuCtxGetLimit, sizeof(__pyx_k_cuCtxGetLimit), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetSharedMemConfig, __pyx_k_cuCtxGetSharedMemConfig, sizeof(__pyx_k_cuCtxGetSharedMemConfig), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxGetStreamPriorityRange, __pyx_k_cuCtxGetStreamPriorityRange, sizeof(__pyx_k_cuCtxGetStreamPriorityRange), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxPopCurrent, __pyx_k_cuCtxPopCurrent, sizeof(__pyx_k_cuCtxPopCurrent), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxPushCurrent, __pyx_k_cuCtxPushCurrent, sizeof(__pyx_k_cuCtxPushCurrent), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxResetPersistingL2Cache, __pyx_k_cuCtxResetPersistingL2Cache, sizeof(__pyx_k_cuCtxResetPersistingL2Cache), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxSetCacheConfig, __pyx_k_cuCtxSetCacheConfig, sizeof(__pyx_k_cuCtxSetCacheConfig), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxSetCurrent, __pyx_k_cuCtxSetCurrent, sizeof(__pyx_k_cuCtxSetCurrent), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxSetLimit, __pyx_k_cuCtxSetLimit, sizeof(__pyx_k_cuCtxSetLimit), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxSetSharedMemConfig, __pyx_k_cuCtxSetSharedMemConfig, sizeof(__pyx_k_cuCtxSetSharedMemConfig), 0, 0, 1, 1},
  {&__pyx_n_s_cuCtxSynchronize, __pyx_k_cuCtxSynchronize, sizeof(__pyx_k_cuCtxSynchronize), 0, 0, 1, 1},
  {&__pyx_n_s_cuDestroyExternalMemory, __pyx_k_cuDestroyExternalMemory, sizeof(__pyx_k_cuDestroyExternalMemory), 0, 0, 1, 1},
  {&__pyx_n_s_cuDestroyExternalSemaphore, __pyx_k_cuDestroyExternalSemaphore, sizeof(__pyx_k_cuDestroyExternalSemaphore), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceCanAccessPeer, __pyx_k_cuDeviceCanAccessPeer, sizeof(__pyx_k_cuDeviceCanAccessPeer), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceComputeCapability, __pyx_k_cuDeviceComputeCapability, sizeof(__pyx_k_cuDeviceComputeCapability), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGet, __pyx_k_cuDeviceGet, sizeof(__pyx_k_cuDeviceGet), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetAttribute, __pyx_k_cuDeviceGetAttribute, sizeof(__pyx_k_cuDeviceGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetByPCIBusId, __pyx_k_cuDeviceGetByPCIBusId, sizeof(__pyx_k_cuDeviceGetByPCIBusId), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetCount, __pyx_k_cuDeviceGetCount, sizeof(__pyx_k_cuDeviceGetCount), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetDefaultMemPool, __pyx_k_cuDeviceGetDefaultMemPool, sizeof(__pyx_k_cuDeviceGetDefaultMemPool), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetExecAffinitySupport, __pyx_k_cuDeviceGetExecAffinitySupport, sizeof(__pyx_k_cuDeviceGetExecAffinitySupport), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetGraphMemAttribute, __pyx_k_cuDeviceGetGraphMemAttribute, sizeof(__pyx_k_cuDeviceGetGraphMemAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetLuid, __pyx_k_cuDeviceGetLuid, sizeof(__pyx_k_cuDeviceGetLuid), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetMemPool, __pyx_k_cuDeviceGetMemPool, sizeof(__pyx_k_cuDeviceGetMemPool), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetName, __pyx_k_cuDeviceGetName, sizeof(__pyx_k_cuDeviceGetName), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetNvSciSyncAttributes, __pyx_k_cuDeviceGetNvSciSyncAttributes, sizeof(__pyx_k_cuDeviceGetNvSciSyncAttributes), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetP2PAttribute, __pyx_k_cuDeviceGetP2PAttribute, sizeof(__pyx_k_cuDeviceGetP2PAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetPCIBusId, __pyx_k_cuDeviceGetPCIBusId, sizeof(__pyx_k_cuDeviceGetPCIBusId), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetProperties, __pyx_k_cuDeviceGetProperties, sizeof(__pyx_k_cuDeviceGetProperties), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetTexture1DLinearMaxWid, __pyx_k_cuDeviceGetTexture1DLinearMaxWid, sizeof(__pyx_k_cuDeviceGetTexture1DLinearMaxWid), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetUuid, __pyx_k_cuDeviceGetUuid, sizeof(__pyx_k_cuDeviceGetUuid), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGetUuid_v2, __pyx_k_cuDeviceGetUuid_v2, sizeof(__pyx_k_cuDeviceGetUuid_v2), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceGraphMemTrim, __pyx_k_cuDeviceGraphMemTrim, sizeof(__pyx_k_cuDeviceGraphMemTrim), 0, 0, 1, 1},
  {&__pyx_n_s_cuDevicePrimaryCtxGetState, __pyx_k_cuDevicePrimaryCtxGetState, sizeof(__pyx_k_cuDevicePrimaryCtxGetState), 0, 0, 1, 1},
  {&__pyx_n_s_cuDevicePrimaryCtxRelease, __pyx_k_cuDevicePrimaryCtxRelease, sizeof(__pyx_k_cuDevicePrimaryCtxRelease), 0, 0, 1, 1},
  {&__pyx_n_s_cuDevicePrimaryCtxReset, __pyx_k_cuDevicePrimaryCtxReset, sizeof(__pyx_k_cuDevicePrimaryCtxReset), 0, 0, 1, 1},
  {&__pyx_n_s_cuDevicePrimaryCtxRetain, __pyx_k_cuDevicePrimaryCtxRetain, sizeof(__pyx_k_cuDevicePrimaryCtxRetain), 0, 0, 1, 1},
  {&__pyx_n_s_cuDevicePrimaryCtxSetFlags, __pyx_k_cuDevicePrimaryCtxSetFlags, sizeof(__pyx_k_cuDevicePrimaryCtxSetFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceSetGraphMemAttribute, __pyx_k_cuDeviceSetGraphMemAttribute, sizeof(__pyx_k_cuDeviceSetGraphMemAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceSetMemPool, __pyx_k_cuDeviceSetMemPool, sizeof(__pyx_k_cuDeviceSetMemPool), 0, 0, 1, 1},
  {&__pyx_n_s_cuDeviceTotalMem, __pyx_k_cuDeviceTotalMem, sizeof(__pyx_k_cuDeviceTotalMem), 0, 0, 1, 1},
  {&__pyx_n_s_cuDriverGetVersion, __pyx_k_cuDriverGetVersion, sizeof(__pyx_k_cuDriverGetVersion), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventCreate, __pyx_k_cuEventCreate, sizeof(__pyx_k_cuEventCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventDestroy, __pyx_k_cuEventDestroy, sizeof(__pyx_k_cuEventDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventElapsedTime, __pyx_k_cuEventElapsedTime, sizeof(__pyx_k_cuEventElapsedTime), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventQuery, __pyx_k_cuEventQuery, sizeof(__pyx_k_cuEventQuery), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventRecord, __pyx_k_cuEventRecord, sizeof(__pyx_k_cuEventRecord), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventRecordWithFlags, __pyx_k_cuEventRecordWithFlags, sizeof(__pyx_k_cuEventRecordWithFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuEventSynchronize, __pyx_k_cuEventSynchronize, sizeof(__pyx_k_cuEventSynchronize), 0, 0, 1, 1},
  {&__pyx_n_s_cuExternalMemoryGetMappedBuffer, __pyx_k_cuExternalMemoryGetMappedBuffer, sizeof(__pyx_k_cuExternalMemoryGetMappedBuffer), 0, 0, 1, 1},
  {&__pyx_n_s_cuExternalMemoryGetMappedMipmapp, __pyx_k_cuExternalMemoryGetMappedMipmapp, sizeof(__pyx_k_cuExternalMemoryGetMappedMipmapp), 0, 0, 1, 1},
  {&__pyx_n_s_cuFlushGPUDirectRDMAWrites, __pyx_k_cuFlushGPUDirectRDMAWrites, sizeof(__pyx_k_cuFlushGPUDirectRDMAWrites), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncGetAttribute, __pyx_k_cuFuncGetAttribute, sizeof(__pyx_k_cuFuncGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncGetModule, __pyx_k_cuFuncGetModule, sizeof(__pyx_k_cuFuncGetModule), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncSetAttribute, __pyx_k_cuFuncSetAttribute, sizeof(__pyx_k_cuFuncSetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncSetBlockShape, __pyx_k_cuFuncSetBlockShape, sizeof(__pyx_k_cuFuncSetBlockShape), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncSetCacheConfig, __pyx_k_cuFuncSetCacheConfig, sizeof(__pyx_k_cuFuncSetCacheConfig), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncSetSharedMemConfig, __pyx_k_cuFuncSetSharedMemConfig, sizeof(__pyx_k_cuFuncSetSharedMemConfig), 0, 0, 1, 1},
  {&__pyx_n_s_cuFuncSetSharedSize, __pyx_k_cuFuncSetSharedSize, sizeof(__pyx_k_cuFuncSetSharedSize), 0, 0, 1, 1},
  {&__pyx_n_s_cuGetErrorName, __pyx_k_cuGetErrorName, sizeof(__pyx_k_cuGetErrorName), 0, 0, 1, 1},
  {&__pyx_n_s_cuGetErrorString, __pyx_k_cuGetErrorString, sizeof(__pyx_k_cuGetErrorString), 0, 0, 1, 1},
  {&__pyx_n_s_cuGetExportTable, __pyx_k_cuGetExportTable, sizeof(__pyx_k_cuGetExportTable), 0, 0, 1, 1},
  {&__pyx_n_s_cuGetProcAddress, __pyx_k_cuGetProcAddress, sizeof(__pyx_k_cuGetProcAddress), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddChildGraphNode, __pyx_k_cuGraphAddChildGraphNode, sizeof(__pyx_k_cuGraphAddChildGraphNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddChildGraphNode_locals, __pyx_k_cuGraphAddChildGraphNode_locals, sizeof(__pyx_k_cuGraphAddChildGraphNode_locals), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddDependencies, __pyx_k_cuGraphAddDependencies, sizeof(__pyx_k_cuGraphAddDependencies), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddDependencies_locals_ge, __pyx_k_cuGraphAddDependencies_locals_ge, sizeof(__pyx_k_cuGraphAddDependencies_locals_ge), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddEmptyNode, __pyx_k_cuGraphAddEmptyNode, sizeof(__pyx_k_cuGraphAddEmptyNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddEmptyNode_locals_genex, __pyx_k_cuGraphAddEmptyNode_locals_genex, sizeof(__pyx_k_cuGraphAddEmptyNode_locals_genex), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddEventRecordNode, __pyx_k_cuGraphAddEventRecordNode, sizeof(__pyx_k_cuGraphAddEventRecordNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddEventRecordNode_locals, __pyx_k_cuGraphAddEventRecordNode_locals, sizeof(__pyx_k_cuGraphAddEventRecordNode_locals), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddEventWaitNode, __pyx_k_cuGraphAddEventWaitNode, sizeof(__pyx_k_cuGraphAddEventWaitNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddEventWaitNode_locals_g, __pyx_k_cuGraphAddEventWaitNode_locals_g, sizeof(__pyx_k_cuGraphAddEventWaitNode_locals_g), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddExternalSemaphoresSign, __pyx_k_cuGraphAddExternalSemaphoresSign, sizeof(__pyx_k_cuGraphAddExternalSemaphoresSign), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddExternalSemaphoresSign_2, __pyx_k_cuGraphAddExternalSemaphoresSign_2, sizeof(__pyx_k_cuGraphAddExternalSemaphoresSign_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddExternalSemaphoresWait, __pyx_k_cuGraphAddExternalSemaphoresWait, sizeof(__pyx_k_cuGraphAddExternalSemaphoresWait), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddExternalSemaphoresWait_2, __pyx_k_cuGraphAddExternalSemaphoresWait_2, sizeof(__pyx_k_cuGraphAddExternalSemaphoresWait_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddHostNode, __pyx_k_cuGraphAddHostNode, sizeof(__pyx_k_cuGraphAddHostNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddHostNode_locals_genexp, __pyx_k_cuGraphAddHostNode_locals_genexp, sizeof(__pyx_k_cuGraphAddHostNode_locals_genexp), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddKernelNode, __pyx_k_cuGraphAddKernelNode, sizeof(__pyx_k_cuGraphAddKernelNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddKernelNode_locals_gene, __pyx_k_cuGraphAddKernelNode_locals_gene, sizeof(__pyx_k_cuGraphAddKernelNode_locals_gene), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemAllocNode, __pyx_k_cuGraphAddMemAllocNode, sizeof(__pyx_k_cuGraphAddMemAllocNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemAllocNode_locals_ge, __pyx_k_cuGraphAddMemAllocNode_locals_ge, sizeof(__pyx_k_cuGraphAddMemAllocNode_locals_ge), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemFreeNode, __pyx_k_cuGraphAddMemFreeNode, sizeof(__pyx_k_cuGraphAddMemFreeNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemFreeNode_locals_gen, __pyx_k_cuGraphAddMemFreeNode_locals_gen, sizeof(__pyx_k_cuGraphAddMemFreeNode_locals_gen), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemcpyNode, __pyx_k_cuGraphAddMemcpyNode, sizeof(__pyx_k_cuGraphAddMemcpyNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemcpyNode_locals_gene, __pyx_k_cuGraphAddMemcpyNode_locals_gene, sizeof(__pyx_k_cuGraphAddMemcpyNode_locals_gene), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemsetNode, __pyx_k_cuGraphAddMemsetNode, sizeof(__pyx_k_cuGraphAddMemsetNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphAddMemsetNode_locals_gene, __pyx_k_cuGraphAddMemsetNode_locals_gene, sizeof(__pyx_k_cuGraphAddMemsetNode_locals_gene), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphChildGraphNodeGetGraph, __pyx_k_cuGraphChildGraphNodeGetGraph, sizeof(__pyx_k_cuGraphChildGraphNodeGetGraph), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphClone, __pyx_k_cuGraphClone, sizeof(__pyx_k_cuGraphClone), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphCreate, __pyx_k_cuGraphCreate, sizeof(__pyx_k_cuGraphCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphDebugDotPrint, __pyx_k_cuGraphDebugDotPrint, sizeof(__pyx_k_cuGraphDebugDotPrint), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphDestroy, __pyx_k_cuGraphDestroy, sizeof(__pyx_k_cuGraphDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphDestroyNode, __pyx_k_cuGraphDestroyNode, sizeof(__pyx_k_cuGraphDestroyNode), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphEventRecordNodeGetEvent, __pyx_k_cuGraphEventRecordNodeGetEvent, sizeof(__pyx_k_cuGraphEventRecordNodeGetEvent), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphEventRecordNodeSetEvent, __pyx_k_cuGraphEventRecordNodeSetEvent, sizeof(__pyx_k_cuGraphEventRecordNodeSetEvent), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphEventWaitNodeGetEvent, __pyx_k_cuGraphEventWaitNodeGetEvent, sizeof(__pyx_k_cuGraphEventWaitNodeGetEvent), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphEventWaitNodeSetEvent, __pyx_k_cuGraphEventWaitNodeSetEvent, sizeof(__pyx_k_cuGraphEventWaitNodeSetEvent), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecChildGraphNodeSetPara, __pyx_k_cuGraphExecChildGraphNodeSetPara, sizeof(__pyx_k_cuGraphExecChildGraphNodeSetPara), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecDestroy, __pyx_k_cuGraphExecDestroy, sizeof(__pyx_k_cuGraphExecDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecEventRecordNodeSetEve, __pyx_k_cuGraphExecEventRecordNodeSetEve, sizeof(__pyx_k_cuGraphExecEventRecordNodeSetEve), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecEventWaitNodeSetEvent, __pyx_k_cuGraphExecEventWaitNodeSetEvent, sizeof(__pyx_k_cuGraphExecEventWaitNodeSetEvent), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecExternalSemaphoresSig, __pyx_k_cuGraphExecExternalSemaphoresSig, sizeof(__pyx_k_cuGraphExecExternalSemaphoresSig), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecExternalSemaphoresWai, __pyx_k_cuGraphExecExternalSemaphoresWai, sizeof(__pyx_k_cuGraphExecExternalSemaphoresWai), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecHostNodeSetParams, __pyx_k_cuGraphExecHostNodeSetParams, sizeof(__pyx_k_cuGraphExecHostNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecKernelNodeSetParams, __pyx_k_cuGraphExecKernelNodeSetParams, sizeof(__pyx_k_cuGraphExecKernelNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecMemcpyNodeSetParams, __pyx_k_cuGraphExecMemcpyNodeSetParams, sizeof(__pyx_k_cuGraphExecMemcpyNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecMemsetNodeSetParams, __pyx_k_cuGraphExecMemsetNodeSetParams, sizeof(__pyx_k_cuGraphExecMemsetNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExecUpdate, __pyx_k_cuGraphExecUpdate, sizeof(__pyx_k_cuGraphExecUpdate), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExternalSemaphoresSignalN, __pyx_k_cuGraphExternalSemaphoresSignalN, sizeof(__pyx_k_cuGraphExternalSemaphoresSignalN), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExternalSemaphoresSignalN_2, __pyx_k_cuGraphExternalSemaphoresSignalN_2, sizeof(__pyx_k_cuGraphExternalSemaphoresSignalN_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExternalSemaphoresWaitNod, __pyx_k_cuGraphExternalSemaphoresWaitNod, sizeof(__pyx_k_cuGraphExternalSemaphoresWaitNod), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphExternalSemaphoresWaitNod_2, __pyx_k_cuGraphExternalSemaphoresWaitNod_2, sizeof(__pyx_k_cuGraphExternalSemaphoresWaitNod_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphGetEdges, __pyx_k_cuGraphGetEdges, sizeof(__pyx_k_cuGraphGetEdges), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphGetNodes, __pyx_k_cuGraphGetNodes, sizeof(__pyx_k_cuGraphGetNodes), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphGetRootNodes, __pyx_k_cuGraphGetRootNodes, sizeof(__pyx_k_cuGraphGetRootNodes), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphHostNodeGetParams, __pyx_k_cuGraphHostNodeGetParams, sizeof(__pyx_k_cuGraphHostNodeGetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphHostNodeSetParams, __pyx_k_cuGraphHostNodeSetParams, sizeof(__pyx_k_cuGraphHostNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphInstantiate, __pyx_k_cuGraphInstantiate, sizeof(__pyx_k_cuGraphInstantiate), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphInstantiateWithFlags, __pyx_k_cuGraphInstantiateWithFlags, sizeof(__pyx_k_cuGraphInstantiateWithFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphKernelNodeCopyAttributes, __pyx_k_cuGraphKernelNodeCopyAttributes, sizeof(__pyx_k_cuGraphKernelNodeCopyAttributes), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphKernelNodeGetAttribute, __pyx_k_cuGraphKernelNodeGetAttribute, sizeof(__pyx_k_cuGraphKernelNodeGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphKernelNodeGetParams, __pyx_k_cuGraphKernelNodeGetParams, sizeof(__pyx_k_cuGraphKernelNodeGetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphKernelNodeSetAttribute, __pyx_k_cuGraphKernelNodeSetAttribute, sizeof(__pyx_k_cuGraphKernelNodeSetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphKernelNodeSetParams, __pyx_k_cuGraphKernelNodeSetParams, sizeof(__pyx_k_cuGraphKernelNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphLaunch, __pyx_k_cuGraphLaunch, sizeof(__pyx_k_cuGraphLaunch), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphMemAllocNodeGetParams, __pyx_k_cuGraphMemAllocNodeGetParams, sizeof(__pyx_k_cuGraphMemAllocNodeGetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphMemFreeNodeGetParams, __pyx_k_cuGraphMemFreeNodeGetParams, sizeof(__pyx_k_cuGraphMemFreeNodeGetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphMemcpyNodeGetParams, __pyx_k_cuGraphMemcpyNodeGetParams, sizeof(__pyx_k_cuGraphMemcpyNodeGetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphMemcpyNodeSetParams, __pyx_k_cuGraphMemcpyNodeSetParams, sizeof(__pyx_k_cuGraphMemcpyNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphMemsetNodeGetParams, __pyx_k_cuGraphMemsetNodeGetParams, sizeof(__pyx_k_cuGraphMemsetNodeGetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphMemsetNodeSetParams, __pyx_k_cuGraphMemsetNodeSetParams, sizeof(__pyx_k_cuGraphMemsetNodeSetParams), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphNodeFindInClone, __pyx_k_cuGraphNodeFindInClone, sizeof(__pyx_k_cuGraphNodeFindInClone), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphNodeGetDependencies, __pyx_k_cuGraphNodeGetDependencies, sizeof(__pyx_k_cuGraphNodeGetDependencies), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphNodeGetDependentNodes, __pyx_k_cuGraphNodeGetDependentNodes, sizeof(__pyx_k_cuGraphNodeGetDependentNodes), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphNodeGetType, __pyx_k_cuGraphNodeGetType, sizeof(__pyx_k_cuGraphNodeGetType), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphReleaseUserObject, __pyx_k_cuGraphReleaseUserObject, sizeof(__pyx_k_cuGraphReleaseUserObject), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphRemoveDependencies, __pyx_k_cuGraphRemoveDependencies, sizeof(__pyx_k_cuGraphRemoveDependencies), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphRemoveDependencies_locals, __pyx_k_cuGraphRemoveDependencies_locals, sizeof(__pyx_k_cuGraphRemoveDependencies_locals), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphRetainUserObject, __pyx_k_cuGraphRetainUserObject, sizeof(__pyx_k_cuGraphRetainUserObject), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphUpload, __pyx_k_cuGraphUpload, sizeof(__pyx_k_cuGraphUpload), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsMapResources, __pyx_k_cuGraphicsMapResources, sizeof(__pyx_k_cuGraphicsMapResources), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsResourceGetMappedMipma, __pyx_k_cuGraphicsResourceGetMappedMipma, sizeof(__pyx_k_cuGraphicsResourceGetMappedMipma), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsResourceGetMappedPoint, __pyx_k_cuGraphicsResourceGetMappedPoint, sizeof(__pyx_k_cuGraphicsResourceGetMappedPoint), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsResourceSetMapFlags, __pyx_k_cuGraphicsResourceSetMapFlags, sizeof(__pyx_k_cuGraphicsResourceSetMapFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsSubResourceGetMappedAr, __pyx_k_cuGraphicsSubResourceGetMappedAr, sizeof(__pyx_k_cuGraphicsSubResourceGetMappedAr), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsUnmapResources, __pyx_k_cuGraphicsUnmapResources, sizeof(__pyx_k_cuGraphicsUnmapResources), 0, 0, 1, 1},
  {&__pyx_n_s_cuGraphicsUnregisterResource, __pyx_k_cuGraphicsUnregisterResource, sizeof(__pyx_k_cuGraphicsUnregisterResource), 0, 0, 1, 1},
  {&__pyx_n_s_cuImportExternalMemory, __pyx_k_cuImportExternalMemory, sizeof(__pyx_k_cuImportExternalMemory), 0, 0, 1, 1},
  {&__pyx_n_s_cuImportExternalSemaphore, __pyx_k_cuImportExternalSemaphore, sizeof(__pyx_k_cuImportExternalSemaphore), 0, 0, 1, 1},
  {&__pyx_n_s_cuInit, __pyx_k_cuInit, sizeof(__pyx_k_cuInit), 0, 0, 1, 1},
  {&__pyx_n_s_cuIpcCloseMemHandle, __pyx_k_cuIpcCloseMemHandle, sizeof(__pyx_k_cuIpcCloseMemHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuIpcGetEventHandle, __pyx_k_cuIpcGetEventHandle, sizeof(__pyx_k_cuIpcGetEventHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuIpcGetMemHandle, __pyx_k_cuIpcGetMemHandle, sizeof(__pyx_k_cuIpcGetMemHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuIpcOpenEventHandle, __pyx_k_cuIpcOpenEventHandle, sizeof(__pyx_k_cuIpcOpenEventHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuIpcOpenMemHandle, __pyx_k_cuIpcOpenMemHandle, sizeof(__pyx_k_cuIpcOpenMemHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunch, __pyx_k_cuLaunch, sizeof(__pyx_k_cuLaunch), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchCooperativeKernel, __pyx_k_cuLaunchCooperativeKernel, sizeof(__pyx_k_cuLaunchCooperativeKernel), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchCooperativeKernelMultiDe, __pyx_k_cuLaunchCooperativeKernelMultiDe, sizeof(__pyx_k_cuLaunchCooperativeKernelMultiDe), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchCooperativeKernelMultiDe_2, __pyx_k_cuLaunchCooperativeKernelMultiDe_2, sizeof(__pyx_k_cuLaunchCooperativeKernelMultiDe_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchGrid, __pyx_k_cuLaunchGrid, sizeof(__pyx_k_cuLaunchGrid), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchGridAsync, __pyx_k_cuLaunchGridAsync, sizeof(__pyx_k_cuLaunchGridAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchHostFunc, __pyx_k_cuLaunchHostFunc, sizeof(__pyx_k_cuLaunchHostFunc), 0, 0, 1, 1},
  {&__pyx_n_s_cuLaunchKernel, __pyx_k_cuLaunchKernel, sizeof(__pyx_k_cuLaunchKernel), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkAddData, __pyx_k_cuLinkAddData, sizeof(__pyx_k_cuLinkAddData), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkAddData_locals_genexpr, __pyx_k_cuLinkAddData_locals_genexpr, sizeof(__pyx_k_cuLinkAddData_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkAddFile, __pyx_k_cuLinkAddFile, sizeof(__pyx_k_cuLinkAddFile), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkAddFile_locals_genexpr, __pyx_k_cuLinkAddFile_locals_genexpr, sizeof(__pyx_k_cuLinkAddFile_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkComplete, __pyx_k_cuLinkComplete, sizeof(__pyx_k_cuLinkComplete), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkCreate, __pyx_k_cuLinkCreate, sizeof(__pyx_k_cuLinkCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkCreate_locals_genexpr, __pyx_k_cuLinkCreate_locals_genexpr, sizeof(__pyx_k_cuLinkCreate_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_cuLinkDestroy, __pyx_k_cuLinkDestroy, sizeof(__pyx_k_cuLinkDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAddressFree, __pyx_k_cuMemAddressFree, sizeof(__pyx_k_cuMemAddressFree), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAddressReserve, __pyx_k_cuMemAddressReserve, sizeof(__pyx_k_cuMemAddressReserve), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAdvise, __pyx_k_cuMemAdvise, sizeof(__pyx_k_cuMemAdvise), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAlloc, __pyx_k_cuMemAlloc, sizeof(__pyx_k_cuMemAlloc), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAllocAsync, __pyx_k_cuMemAllocAsync, sizeof(__pyx_k_cuMemAllocAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAllocFromPoolAsync, __pyx_k_cuMemAllocFromPoolAsync, sizeof(__pyx_k_cuMemAllocFromPoolAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAllocHost, __pyx_k_cuMemAllocHost, sizeof(__pyx_k_cuMemAllocHost), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAllocManaged, __pyx_k_cuMemAllocManaged, sizeof(__pyx_k_cuMemAllocManaged), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemAllocPitch, __pyx_k_cuMemAllocPitch, sizeof(__pyx_k_cuMemAllocPitch), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemCreate, __pyx_k_cuMemCreate, sizeof(__pyx_k_cuMemCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemExportToShareableHandle, __pyx_k_cuMemExportToShareableHandle, sizeof(__pyx_k_cuMemExportToShareableHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemFree, __pyx_k_cuMemFree, sizeof(__pyx_k_cuMemFree), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemFreeAsync, __pyx_k_cuMemFreeAsync, sizeof(__pyx_k_cuMemFreeAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemFreeHost, __pyx_k_cuMemFreeHost, sizeof(__pyx_k_cuMemFreeHost), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemGetAccess, __pyx_k_cuMemGetAccess, sizeof(__pyx_k_cuMemGetAccess), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemGetAddressRange, __pyx_k_cuMemGetAddressRange, sizeof(__pyx_k_cuMemGetAddressRange), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemGetAllocationGranularity, __pyx_k_cuMemGetAllocationGranularity, sizeof(__pyx_k_cuMemGetAllocationGranularity), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemGetAllocationPropertiesFrom, __pyx_k_cuMemGetAllocationPropertiesFrom, sizeof(__pyx_k_cuMemGetAllocationPropertiesFrom), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemGetInfo, __pyx_k_cuMemGetInfo, sizeof(__pyx_k_cuMemGetInfo), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemHostAlloc, __pyx_k_cuMemHostAlloc, sizeof(__pyx_k_cuMemHostAlloc), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemHostGetDevicePointer, __pyx_k_cuMemHostGetDevicePointer, sizeof(__pyx_k_cuMemHostGetDevicePointer), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemHostGetFlags, __pyx_k_cuMemHostGetFlags, sizeof(__pyx_k_cuMemHostGetFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemHostRegister, __pyx_k_cuMemHostRegister, sizeof(__pyx_k_cuMemHostRegister), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemHostUnregister, __pyx_k_cuMemHostUnregister, sizeof(__pyx_k_cuMemHostUnregister), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemImportFromShareableHandle, __pyx_k_cuMemImportFromShareableHandle, sizeof(__pyx_k_cuMemImportFromShareableHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemMap, __pyx_k_cuMemMap, sizeof(__pyx_k_cuMemMap), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemMapArrayAsync, __pyx_k_cuMemMapArrayAsync, sizeof(__pyx_k_cuMemMapArrayAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemMapArrayAsync_locals_genexp, __pyx_k_cuMemMapArrayAsync_locals_genexp, sizeof(__pyx_k_cuMemMapArrayAsync_locals_genexp), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolCreate, __pyx_k_cuMemPoolCreate, sizeof(__pyx_k_cuMemPoolCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolDestroy, __pyx_k_cuMemPoolDestroy, sizeof(__pyx_k_cuMemPoolDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolExportPointer, __pyx_k_cuMemPoolExportPointer, sizeof(__pyx_k_cuMemPoolExportPointer), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolExportToShareableHandle, __pyx_k_cuMemPoolExportToShareableHandle, sizeof(__pyx_k_cuMemPoolExportToShareableHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolGetAccess, __pyx_k_cuMemPoolGetAccess, sizeof(__pyx_k_cuMemPoolGetAccess), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolGetAttribute, __pyx_k_cuMemPoolGetAttribute, sizeof(__pyx_k_cuMemPoolGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolImportFromShareableHand, __pyx_k_cuMemPoolImportFromShareableHand, sizeof(__pyx_k_cuMemPoolImportFromShareableHand), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolImportPointer, __pyx_k_cuMemPoolImportPointer, sizeof(__pyx_k_cuMemPoolImportPointer), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolSetAccess, __pyx_k_cuMemPoolSetAccess, sizeof(__pyx_k_cuMemPoolSetAccess), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolSetAccess_locals_genexp, __pyx_k_cuMemPoolSetAccess_locals_genexp, sizeof(__pyx_k_cuMemPoolSetAccess_locals_genexp), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolSetAttribute, __pyx_k_cuMemPoolSetAttribute, sizeof(__pyx_k_cuMemPoolSetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPoolTrimTo, __pyx_k_cuMemPoolTrimTo, sizeof(__pyx_k_cuMemPoolTrimTo), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemPrefetchAsync, __pyx_k_cuMemPrefetchAsync, sizeof(__pyx_k_cuMemPrefetchAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemRangeGetAttribute, __pyx_k_cuMemRangeGetAttribute, sizeof(__pyx_k_cuMemRangeGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemRangeGetAttributes, __pyx_k_cuMemRangeGetAttributes, sizeof(__pyx_k_cuMemRangeGetAttributes), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemRangeGetAttributes_locals_g, __pyx_k_cuMemRangeGetAttributes_locals_g, sizeof(__pyx_k_cuMemRangeGetAttributes_locals_g), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemRelease, __pyx_k_cuMemRelease, sizeof(__pyx_k_cuMemRelease), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemRetainAllocationHandle, __pyx_k_cuMemRetainAllocationHandle, sizeof(__pyx_k_cuMemRetainAllocationHandle), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemSetAccess, __pyx_k_cuMemSetAccess, sizeof(__pyx_k_cuMemSetAccess), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemSetAccess_locals_genexpr, __pyx_k_cuMemSetAccess_locals_genexpr, sizeof(__pyx_k_cuMemSetAccess_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemUnmap, __pyx_k_cuMemUnmap, sizeof(__pyx_k_cuMemUnmap), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy, __pyx_k_cuMemcpy, sizeof(__pyx_k_cuMemcpy), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy2D, __pyx_k_cuMemcpy2D, sizeof(__pyx_k_cuMemcpy2D), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy2DAsync, __pyx_k_cuMemcpy2DAsync, sizeof(__pyx_k_cuMemcpy2DAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy2DUnaligned, __pyx_k_cuMemcpy2DUnaligned, sizeof(__pyx_k_cuMemcpy2DUnaligned), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy3D, __pyx_k_cuMemcpy3D, sizeof(__pyx_k_cuMemcpy3D), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy3DAsync, __pyx_k_cuMemcpy3DAsync, sizeof(__pyx_k_cuMemcpy3DAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy3DPeer, __pyx_k_cuMemcpy3DPeer, sizeof(__pyx_k_cuMemcpy3DPeer), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpy3DPeerAsync, __pyx_k_cuMemcpy3DPeerAsync, sizeof(__pyx_k_cuMemcpy3DPeerAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyAsync, __pyx_k_cuMemcpyAsync, sizeof(__pyx_k_cuMemcpyAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyAtoA, __pyx_k_cuMemcpyAtoA, sizeof(__pyx_k_cuMemcpyAtoA), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyAtoD, __pyx_k_cuMemcpyAtoD, sizeof(__pyx_k_cuMemcpyAtoD), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyAtoH, __pyx_k_cuMemcpyAtoH, sizeof(__pyx_k_cuMemcpyAtoH), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyAtoHAsync, __pyx_k_cuMemcpyAtoHAsync, sizeof(__pyx_k_cuMemcpyAtoHAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyDtoA, __pyx_k_cuMemcpyDtoA, sizeof(__pyx_k_cuMemcpyDtoA), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyDtoD, __pyx_k_cuMemcpyDtoD, sizeof(__pyx_k_cuMemcpyDtoD), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyDtoDAsync, __pyx_k_cuMemcpyDtoDAsync, sizeof(__pyx_k_cuMemcpyDtoDAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyDtoH, __pyx_k_cuMemcpyDtoH, sizeof(__pyx_k_cuMemcpyDtoH), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyDtoHAsync, __pyx_k_cuMemcpyDtoHAsync, sizeof(__pyx_k_cuMemcpyDtoHAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyHtoA, __pyx_k_cuMemcpyHtoA, sizeof(__pyx_k_cuMemcpyHtoA), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyHtoAAsync, __pyx_k_cuMemcpyHtoAAsync, sizeof(__pyx_k_cuMemcpyHtoAAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyHtoD, __pyx_k_cuMemcpyHtoD, sizeof(__pyx_k_cuMemcpyHtoD), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyHtoDAsync, __pyx_k_cuMemcpyHtoDAsync, sizeof(__pyx_k_cuMemcpyHtoDAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyPeer, __pyx_k_cuMemcpyPeer, sizeof(__pyx_k_cuMemcpyPeer), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemcpyPeerAsync, __pyx_k_cuMemcpyPeerAsync, sizeof(__pyx_k_cuMemcpyPeerAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD16, __pyx_k_cuMemsetD16, sizeof(__pyx_k_cuMemsetD16), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD16Async, __pyx_k_cuMemsetD16Async, sizeof(__pyx_k_cuMemsetD16Async), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD2D16, __pyx_k_cuMemsetD2D16, sizeof(__pyx_k_cuMemsetD2D16), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD2D16Async, __pyx_k_cuMemsetD2D16Async, sizeof(__pyx_k_cuMemsetD2D16Async), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD2D32, __pyx_k_cuMemsetD2D32, sizeof(__pyx_k_cuMemsetD2D32), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD2D32Async, __pyx_k_cuMemsetD2D32Async, sizeof(__pyx_k_cuMemsetD2D32Async), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD2D8, __pyx_k_cuMemsetD2D8, sizeof(__pyx_k_cuMemsetD2D8), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD2D8Async, __pyx_k_cuMemsetD2D8Async, sizeof(__pyx_k_cuMemsetD2D8Async), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD32, __pyx_k_cuMemsetD32, sizeof(__pyx_k_cuMemsetD32), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD32Async, __pyx_k_cuMemsetD32Async, sizeof(__pyx_k_cuMemsetD32Async), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD8, __pyx_k_cuMemsetD8, sizeof(__pyx_k_cuMemsetD8), 0, 0, 1, 1},
  {&__pyx_n_s_cuMemsetD8Async, __pyx_k_cuMemsetD8Async, sizeof(__pyx_k_cuMemsetD8Async), 0, 0, 1, 1},
  {&__pyx_n_s_cuMipmappedArrayCreate, __pyx_k_cuMipmappedArrayCreate, sizeof(__pyx_k_cuMipmappedArrayCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuMipmappedArrayDestroy, __pyx_k_cuMipmappedArrayDestroy, sizeof(__pyx_k_cuMipmappedArrayDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuMipmappedArrayGetLevel, __pyx_k_cuMipmappedArrayGetLevel, sizeof(__pyx_k_cuMipmappedArrayGetLevel), 0, 0, 1, 1},
  {&__pyx_n_s_cuMipmappedArrayGetSparsePropert, __pyx_k_cuMipmappedArrayGetSparsePropert, sizeof(__pyx_k_cuMipmappedArrayGetSparsePropert), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleGetFunction, __pyx_k_cuModuleGetFunction, sizeof(__pyx_k_cuModuleGetFunction), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleGetGlobal, __pyx_k_cuModuleGetGlobal, sizeof(__pyx_k_cuModuleGetGlobal), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleGetSurfRef, __pyx_k_cuModuleGetSurfRef, sizeof(__pyx_k_cuModuleGetSurfRef), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleGetTexRef, __pyx_k_cuModuleGetTexRef, sizeof(__pyx_k_cuModuleGetTexRef), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleLoad, __pyx_k_cuModuleLoad, sizeof(__pyx_k_cuModuleLoad), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleLoadData, __pyx_k_cuModuleLoadData, sizeof(__pyx_k_cuModuleLoadData), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleLoadDataEx, __pyx_k_cuModuleLoadDataEx, sizeof(__pyx_k_cuModuleLoadDataEx), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleLoadDataEx_locals_genexp, __pyx_k_cuModuleLoadDataEx_locals_genexp, sizeof(__pyx_k_cuModuleLoadDataEx_locals_genexp), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleLoadFatBinary, __pyx_k_cuModuleLoadFatBinary, sizeof(__pyx_k_cuModuleLoadFatBinary), 0, 0, 1, 1},
  {&__pyx_n_s_cuModuleUnload, __pyx_k_cuModuleUnload, sizeof(__pyx_k_cuModuleUnload), 0, 0, 1, 1},
  {&__pyx_n_s_cuOccupancyAvailableDynamicSMemP, __pyx_k_cuOccupancyAvailableDynamicSMemP, sizeof(__pyx_k_cuOccupancyAvailableDynamicSMemP), 0, 0, 1, 1},
  {&__pyx_n_s_cuOccupancyMaxActiveBlocksPerMul, __pyx_k_cuOccupancyMaxActiveBlocksPerMul, sizeof(__pyx_k_cuOccupancyMaxActiveBlocksPerMul), 0, 0, 1, 1},
  {&__pyx_n_s_cuOccupancyMaxActiveBlocksPerMul_2, __pyx_k_cuOccupancyMaxActiveBlocksPerMul_2, sizeof(__pyx_k_cuOccupancyMaxActiveBlocksPerMul_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuOccupancyMaxPotentialBlockSize, __pyx_k_cuOccupancyMaxPotentialBlockSize, sizeof(__pyx_k_cuOccupancyMaxPotentialBlockSize), 0, 0, 1, 1},
  {&__pyx_n_s_cuOccupancyMaxPotentialBlockSize_2, __pyx_k_cuOccupancyMaxPotentialBlockSize_2, sizeof(__pyx_k_cuOccupancyMaxPotentialBlockSize_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuParamSetSize, __pyx_k_cuParamSetSize, sizeof(__pyx_k_cuParamSetSize), 0, 0, 1, 1},
  {&__pyx_n_s_cuParamSetTexRef, __pyx_k_cuParamSetTexRef, sizeof(__pyx_k_cuParamSetTexRef), 0, 0, 1, 1},
  {&__pyx_n_s_cuParamSetf, __pyx_k_cuParamSetf, sizeof(__pyx_k_cuParamSetf), 0, 0, 1, 1},
  {&__pyx_n_s_cuParamSeti, __pyx_k_cuParamSeti, sizeof(__pyx_k_cuParamSeti), 0, 0, 1, 1},
  {&__pyx_n_s_cuParamSetv, __pyx_k_cuParamSetv, sizeof(__pyx_k_cuParamSetv), 0, 0, 1, 1},
  {&__pyx_n_s_cuPointerGetAttribute, __pyx_k_cuPointerGetAttribute, sizeof(__pyx_k_cuPointerGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuPointerGetAttributes, __pyx_k_cuPointerGetAttributes, sizeof(__pyx_k_cuPointerGetAttributes), 0, 0, 1, 1},
  {&__pyx_n_s_cuPointerGetAttributes_locals_ge, __pyx_k_cuPointerGetAttributes_locals_ge, sizeof(__pyx_k_cuPointerGetAttributes_locals_ge), 0, 0, 1, 1},
  {&__pyx_n_s_cuPointerSetAttribute, __pyx_k_cuPointerSetAttribute, sizeof(__pyx_k_cuPointerSetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuSignalExternalSemaphoresAsync, __pyx_k_cuSignalExternalSemaphoresAsync, sizeof(__pyx_k_cuSignalExternalSemaphoresAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuSignalExternalSemaphoresAsync_2, __pyx_k_cuSignalExternalSemaphoresAsync_2, sizeof(__pyx_k_cuSignalExternalSemaphoresAsync_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamAddCallback, __pyx_k_cuStreamAddCallback, sizeof(__pyx_k_cuStreamAddCallback), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamAttachMemAsync, __pyx_k_cuStreamAttachMemAsync, sizeof(__pyx_k_cuStreamAttachMemAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamBatchMemOp, __pyx_k_cuStreamBatchMemOp, sizeof(__pyx_k_cuStreamBatchMemOp), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamBatchMemOp_locals_genexp, __pyx_k_cuStreamBatchMemOp_locals_genexp, sizeof(__pyx_k_cuStreamBatchMemOp_locals_genexp), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamBeginCapture, __pyx_k_cuStreamBeginCapture, sizeof(__pyx_k_cuStreamBeginCapture), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamCopyAttributes, __pyx_k_cuStreamCopyAttributes, sizeof(__pyx_k_cuStreamCopyAttributes), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamCreate, __pyx_k_cuStreamCreate, sizeof(__pyx_k_cuStreamCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamCreateWithPriority, __pyx_k_cuStreamCreateWithPriority, sizeof(__pyx_k_cuStreamCreateWithPriority), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamDestroy, __pyx_k_cuStreamDestroy, sizeof(__pyx_k_cuStreamDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamEndCapture, __pyx_k_cuStreamEndCapture, sizeof(__pyx_k_cuStreamEndCapture), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamGetAttribute, __pyx_k_cuStreamGetAttribute, sizeof(__pyx_k_cuStreamGetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamGetCaptureInfo, __pyx_k_cuStreamGetCaptureInfo, sizeof(__pyx_k_cuStreamGetCaptureInfo), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamGetCaptureInfo_v2, __pyx_k_cuStreamGetCaptureInfo_v2, sizeof(__pyx_k_cuStreamGetCaptureInfo_v2), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamGetCtx, __pyx_k_cuStreamGetCtx, sizeof(__pyx_k_cuStreamGetCtx), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamGetFlags, __pyx_k_cuStreamGetFlags, sizeof(__pyx_k_cuStreamGetFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamGetPriority, __pyx_k_cuStreamGetPriority, sizeof(__pyx_k_cuStreamGetPriority), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamIsCapturing, __pyx_k_cuStreamIsCapturing, sizeof(__pyx_k_cuStreamIsCapturing), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamQuery, __pyx_k_cuStreamQuery, sizeof(__pyx_k_cuStreamQuery), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamSetAttribute, __pyx_k_cuStreamSetAttribute, sizeof(__pyx_k_cuStreamSetAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamSynchronize, __pyx_k_cuStreamSynchronize, sizeof(__pyx_k_cuStreamSynchronize), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamUpdateCaptureDependencie, __pyx_k_cuStreamUpdateCaptureDependencie, sizeof(__pyx_k_cuStreamUpdateCaptureDependencie), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamUpdateCaptureDependencie_2, __pyx_k_cuStreamUpdateCaptureDependencie_2, sizeof(__pyx_k_cuStreamUpdateCaptureDependencie_2), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamWaitEvent, __pyx_k_cuStreamWaitEvent, sizeof(__pyx_k_cuStreamWaitEvent), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamWaitValue32, __pyx_k_cuStreamWaitValue32, sizeof(__pyx_k_cuStreamWaitValue32), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamWaitValue64, __pyx_k_cuStreamWaitValue64, sizeof(__pyx_k_cuStreamWaitValue64), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamWriteValue32, __pyx_k_cuStreamWriteValue32, sizeof(__pyx_k_cuStreamWriteValue32), 0, 0, 1, 1},
  {&__pyx_n_s_cuStreamWriteValue64, __pyx_k_cuStreamWriteValue64, sizeof(__pyx_k_cuStreamWriteValue64), 0, 0, 1, 1},
  {&__pyx_n_s_cuSurfObjectCreate, __pyx_k_cuSurfObjectCreate, sizeof(__pyx_k_cuSurfObjectCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuSurfObjectDestroy, __pyx_k_cuSurfObjectDestroy, sizeof(__pyx_k_cuSurfObjectDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuSurfObjectGetResourceDesc, __pyx_k_cuSurfObjectGetResourceDesc, sizeof(__pyx_k_cuSurfObjectGetResourceDesc), 0, 0, 1, 1},
  {&__pyx_n_s_cuSurfRefGetArray, __pyx_k_cuSurfRefGetArray, sizeof(__pyx_k_cuSurfRefGetArray), 0, 0, 1, 1},
  {&__pyx_n_s_cuSurfRefSetArray, __pyx_k_cuSurfRefSetArray, sizeof(__pyx_k_cuSurfRefSetArray), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexObjectCreate, __pyx_k_cuTexObjectCreate, sizeof(__pyx_k_cuTexObjectCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexObjectDestroy, __pyx_k_cuTexObjectDestroy, sizeof(__pyx_k_cuTexObjectDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexObjectGetResourceDesc, __pyx_k_cuTexObjectGetResourceDesc, sizeof(__pyx_k_cuTexObjectGetResourceDesc), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexObjectGetResourceViewDesc, __pyx_k_cuTexObjectGetResourceViewDesc, sizeof(__pyx_k_cuTexObjectGetResourceViewDesc), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexObjectGetTextureDesc, __pyx_k_cuTexObjectGetTextureDesc, sizeof(__pyx_k_cuTexObjectGetTextureDesc), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefCreate, __pyx_k_cuTexRefCreate, sizeof(__pyx_k_cuTexRefCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefDestroy, __pyx_k_cuTexRefDestroy, sizeof(__pyx_k_cuTexRefDestroy), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetAddress, __pyx_k_cuTexRefGetAddress, sizeof(__pyx_k_cuTexRefGetAddress), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetAddressMode, __pyx_k_cuTexRefGetAddressMode, sizeof(__pyx_k_cuTexRefGetAddressMode), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetArray, __pyx_k_cuTexRefGetArray, sizeof(__pyx_k_cuTexRefGetArray), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetBorderColor, __pyx_k_cuTexRefGetBorderColor, sizeof(__pyx_k_cuTexRefGetBorderColor), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetFilterMode, __pyx_k_cuTexRefGetFilterMode, sizeof(__pyx_k_cuTexRefGetFilterMode), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetFlags, __pyx_k_cuTexRefGetFlags, sizeof(__pyx_k_cuTexRefGetFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetFormat, __pyx_k_cuTexRefGetFormat, sizeof(__pyx_k_cuTexRefGetFormat), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetMaxAnisotropy, __pyx_k_cuTexRefGetMaxAnisotropy, sizeof(__pyx_k_cuTexRefGetMaxAnisotropy), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetMipmapFilterMode, __pyx_k_cuTexRefGetMipmapFilterMode, sizeof(__pyx_k_cuTexRefGetMipmapFilterMode), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetMipmapLevelBias, __pyx_k_cuTexRefGetMipmapLevelBias, sizeof(__pyx_k_cuTexRefGetMipmapLevelBias), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetMipmapLevelClamp, __pyx_k_cuTexRefGetMipmapLevelClamp, sizeof(__pyx_k_cuTexRefGetMipmapLevelClamp), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefGetMipmappedArray, __pyx_k_cuTexRefGetMipmappedArray, sizeof(__pyx_k_cuTexRefGetMipmappedArray), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetAddress, __pyx_k_cuTexRefSetAddress, sizeof(__pyx_k_cuTexRefSetAddress), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetAddress2D, __pyx_k_cuTexRefSetAddress2D, sizeof(__pyx_k_cuTexRefSetAddress2D), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetAddressMode, __pyx_k_cuTexRefSetAddressMode, sizeof(__pyx_k_cuTexRefSetAddressMode), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetArray, __pyx_k_cuTexRefSetArray, sizeof(__pyx_k_cuTexRefSetArray), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetBorderColor, __pyx_k_cuTexRefSetBorderColor, sizeof(__pyx_k_cuTexRefSetBorderColor), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetFilterMode, __pyx_k_cuTexRefSetFilterMode, sizeof(__pyx_k_cuTexRefSetFilterMode), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetFlags, __pyx_k_cuTexRefSetFlags, sizeof(__pyx_k_cuTexRefSetFlags), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetFormat, __pyx_k_cuTexRefSetFormat, sizeof(__pyx_k_cuTexRefSetFormat), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetMaxAnisotropy, __pyx_k_cuTexRefSetMaxAnisotropy, sizeof(__pyx_k_cuTexRefSetMaxAnisotropy), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetMipmapFilterMode, __pyx_k_cuTexRefSetMipmapFilterMode, sizeof(__pyx_k_cuTexRefSetMipmapFilterMode), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetMipmapLevelBias, __pyx_k_cuTexRefSetMipmapLevelBias, sizeof(__pyx_k_cuTexRefSetMipmapLevelBias), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetMipmapLevelClamp, __pyx_k_cuTexRefSetMipmapLevelClamp, sizeof(__pyx_k_cuTexRefSetMipmapLevelClamp), 0, 0, 1, 1},
  {&__pyx_n_s_cuTexRefSetMipmappedArray, __pyx_k_cuTexRefSetMipmappedArray, sizeof(__pyx_k_cuTexRefSetMipmappedArray), 0, 0, 1, 1},
  {&__pyx_n_s_cuThreadExchangeStreamCaptureMod, __pyx_k_cuThreadExchangeStreamCaptureMod, sizeof(__pyx_k_cuThreadExchangeStreamCaptureMod), 0, 0, 1, 1},
  {&__pyx_n_s_cuUserObjectCreate, __pyx_k_cuUserObjectCreate, sizeof(__pyx_k_cuUserObjectCreate), 0, 0, 1, 1},
  {&__pyx_n_s_cuUserObjectRelease, __pyx_k_cuUserObjectRelease, sizeof(__pyx_k_cuUserObjectRelease), 0, 0, 1, 1},
  {&__pyx_n_s_cuUserObjectRetain, __pyx_k_cuUserObjectRetain, sizeof(__pyx_k_cuUserObjectRetain), 0, 0, 1, 1},
  {&__pyx_n_s_cuWaitExternalSemaphoresAsync, __pyx_k_cuWaitExternalSemaphoresAsync, sizeof(__pyx_k_cuWaitExternalSemaphoresAsync), 0, 0, 1, 1},
  {&__pyx_n_s_cuWaitExternalSemaphoresAsync_lo, __pyx_k_cuWaitExternalSemaphoresAsync_lo, sizeof(__pyx_k_cuWaitExternalSemaphoresAsync_lo), 0, 0, 1, 1},
  {&__pyx_n_s_cubinOut, __pyx_k_cubinOut, sizeof(__pyx_k_cubinOut), 0, 0, 1, 1},
  {&__pyx_n_s_cudaVersion, __pyx_k_cudaVersion, sizeof(__pyx_k_cudaVersion), 0, 0, 1, 1},
  {&__pyx_n_s_cuda_cuda, __pyx_k_cuda_cuda, sizeof(__pyx_k_cuda_cuda), 0, 0, 1, 1},
  {&__pyx_kp_s_cuda_cuda_pyx, __pyx_k_cuda_cuda_pyx, sizeof(__pyx_k_cuda_cuda_pyx), 0, 0, 1, 0},
  {&__pyx_n_s_cuserData, __pyx_k_cuserData, sizeof(__pyx_k_cuserData), 0, 0, 1, 1},
  {&__pyx_n_s_cuserData_ptr, __pyx_k_cuserData_ptr, sizeof(__pyx_k_cuserData_ptr), 0, 0, 1, 1},
  {&__pyx_kp_u_cuuint32_t, __pyx_k_cuuint32_t, sizeof(__pyx_k_cuuint32_t), 0, 1, 0, 0},
  {&__pyx_n_s_cuuint32_t_2, __pyx_k_cuuint32_t_2, sizeof(__pyx_k_cuuint32_t_2), 0, 0, 1, 1},
  {&__pyx_n_u_cuuint32_t_2, __pyx_k_cuuint32_t_2, sizeof(__pyx_k_cuuint32_t_2), 0, 1, 0, 1},
  {&__pyx_n_s_cuuint32_t___reduce_cython, __pyx_k_cuuint32_t___reduce_cython, sizeof(__pyx_k_cuuint32_t___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_cuuint32_t___setstate_cython, __pyx_k_cuuint32_t___setstate_cython, sizeof(__pyx_k_cuuint32_t___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_cuuint32_t_getPtr, __pyx_k_cuuint32_t_getPtr, sizeof(__pyx_k_cuuint32_t_getPtr), 0, 0, 1, 1},
  {&__pyx_kp_u_cuuint64_t, __pyx_k_cuuint64_t, sizeof(__pyx_k_cuuint64_t), 0, 1, 0, 0},
  {&__pyx_n_s_cuuint64_t_2, __pyx_k_cuuint64_t_2, sizeof(__pyx_k_cuuint64_t_2), 0, 0, 1, 1},
  {&__pyx_n_u_cuuint64_t_2, __pyx_k_cuuint64_t_2, sizeof(__pyx_k_cuuint64_t_2), 0, 1, 0, 1},
  {&__pyx_n_s_cuuint64_t___reduce_cython, __pyx_k_cuuint64_t___reduce_cython, sizeof(__pyx_k_cuuint64_t___reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_cuuint64_t___setstate_cython, __pyx_k_cuuint64_t___setstate_cython, sizeof(__pyx_k_cuuint64_t___setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_cuuint64_t_getPtr, __pyx_k_cuuint64_t_getPtr, sizeof(__pyx_k_cuuint64_t_getPtr), 0, 0, 1, 1},
  {&__pyx_n_s_cvalue, __pyx_k_cvalue, sizeof(__pyx_k_cvalue), 0, 0, 1, 1},
  {&__pyx_n_s_cvalue_ptr, __pyx_k_cvalue_ptr, sizeof(__pyx_k_cvalue_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_cvoidStarHelper_ptr, __pyx_k_cvoidStarHelper_ptr, sizeof(__pyx_k_cvoidStarHelper_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
  {&__pyx_n_s_dataSize, __pyx_k_dataSize, sizeof(__pyx_k_dataSize), 0, 0, 1, 1},
  {&__pyx_n_s_dataSizes, __pyx_k_dataSizes, sizeof(__pyx_k_dataSizes), 0, 0, 1, 1},
  {&__pyx_n_s_dependencies, __pyx_k_dependencies, sizeof(__pyx_k_dependencies), 0, 0, 1, 1},
  {&__pyx_kp_u_depth, __pyx_k_depth, sizeof(__pyx_k_depth), 0, 1, 0, 0},
  {&__pyx_n_s_depth_2, __pyx_k_depth_2, sizeof(__pyx_k_depth_2), 0, 0, 1, 1},
  {&__pyx_n_s_desc, __pyx_k_desc, sizeof(__pyx_k_desc), 0, 0, 1, 1},
  {&__pyx_n_s_destroy, __pyx_k_destroy, sizeof(__pyx_k_destroy), 0, 0, 1, 1},
  {&__pyx_n_s_dev, __pyx_k_dev, sizeof(__pyx_k_dev), 0, 0, 1, 1},
  {&__pyx_kp_u_devPtr, __pyx_k_devPtr, sizeof(__pyx_k_devPtr), 0, 1, 0, 0},
  {&__pyx_n_s_devPtr_2, __pyx_k_devPtr_2, sizeof(__pyx_k_devPtr_2), 0, 0, 1, 1},
  {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1},
  {&__pyx_kp_u_deviceBitMask, __pyx_k_deviceBitMask, sizeof(__pyx_k_deviceBitMask), 0, 1, 0, 0},
  {&__pyx_n_s_deviceBitMask_2, __pyx_k_deviceBitMask_2, sizeof(__pyx_k_deviceBitMask_2), 0, 0, 1, 1},
  {&__pyx_n_s_deviceNodeMask, __pyx_k_deviceNodeMask, sizeof(__pyx_k_deviceNodeMask), 0, 0, 1, 1},
  {&__pyx_n_s_dim, __pyx_k_dim, sizeof(__pyx_k_dim), 0, 0, 1, 1},
  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
  {&__pyx_kp_u_dptr, __pyx_k_dptr, sizeof(__pyx_k_dptr), 0, 1, 0, 0},
  {&__pyx_n_s_dptr_2, __pyx_k_dptr_2, sizeof(__pyx_k_dptr_2), 0, 0, 1, 1},
  {&__pyx_n_s_dptr_out, __pyx_k_dptr_out, sizeof(__pyx_k_dptr_out), 0, 0, 1, 1},
  {&__pyx_n_s_driverVersion, __pyx_k_driverVersion, sizeof(__pyx_k_driverVersion), 0, 0, 1, 1},
  {&__pyx_kp_u_dst, __pyx_k_dst, sizeof(__pyx_k_dst), 0, 1, 0, 0},
  {&__pyx_kp_u_dstArray, __pyx_k_dstArray, sizeof(__pyx_k_dstArray), 0, 1, 0, 0},
  {&__pyx_n_s_dstArray_2, __pyx_k_dstArray_2, sizeof(__pyx_k_dstArray_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstContext, __pyx_k_dstContext, sizeof(__pyx_k_dstContext), 0, 1, 0, 0},
  {&__pyx_n_s_dstContext_2, __pyx_k_dstContext_2, sizeof(__pyx_k_dstContext_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstDevice, __pyx_k_dstDevice, sizeof(__pyx_k_dstDevice), 0, 1, 0, 0},
  {&__pyx_n_s_dstDevice_2, __pyx_k_dstDevice_2, sizeof(__pyx_k_dstDevice_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstHeight, __pyx_k_dstHeight, sizeof(__pyx_k_dstHeight), 0, 1, 0, 0},
  {&__pyx_n_s_dstHeight_2, __pyx_k_dstHeight_2, sizeof(__pyx_k_dstHeight_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstHost, __pyx_k_dstHost, sizeof(__pyx_k_dstHost), 0, 1, 0, 0},
  {&__pyx_n_s_dstHost_2, __pyx_k_dstHost_2, sizeof(__pyx_k_dstHost_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstLOD, __pyx_k_dstLOD, sizeof(__pyx_k_dstLOD), 0, 1, 0, 0},
  {&__pyx_n_s_dstLOD_2, __pyx_k_dstLOD_2, sizeof(__pyx_k_dstLOD_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstMemoryType, __pyx_k_dstMemoryType, sizeof(__pyx_k_dstMemoryType), 0, 1, 0, 0},
  {&__pyx_n_s_dstMemoryType_2, __pyx_k_dstMemoryType_2, sizeof(__pyx_k_dstMemoryType_2), 0, 0, 1, 1},
  {&__pyx_n_s_dstOffset, __pyx_k_dstOffset, sizeof(__pyx_k_dstOffset), 0, 0, 1, 1},
  {&__pyx_kp_u_dstPitch, __pyx_k_dstPitch, sizeof(__pyx_k_dstPitch), 0, 1, 0, 0},
  {&__pyx_n_s_dstPitch_2, __pyx_k_dstPitch_2, sizeof(__pyx_k_dstPitch_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstXInBytes, __pyx_k_dstXInBytes, sizeof(__pyx_k_dstXInBytes), 0, 1, 0, 0},
  {&__pyx_n_s_dstXInBytes_2, __pyx_k_dstXInBytes_2, sizeof(__pyx_k_dstXInBytes_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstY, __pyx_k_dstY, sizeof(__pyx_k_dstY), 0, 1, 0, 0},
  {&__pyx_n_s_dstY_2, __pyx_k_dstY_2, sizeof(__pyx_k_dstY_2), 0, 0, 1, 1},
  {&__pyx_kp_u_dstZ, __pyx_k_dstZ, sizeof(__pyx_k_dstZ), 0, 1, 0, 0},
  {&__pyx_n_s_dstZ_2, __pyx_k_dstZ_2, sizeof(__pyx_k_dstZ_2), 0, 0, 1, 1},
  {&__pyx_n_s_dst_2, __pyx_k_dst_2, sizeof(__pyx_k_dst_2), 0, 0, 1, 1},
  {&__pyx_n_s_dynamicSMemSize, __pyx_k_dynamicSMemSize, sizeof(__pyx_k_dynamicSMemSize), 0, 0, 1, 1},
  {&__pyx_n_s_dynamicSmemSize, __pyx_k_dynamicSmemSize, sizeof(__pyx_k_dynamicSmemSize), 0, 0, 1, 1},
  {&__pyx_kp_u_elementSize, __pyx_k_elementSize, sizeof(__pyx_k_elementSize), 0, 1, 0, 0},
  {&__pyx_n_s_elementSize_2, __pyx_k_elementSize_2, sizeof(__pyx_k_elementSize_2), 0, 0, 1, 1},
  {&__pyx_n_s_enum, __pyx_k_enum, sizeof(__pyx_k_enum), 0, 0, 1, 1},
  {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
  {&__pyx_n_s_err, __pyx_k_err, sizeof(__pyx_k_err), 0, 0, 1, 1},
  {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
  {&__pyx_n_s_event, __pyx_k_event, sizeof(__pyx_k_event), 0, 0, 1, 1},
  {&__pyx_n_s_event_out, __pyx_k_event_out, sizeof(__pyx_k_event_out), 0, 0, 1, 1},
  {&__pyx_n_s_extMem, __pyx_k_extMem, sizeof(__pyx_k_extMem), 0, 0, 1, 1},
  {&__pyx_n_s_extMem_out, __pyx_k_extMem_out, sizeof(__pyx_k_extMem_out), 0, 0, 1, 1},
  {&__pyx_n_s_extSem, __pyx_k_extSem, sizeof(__pyx_k_extSem), 0, 0, 1, 1},
  {&__pyx_kp_u_extSemArray, __pyx_k_extSemArray, sizeof(__pyx_k_extSemArray), 0, 1, 0, 0},
  {&__pyx_n_s_extSemArray_2, __pyx_k_extSemArray_2, sizeof(__pyx_k_extSemArray_2), 0, 0, 1, 1},
  {&__pyx_n_s_extSem_out, __pyx_k_extSem_out, sizeof(__pyx_k_extSem_out), 0, 0, 1, 1},
  {&__pyx_kp_u_extentDepth, __pyx_k_extentDepth, sizeof(__pyx_k_extentDepth), 0, 1, 0, 0},
  {&__pyx_n_s_extentDepth_2, __pyx_k_extentDepth_2, sizeof(__pyx_k_extentDepth_2), 0, 0, 1, 1},
  {&__pyx_kp_u_extentHeight, __pyx_k_extentHeight, sizeof(__pyx_k_extentHeight), 0, 1, 0, 0},
  {&__pyx_n_s_extentHeight_2, __pyx_k_extentHeight_2, sizeof(__pyx_k_extentHeight_2), 0, 0, 1, 1},
  {&__pyx_kp_u_extentWidth, __pyx_k_extentWidth, sizeof(__pyx_k_extentWidth), 0, 1, 0, 0},
  {&__pyx_n_s_extentWidth_2, __pyx_k_extentWidth_2, sizeof(__pyx_k_extentWidth_2), 0, 0, 1, 1},
  {&__pyx_kp_u_extra, __pyx_k_extra, sizeof(__pyx_k_extra), 0, 1, 0, 0},
  {&__pyx_n_s_extra_2, __pyx_k_extra_2, sizeof(__pyx_k_extra_2), 0, 0, 1, 1},
  {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
  {&__pyx_n_s_fatCubin, __pyx_k_fatCubin, sizeof(__pyx_k_fatCubin), 0, 0, 1, 1},
  {&__pyx_kp_u_fd, __pyx_k_fd, sizeof(__pyx_k_fd), 0, 1, 0, 0},
  {&__pyx_n_s_fd_2, __pyx_k_fd_2, sizeof(__pyx_k_fd_2), 0, 0, 1, 1},
  {&__pyx_kp_u_fence, __pyx_k_fence, sizeof(__pyx_k_fence), 0, 1, 0, 0},
  {&__pyx_n_s_fence_2, __pyx_k_fence_2, sizeof(__pyx_k_fence_2), 0, 0, 1, 1},
  {&__pyx_kp_u_fence_3, __pyx_k_fence_3, sizeof(__pyx_k_fence_3), 0, 1, 0, 0},
  {&__pyx_kp_u_filterMode, __pyx_k_filterMode, sizeof(__pyx_k_filterMode), 0, 1, 0, 0},
  {&__pyx_n_s_filterMode_2, __pyx_k_filterMode_2, sizeof(__pyx_k_filterMode_2), 0, 0, 1, 1},
  {&__pyx_kp_u_firstLayer, __pyx_k_firstLayer, sizeof(__pyx_k_firstLayer), 0, 1, 0, 0},
  {&__pyx_n_s_firstLayer_2, __pyx_k_firstLayer_2, sizeof(__pyx_k_firstLayer_2), 0, 0, 1, 1},
  {&__pyx_kp_u_firstMipmapLevel, __pyx_k_firstMipmapLevel, sizeof(__pyx_k_firstMipmapLevel), 0, 1, 0, 0},
  {&__pyx_n_s_firstMipmapLevel_2, __pyx_k_firstMipmapLevel_2, sizeof(__pyx_k_firstMipmapLevel_2), 0, 0, 1, 1},
  {&__pyx_kp_u_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 1, 0, 0},
  {&__pyx_n_s_flags_2, __pyx_k_flags_2, sizeof(__pyx_k_flags_2), 0, 0, 1, 1},
  {&__pyx_kp_u_flushRemoteWrites, __pyx_k_flushRemoteWrites, sizeof(__pyx_k_flushRemoteWrites), 0, 1, 0, 0},
  {&__pyx_n_s_flushRemoteWrites_2, __pyx_k_flushRemoteWrites_2, sizeof(__pyx_k_flushRemoteWrites_2), 0, 0, 1, 1},
  {&__pyx_n_s_fm, __pyx_k_fm, sizeof(__pyx_k_fm), 0, 0, 1, 1},
  {&__pyx_n_s_fmt, __pyx_k_fmt, sizeof(__pyx_k_fmt), 0, 0, 1, 1},
  {&__pyx_kp_u_fn, __pyx_k_fn, sizeof(__pyx_k_fn), 0, 1, 0, 0},
  {&__pyx_n_s_fn_2, __pyx_k_fn_2, sizeof(__pyx_k_fn_2), 0, 0, 1, 1},
  {&__pyx_n_s_fname, __pyx_k_fname, sizeof(__pyx_k_fname), 0, 0, 1, 1},
  {&__pyx_kp_u_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 1, 0, 0},
  {&__pyx_n_s_format_2, __pyx_k_format_2, sizeof(__pyx_k_format_2), 0, 0, 1, 1},
  {&__pyx_n_s_free, __pyx_k_free, sizeof(__pyx_k_free), 0, 0, 1, 1},
  {&__pyx_n_s_from, __pyx_k_from, sizeof(__pyx_k_from), 0, 0, 1, 1},
  {&__pyx_kp_u_func, __pyx_k_func, sizeof(__pyx_k_func), 0, 1, 0, 0},
  {&__pyx_n_s_func_2, __pyx_k_func_2, sizeof(__pyx_k_func_2), 0, 0, 1, 1},
  {&__pyx_kp_u_function, __pyx_k_function, sizeof(__pyx_k_function), 0, 1, 0, 0},
  {&__pyx_n_s_function_2, __pyx_k_function_2, sizeof(__pyx_k_function_2), 0, 0, 1, 1},
  {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_getPtr, __pyx_k_getPtr, sizeof(__pyx_k_getPtr), 0, 0, 1, 1},
  {&__pyx_n_u_getPtr, __pyx_k_getPtr, sizeof(__pyx_k_getPtr), 0, 1, 0, 1},
  {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
  {&__pyx_kp_u_gpuDirectRDMACapable, __pyx_k_gpuDirectRDMACapable, sizeof(__pyx_k_gpuDirectRDMACapable), 0, 1, 0, 0},
  {&__pyx_n_s_gpuDirectRDMACapable_2, __pyx_k_gpuDirectRDMACapable_2, sizeof(__pyx_k_gpuDirectRDMACapable_2), 0, 0, 1, 1},
  {&__pyx_n_s_granularity, __pyx_k_granularity, sizeof(__pyx_k_granularity), 0, 0, 1, 1},
  {&__pyx_n_s_graph, __pyx_k_graph, sizeof(__pyx_k_graph), 0, 0, 1, 1},
  {&__pyx_n_s_graph_length, __pyx_k_graph_length, sizeof(__pyx_k_graph_length), 0, 0, 1, 1},
  {&__pyx_n_s_graph_out, __pyx_k_graph_out, sizeof(__pyx_k_graph_out), 0, 0, 1, 1},
  {&__pyx_n_s_greatestPriority, __pyx_k_greatestPriority, sizeof(__pyx_k_greatestPriority), 0, 0, 1, 1},
  {&__pyx_kp_u_gridDimX, __pyx_k_gridDimX, sizeof(__pyx_k_gridDimX), 0, 1, 0, 0},
  {&__pyx_n_s_gridDimX_2, __pyx_k_gridDimX_2, sizeof(__pyx_k_gridDimX_2), 0, 0, 1, 1},
  {&__pyx_kp_u_gridDimY, __pyx_k_gridDimY, sizeof(__pyx_k_gridDimY), 0, 1, 0, 0},
  {&__pyx_n_s_gridDimY_2, __pyx_k_gridDimY_2, sizeof(__pyx_k_gridDimY_2), 0, 0, 1, 1},
  {&__pyx_kp_u_gridDimZ, __pyx_k_gridDimZ, sizeof(__pyx_k_gridDimZ), 0, 1, 0, 0},
  {&__pyx_n_s_gridDimZ_2, __pyx_k_gridDimZ_2, sizeof(__pyx_k_gridDimZ_2), 0, 0, 1, 1},
  {&__pyx_n_s_grid_height, __pyx_k_grid_height, sizeof(__pyx_k_grid_height), 0, 0, 1, 1},
  {&__pyx_n_s_grid_width, __pyx_k_grid_width, sizeof(__pyx_k_grid_width), 0, 0, 1, 1},
  {&__pyx_kp_u_hArray, __pyx_k_hArray, sizeof(__pyx_k_hArray), 0, 1, 0, 0},
  {&__pyx_n_s_hArray_2, __pyx_k_hArray_2, sizeof(__pyx_k_hArray_2), 0, 0, 1, 1},
  {&__pyx_n_s_hClonedGraph, __pyx_k_hClonedGraph, sizeof(__pyx_k_hClonedGraph), 0, 0, 1, 1},
  {&__pyx_n_s_hEnd, __pyx_k_hEnd, sizeof(__pyx_k_hEnd), 0, 0, 1, 1},
  {&__pyx_n_s_hErrorNode_out, __pyx_k_hErrorNode_out, sizeof(__pyx_k_hErrorNode_out), 0, 0, 1, 1},
  {&__pyx_n_s_hEvent, __pyx_k_hEvent, sizeof(__pyx_k_hEvent), 0, 0, 1, 1},
  {&__pyx_n_s_hGraph, __pyx_k_hGraph, sizeof(__pyx_k_hGraph), 0, 0, 1, 1},
  {&__pyx_n_s_hGraphExec, __pyx_k_hGraphExec, sizeof(__pyx_k_hGraphExec), 0, 0, 1, 1},
  {&__pyx_kp_u_hMipmappedArray, __pyx_k_hMipmappedArray, sizeof(__pyx_k_hMipmappedArray), 0, 1, 0, 0},
  {&__pyx_n_s_hMipmappedArray_2, __pyx_k_hMipmappedArray_2, sizeof(__pyx_k_hMipmappedArray_2), 0, 0, 1, 1},
  {&__pyx_n_s_hNode, __pyx_k_hNode, sizeof(__pyx_k_hNode), 0, 0, 1, 1},
  {&__pyx_n_s_hOriginalNode, __pyx_k_hOriginalNode, sizeof(__pyx_k_hOriginalNode), 0, 0, 1, 1},
  {&__pyx_n_s_hStart, __pyx_k_hStart, sizeof(__pyx_k_hStart), 0, 0, 1, 1},
  {&__pyx_kp_u_hStream, __pyx_k_hStream, sizeof(__pyx_k_hStream), 0, 1, 0, 0},
  {&__pyx_n_s_hStream_2, __pyx_k_hStream_2, sizeof(__pyx_k_hStream_2), 0, 0, 1, 1},
  {&__pyx_n_s_hSurfRef, __pyx_k_hSurfRef, sizeof(__pyx_k_hSurfRef), 0, 0, 1, 1},
  {&__pyx_n_s_hTexRef, __pyx_k_hTexRef, sizeof(__pyx_k_hTexRef), 0, 0, 1, 1},
  {&__pyx_kp_u_handle, __pyx_k_handle, sizeof(__pyx_k_handle), 0, 1, 0, 0},
  {&__pyx_n_s_handleType, __pyx_k_handleType, sizeof(__pyx_k_handleType), 0, 0, 1, 1},
  {&__pyx_kp_u_handleTypes, __pyx_k_handleTypes, sizeof(__pyx_k_handleTypes), 0, 1, 0, 0},
  {&__pyx_n_s_handleTypes_2, __pyx_k_handleTypes_2, sizeof(__pyx_k_handleTypes_2), 0, 0, 1, 1},
  {&__pyx_n_s_handle_2, __pyx_k_handle_2, sizeof(__pyx_k_handle_2), 0, 0, 1, 1},
  {&__pyx_kp_u_handle_3, __pyx_k_handle_3, sizeof(__pyx_k_handle_3), 0, 1, 0, 0},
  {&__pyx_n_s_handle_out, __pyx_k_handle_out, sizeof(__pyx_k_handle_out), 0, 0, 1, 1},
  {&__pyx_kp_u_height, __pyx_k_height, sizeof(__pyx_k_height), 0, 1, 0, 0},
  {&__pyx_n_s_height_2, __pyx_k_height_2, sizeof(__pyx_k_height_2), 0, 0, 1, 1},
  {&__pyx_n_s_hex, __pyx_k_hex, sizeof(__pyx_k_hex), 0, 0, 1, 1},
  {&__pyx_n_s_hfunc, __pyx_k_hfunc, sizeof(__pyx_k_hfunc), 0, 0, 1, 1},
  {&__pyx_kp_u_hitProp, __pyx_k_hitProp, sizeof(__pyx_k_hitProp), 0, 1, 0, 0},
  {&__pyx_n_s_hitProp_2, __pyx_k_hitProp_2, sizeof(__pyx_k_hitProp_2), 0, 0, 1, 1},
  {&__pyx_kp_u_hitRatio, __pyx_k_hitRatio, sizeof(__pyx_k_hitRatio), 0, 1, 0, 0},
  {&__pyx_n_s_hitRatio_2, __pyx_k_hitRatio_2, sizeof(__pyx_k_hitRatio_2), 0, 0, 1, 1},
  {&__pyx_n_s_hmod, __pyx_k_hmod, sizeof(__pyx_k_hmod), 0, 0, 1, 1},
  {&__pyx_kp_u_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 1, 0, 0},
  {&__pyx_n_s_id_2, __pyx_k_id_2, sizeof(__pyx_k_id_2), 0, 0, 1, 1},
  {&__pyx_n_s_id_out, __pyx_k_id_out, sizeof(__pyx_k_id_out), 0, 0, 1, 1},
  {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1},
  {&__pyx_n_s_image, __pyx_k_image, sizeof(__pyx_k_image), 0, 0, 1, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_init_value, __pyx_k_init_value, sizeof(__pyx_k_init_value), 0, 0, 1, 1},
  {&__pyx_n_s_initialRefcount, __pyx_k_initialRefcount, sizeof(__pyx_k_initialRefcount), 0, 0, 1, 1},
  {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1},
  {&__pyx_n_s_is_getter, __pyx_k_is_getter, sizeof(__pyx_k_is_getter), 0, 0, 1, 1},
  {&__pyx_kp_u_kernelParams, __pyx_k_kernelParams, sizeof(__pyx_k_kernelParams), 0, 1, 0, 0},
  {&__pyx_n_s_kernelParams_2, __pyx_k_kernelParams_2, sizeof(__pyx_k_kernelParams_2), 0, 0, 1, 1},
  {&__pyx_kp_u_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 1, 0, 0},
  {&__pyx_n_s_key_2, __pyx_k_key_2, sizeof(__pyx_k_key_2), 0, 0, 1, 1},
  {&__pyx_kp_u_keyedMutex, __pyx_k_keyedMutex, sizeof(__pyx_k_keyedMutex), 0, 1, 0, 0},
  {&__pyx_n_s_keyedMutex_2, __pyx_k_keyedMutex_2, sizeof(__pyx_k_keyedMutex_2), 0, 0, 1, 1},
  {&__pyx_kp_u_lastLayer, __pyx_k_lastLayer, sizeof(__pyx_k_lastLayer), 0, 1, 0, 0},
  {&__pyx_n_s_lastLayer_2, __pyx_k_lastLayer_2, sizeof(__pyx_k_lastLayer_2), 0, 0, 1, 1},
  {&__pyx_kp_u_lastMipmapLevel, __pyx_k_lastMipmapLevel, sizeof(__pyx_k_lastMipmapLevel), 0, 1, 0, 0},
  {&__pyx_n_s_lastMipmapLevel_2, __pyx_k_lastMipmapLevel_2, sizeof(__pyx_k_lastMipmapLevel_2), 0, 0, 1, 1},
  {&__pyx_n_s_launchParamsList, __pyx_k_launchParamsList, sizeof(__pyx_k_launchParamsList), 0, 0, 1, 1},
  {&__pyx_kp_u_layer, __pyx_k_layer, sizeof(__pyx_k_layer), 0, 1, 0, 0},
  {&__pyx_n_s_layer_2, __pyx_k_layer_2, sizeof(__pyx_k_layer_2), 0, 0, 1, 1},
  {&__pyx_n_s_leastPriority, __pyx_k_leastPriority, sizeof(__pyx_k_leastPriority), 0, 0, 1, 1},
  {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1},
  {&__pyx_kp_u_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 1, 0, 0},
  {&__pyx_n_s_level_2, __pyx_k_level_2, sizeof(__pyx_k_level_2), 0, 0, 1, 1},
  {&__pyx_n_s_limit, __pyx_k_limit, sizeof(__pyx_k_limit), 0, 0, 1, 1},
  {&__pyx_kp_u_linear, __pyx_k_linear, sizeof(__pyx_k_linear), 0, 1, 0, 0},
  {&__pyx_n_s_linear_2, __pyx_k_linear_2, sizeof(__pyx_k_linear_2), 0, 0, 1, 1},
  {&__pyx_kp_u_location, __pyx_k_location, sizeof(__pyx_k_location), 0, 1, 0, 0},
  {&__pyx_n_s_location_2, __pyx_k_location_2, sizeof(__pyx_k_location_2), 0, 0, 1, 1},
  {&__pyx_n_s_logBuffer, __pyx_k_logBuffer, sizeof(__pyx_k_logBuffer), 0, 0, 1, 1},
  {&__pyx_n_s_luid, __pyx_k_luid, sizeof(__pyx_k_luid), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_major, __pyx_k_major, sizeof(__pyx_k_major), 0, 0, 1, 1},
  {&__pyx_n_s_map, __pyx_k_map, sizeof(__pyx_k_map), 0, 0, 1, 1},
  {&__pyx_n_s_mapInfoList, __pyx_k_mapInfoList, sizeof(__pyx_k_mapInfoList), 0, 0, 1, 1},
  {&__pyx_n_s_maxAniso, __pyx_k_maxAniso, sizeof(__pyx_k_maxAniso), 0, 0, 1, 1},
  {&__pyx_kp_u_maxAnisotropy, __pyx_k_maxAnisotropy, sizeof(__pyx_k_maxAnisotropy), 0, 1, 0, 0},
  {&__pyx_n_s_maxAnisotropy_2, __pyx_k_maxAnisotropy_2, sizeof(__pyx_k_maxAnisotropy_2), 0, 0, 1, 1},
  {&__pyx_kp_u_maxGridSize, __pyx_k_maxGridSize, sizeof(__pyx_k_maxGridSize), 0, 1, 0, 0},
  {&__pyx_n_s_maxGridSize_2, __pyx_k_maxGridSize_2, sizeof(__pyx_k_maxGridSize_2), 0, 0, 1, 1},
  {&__pyx_kp_u_maxMipmapLevelClamp, __pyx_k_maxMipmapLevelClamp, sizeof(__pyx_k_maxMipmapLevelClamp), 0, 1, 0, 0},
  {&__pyx_n_s_maxMipmapLevelClamp_2, __pyx_k_maxMipmapLevelClamp_2, sizeof(__pyx_k_maxMipmapLevelClamp_2), 0, 0, 1, 1},
  {&__pyx_kp_u_maxThreadsDim, __pyx_k_maxThreadsDim, sizeof(__pyx_k_maxThreadsDim), 0, 1, 0, 0},
  {&__pyx_n_s_maxThreadsDim_2, __pyx_k_maxThreadsDim_2, sizeof(__pyx_k_maxThreadsDim_2), 0, 0, 1, 1},
  {&__pyx_kp_u_maxThreadsPerBlock, __pyx_k_maxThreadsPerBlock, sizeof(__pyx_k_maxThreadsPerBlock), 0, 1, 0, 0},
  {&__pyx_n_s_maxThreadsPerBlock_2, __pyx_k_maxThreadsPerBlock_2, sizeof(__pyx_k_maxThreadsPerBlock_2), 0, 0, 1, 1},
  {&__pyx_n_s_maxWidthInElements, __pyx_k_maxWidthInElements, sizeof(__pyx_k_maxWidthInElements), 0, 0, 1, 1},
  {&__pyx_kp_u_memHandle, __pyx_k_memHandle, sizeof(__pyx_k_memHandle), 0, 1, 0, 0},
  {&__pyx_n_s_memHandleDesc, __pyx_k_memHandleDesc, sizeof(__pyx_k_memHandleDesc), 0, 0, 1, 1},
  {&__pyx_kp_u_memHandleType, __pyx_k_memHandleType, sizeof(__pyx_k_memHandleType), 0, 1, 0, 0},
  {&__pyx_n_s_memHandleType_2, __pyx_k_memHandleType_2, sizeof(__pyx_k_memHandleType_2), 0, 0, 1, 1},
  {&__pyx_n_s_memHandle_2, __pyx_k_memHandle_2, sizeof(__pyx_k_memHandle_2), 0, 0, 1, 1},
  {&__pyx_kp_u_memHandle_3, __pyx_k_memHandle_3, sizeof(__pyx_k_memHandle_3), 0, 1, 0, 0},
  {&__pyx_kp_u_memOperationType, __pyx_k_memOperationType, sizeof(__pyx_k_memOperationType), 0, 1, 0, 0},
  {&__pyx_n_s_memOperationType_2, __pyx_k_memOperationType_2, sizeof(__pyx_k_memOperationType_2), 0, 0, 1, 1},
  {&__pyx_kp_u_memPitch, __pyx_k_memPitch, sizeof(__pyx_k_memPitch), 0, 1, 0, 0},
  {&__pyx_n_s_memPitch_2, __pyx_k_memPitch_2, sizeof(__pyx_k_memPitch_2), 0, 0, 1, 1},
  {&__pyx_n_s_memPool, __pyx_k_memPool, sizeof(__pyx_k_memPool), 0, 0, 1, 1},
  {&__pyx_n_s_memsetParams, __pyx_k_memsetParams, sizeof(__pyx_k_memsetParams), 0, 0, 1, 1},
  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
  {&__pyx_n_s_minBytesToKeep, __pyx_k_minBytesToKeep, sizeof(__pyx_k_minBytesToKeep), 0, 0, 1, 1},
  {&__pyx_n_s_minGridSize, __pyx_k_minGridSize, sizeof(__pyx_k_minGridSize), 0, 0, 1, 1},
  {&__pyx_kp_u_minMipmapLevelClamp, __pyx_k_minMipmapLevelClamp, sizeof(__pyx_k_minMipmapLevelClamp), 0, 1, 0, 0},
  {&__pyx_n_s_minMipmapLevelClamp_2, __pyx_k_minMipmapLevelClamp_2, sizeof(__pyx_k_minMipmapLevelClamp_2), 0, 0, 1, 1},
  {&__pyx_n_s_minor, __pyx_k_minor, sizeof(__pyx_k_minor), 0, 0, 1, 1},
  {&__pyx_n_s_mipLevel, __pyx_k_mipLevel, sizeof(__pyx_k_mipLevel), 0, 0, 1, 1},
  {&__pyx_kp_u_mipmap, __pyx_k_mipmap, sizeof(__pyx_k_mipmap), 0, 1, 0, 0},
  {&__pyx_n_s_mipmapDesc, __pyx_k_mipmapDesc, sizeof(__pyx_k_mipmapDesc), 0, 0, 1, 1},
  {&__pyx_kp_u_mipmapFilterMode, __pyx_k_mipmapFilterMode, sizeof(__pyx_k_mipmapFilterMode), 0, 1, 0, 0},
  {&__pyx_n_s_mipmapFilterMode_2, __pyx_k_mipmapFilterMode_2, sizeof(__pyx_k_mipmapFilterMode_2), 0, 0, 1, 1},
  {&__pyx_kp_u_mipmapLevelBias, __pyx_k_mipmapLevelBias, sizeof(__pyx_k_mipmapLevelBias), 0, 1, 0, 0},
  {&__pyx_n_s_mipmapLevelBias_2, __pyx_k_mipmapLevelBias_2, sizeof(__pyx_k_mipmapLevelBias_2), 0, 0, 1, 1},
  {&__pyx_n_s_mipmap_2, __pyx_k_mipmap_2, sizeof(__pyx_k_mipmap_2), 0, 0, 1, 1},
  {&__pyx_kp_u_mipmap_3, __pyx_k_mipmap_3, sizeof(__pyx_k_mipmap_3), 0, 1, 0, 0},
  {&__pyx_kp_u_miptail, __pyx_k_miptail, sizeof(__pyx_k_miptail), 0, 1, 0, 0},
  {&__pyx_kp_u_miptailFirstLevel, __pyx_k_miptailFirstLevel, sizeof(__pyx_k_miptailFirstLevel), 0, 1, 0, 0},
  {&__pyx_n_s_miptailFirstLevel_2, __pyx_k_miptailFirstLevel_2, sizeof(__pyx_k_miptailFirstLevel_2), 0, 0, 1, 1},
  {&__pyx_kp_u_miptailSize, __pyx_k_miptailSize, sizeof(__pyx_k_miptailSize), 0, 1, 0, 0},
  {&__pyx_n_s_miptailSize_2, __pyx_k_miptailSize_2, sizeof(__pyx_k_miptailSize_2), 0, 0, 1, 1},
  {&__pyx_n_s_miptail_2, __pyx_k_miptail_2, sizeof(__pyx_k_miptail_2), 0, 0, 1, 1},
  {&__pyx_kp_u_missProp, __pyx_k_missProp, sizeof(__pyx_k_missProp), 0, 1, 0, 0},
  {&__pyx_n_s_missProp_2, __pyx_k_missProp_2, sizeof(__pyx_k_missProp_2), 0, 0, 1, 1},
  {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
  {&__pyx_n_s_module_2, __pyx_k_module_2, sizeof(__pyx_k_module_2), 0, 0, 1, 1},
  {&__pyx_kp_u_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 1, 0, 0},
  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
  {&__pyx_n_s_name_3, __pyx_k_name_3, sizeof(__pyx_k_name_3), 0, 0, 1, 1},
  {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
  {&__pyx_n_s_nodeParams, __pyx_k_nodeParams, sizeof(__pyx_k_nodeParams), 0, 0, 1, 1},
  {&__pyx_n_s_numAttributes, __pyx_k_numAttributes, sizeof(__pyx_k_numAttributes), 0, 0, 1, 1},
  {&__pyx_n_s_numBlocks, __pyx_k_numBlocks, sizeof(__pyx_k_numBlocks), 0, 0, 1, 1},
  {&__pyx_kp_u_numChannels, __pyx_k_numChannels, sizeof(__pyx_k_numChannels), 0, 1, 0, 0},
  {&__pyx_n_s_numChannels_2, __pyx_k_numChannels_2, sizeof(__pyx_k_numChannels_2), 0, 0, 1, 1},
  {&__pyx_n_s_numDependencies, __pyx_k_numDependencies, sizeof(__pyx_k_numDependencies), 0, 0, 1, 1},
  {&__pyx_n_s_numDependencies_out, __pyx_k_numDependencies_out, sizeof(__pyx_k_numDependencies_out), 0, 0, 1, 1},
  {&__pyx_n_s_numDependentNodes, __pyx_k_numDependentNodes, sizeof(__pyx_k_numDependentNodes), 0, 0, 1, 1},
  {&__pyx_n_s_numDevices, __pyx_k_numDevices, sizeof(__pyx_k_numDevices), 0, 0, 1, 1},
  {&__pyx_n_s_numEdges, __pyx_k_numEdges, sizeof(__pyx_k_numEdges), 0, 0, 1, 1},
  {&__pyx_kp_u_numExtSems, __pyx_k_numExtSems, sizeof(__pyx_k_numExtSems), 0, 1, 0, 0},
  {&__pyx_n_s_numExtSems_2, __pyx_k_numExtSems_2, sizeof(__pyx_k_numExtSems_2), 0, 0, 1, 1},
  {&__pyx_kp_u_numLevels, __pyx_k_numLevels, sizeof(__pyx_k_numLevels), 0, 1, 0, 0},
  {&__pyx_n_s_numLevels_2, __pyx_k_numLevels_2, sizeof(__pyx_k_numLevels_2), 0, 0, 1, 1},
  {&__pyx_n_s_numMipmapLevels, __pyx_k_numMipmapLevels, sizeof(__pyx_k_numMipmapLevels), 0, 0, 1, 1},
  {&__pyx_n_s_numNodes, __pyx_k_numNodes, sizeof(__pyx_k_numNodes), 0, 0, 1, 1},
  {&__pyx_n_s_numOptions, __pyx_k_numOptions, sizeof(__pyx_k_numOptions), 0, 0, 1, 1},
  {&__pyx_n_s_numParams, __pyx_k_numParams, sizeof(__pyx_k_numParams), 0, 0, 1, 1},
  {&__pyx_n_s_numRootNodes, __pyx_k_numRootNodes, sizeof(__pyx_k_numRootNodes), 0, 0, 1, 1},
  {&__pyx_kp_u_num_bytes, __pyx_k_num_bytes, sizeof(__pyx_k_num_bytes), 0, 1, 0, 0},
  {&__pyx_n_s_num_bytes_2, __pyx_k_num_bytes_2, sizeof(__pyx_k_num_bytes_2), 0, 0, 1, 1},
  {&__pyx_n_s_numbytes, __pyx_k_numbytes, sizeof(__pyx_k_numbytes), 0, 0, 1, 1},
  {&__pyx_kp_u_nvSciBufObject, __pyx_k_nvSciBufObject, sizeof(__pyx_k_nvSciBufObject), 0, 1, 0, 0},
  {&__pyx_n_s_nvSciBufObject_2, __pyx_k_nvSciBufObject_2, sizeof(__pyx_k_nvSciBufObject_2), 0, 0, 1, 1},
  {&__pyx_kp_u_nvSciSync, __pyx_k_nvSciSync, sizeof(__pyx_k_nvSciSync), 0, 1, 0, 0},
  {&__pyx_n_s_nvSciSyncAttrList, __pyx_k_nvSciSyncAttrList, sizeof(__pyx_k_nvSciSyncAttrList), 0, 0, 1, 1},
  {&__pyx_kp_u_nvSciSyncObj, __pyx_k_nvSciSyncObj, sizeof(__pyx_k_nvSciSyncObj), 0, 1, 0, 0},
  {&__pyx_n_s_nvSciSyncObj_2, __pyx_k_nvSciSyncObj_2, sizeof(__pyx_k_nvSciSyncObj_2), 0, 0, 1, 1},
  {&__pyx_n_s_nvSciSync_2, __pyx_k_nvSciSync_2, sizeof(__pyx_k_nvSciSync_2), 0, 0, 1, 1},
  {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
  {&__pyx_n_s_objType, __pyx_k_objType, sizeof(__pyx_k_objType), 0, 0, 1, 1},
  {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
  {&__pyx_n_s_object_out, __pyx_k_object_out, sizeof(__pyx_k_object_out), 0, 0, 1, 1},
  {&__pyx_kp_u_offset, __pyx_k_offset, sizeof(__pyx_k_offset), 0, 1, 0, 0},
  {&__pyx_kp_u_offsetX, __pyx_k_offsetX, sizeof(__pyx_k_offsetX), 0, 1, 0, 0},
  {&__pyx_n_s_offsetX_2, __pyx_k_offsetX_2, sizeof(__pyx_k_offsetX_2), 0, 0, 1, 1},
  {&__pyx_kp_u_offsetY, __pyx_k_offsetY, sizeof(__pyx_k_offsetY), 0, 1, 0, 0},
  {&__pyx_n_s_offsetY_2, __pyx_k_offsetY_2, sizeof(__pyx_k_offsetY_2), 0, 0, 1, 1},
  {&__pyx_kp_u_offsetZ, __pyx_k_offsetZ, sizeof(__pyx_k_offsetZ), 0, 1, 0, 0},
  {&__pyx_n_s_offsetZ_2, __pyx_k_offsetZ_2, sizeof(__pyx_k_offsetZ_2), 0, 0, 1, 1},
  {&__pyx_n_s_offset_2, __pyx_k_offset_2, sizeof(__pyx_k_offset_2), 0, 0, 1, 1},
  {&__pyx_kp_u_operation, __pyx_k_operation, sizeof(__pyx_k_operation), 0, 1, 0, 0},
  {&__pyx_n_s_operation_2, __pyx_k_operation_2, sizeof(__pyx_k_operation_2), 0, 0, 1, 1},
  {&__pyx_n_s_option, __pyx_k_option, sizeof(__pyx_k_option), 0, 0, 1, 1},
  {&__pyx_n_s_optionValues, __pyx_k_optionValues, sizeof(__pyx_k_optionValues), 0, 0, 1, 1},
  {&__pyx_n_s_options, __pyx_k_options, sizeof(__pyx_k_options), 0, 0, 1, 1},
  {&__pyx_n_s_ordinal, __pyx_k_ordinal, sizeof(__pyx_k_ordinal), 0, 0, 1, 1},
  {&__pyx_n_s_originalGraph, __pyx_k_originalGraph, sizeof(__pyx_k_originalGraph), 0, 0, 1, 1},
  {&__pyx_n_s_osHandle, __pyx_k_osHandle, sizeof(__pyx_k_osHandle), 0, 0, 1, 1},
  {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1},
  {&__pyx_kp_u_p2pToken, __pyx_k_p2pToken, sizeof(__pyx_k_p2pToken), 0, 1, 0, 0},
  {&__pyx_n_s_p2pToken_2, __pyx_k_p2pToken_2, sizeof(__pyx_k_p2pToken_2), 0, 0, 1, 1},
  {&__pyx_n_s_pAllocateArray, __pyx_k_pAllocateArray, sizeof(__pyx_k_pAllocateArray), 0, 0, 1, 1},
  {&__pyx_n_s_pArray, __pyx_k_pArray, sizeof(__pyx_k_pArray), 0, 0, 1, 1},
  {&__pyx_n_s_pArrayDescriptor, __pyx_k_pArrayDescriptor, sizeof(__pyx_k_pArrayDescriptor), 0, 0, 1, 1},
  {&__pyx_n_s_pBorderColor, __pyx_k_pBorderColor, sizeof(__pyx_k_pBorderColor), 0, 0, 1, 1},
  {&__pyx_n_s_pConfig, __pyx_k_pConfig, sizeof(__pyx_k_pConfig), 0, 0, 1, 1},
  {&__pyx_n_s_pCopy, __pyx_k_pCopy, sizeof(__pyx_k_pCopy), 0, 0, 1, 1},
  {&__pyx_n_s_pDevPtr, __pyx_k_pDevPtr, sizeof(__pyx_k_pDevPtr), 0, 0, 1, 1},
  {&__pyx_n_s_pExecAffinity, __pyx_k_pExecAffinity, sizeof(__pyx_k_pExecAffinity), 0, 0, 1, 1},
  {&__pyx_n_s_pExportTableId, __pyx_k_pExportTableId, sizeof(__pyx_k_pExportTableId), 0, 0, 1, 1},
  {&__pyx_n_s_pFlags, __pyx_k_pFlags, sizeof(__pyx_k_pFlags), 0, 0, 1, 1},
  {&__pyx_n_s_pFormat, __pyx_k_pFormat, sizeof(__pyx_k_pFormat), 0, 0, 1, 1},
  {&__pyx_n_s_pHandle, __pyx_k_pHandle, sizeof(__pyx_k_pHandle), 0, 0, 1, 1},
  {&__pyx_n_s_pLevelArray, __pyx_k_pLevelArray, sizeof(__pyx_k_pLevelArray), 0, 0, 1, 1},
  {&__pyx_n_s_pMilliseconds, __pyx_k_pMilliseconds, sizeof(__pyx_k_pMilliseconds), 0, 0, 1, 1},
  {&__pyx_n_s_pMipmappedArray, __pyx_k_pMipmappedArray, sizeof(__pyx_k_pMipmappedArray), 0, 0, 1, 1},
  {&__pyx_n_s_pMipmappedArrayDesc, __pyx_k_pMipmappedArrayDesc, sizeof(__pyx_k_pMipmappedArrayDesc), 0, 0, 1, 1},
  {&__pyx_n_s_pNumChannels, __pyx_k_pNumChannels, sizeof(__pyx_k_pNumChannels), 0, 0, 1, 1},
  {&__pyx_n_s_pPitch, __pyx_k_pPitch, sizeof(__pyx_k_pPitch), 0, 0, 1, 1},
  {&__pyx_n_s_pPlaneArray, __pyx_k_pPlaneArray, sizeof(__pyx_k_pPlaneArray), 0, 0, 1, 1},
  {&__pyx_n_s_pResDesc, __pyx_k_pResDesc, sizeof(__pyx_k_pResDesc), 0, 0, 1, 1},
  {&__pyx_n_s_pResViewDesc, __pyx_k_pResViewDesc, sizeof(__pyx_k_pResViewDesc), 0, 0, 1, 1},
  {&__pyx_n_s_pSize, __pyx_k_pSize, sizeof(__pyx_k_pSize), 0, 0, 1, 1},
  {&__pyx_n_s_pStr, __pyx_k_pStr, sizeof(__pyx_k_pStr), 0, 0, 1, 1},
  {&__pyx_n_s_pSurfObject, __pyx_k_pSurfObject, sizeof(__pyx_k_pSurfObject), 0, 0, 1, 1},
  {&__pyx_n_s_pSurfRef, __pyx_k_pSurfRef, sizeof(__pyx_k_pSurfRef), 0, 0, 1, 1},
  {&__pyx_n_s_pTexDesc, __pyx_k_pTexDesc, sizeof(__pyx_k_pTexDesc), 0, 0, 1, 1},
  {&__pyx_n_s_pTexObject, __pyx_k_pTexObject, sizeof(__pyx_k_pTexObject), 0, 0, 1, 1},
  {&__pyx_n_s_pTexRef, __pyx_k_pTexRef, sizeof(__pyx_k_pTexRef), 0, 0, 1, 1},
  {&__pyx_kp_u_pad, __pyx_k_pad, sizeof(__pyx_k_pad), 0, 1, 0, 0},
  {&__pyx_n_s_pad_2, __pyx_k_pad_2, sizeof(__pyx_k_pad_2), 0, 0, 1, 1},
  {&__pyx_n_s_pam, __pyx_k_pam, sizeof(__pyx_k_pam), 0, 0, 1, 1},
  {&__pyx_kp_u_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 1, 0, 0},
  {&__pyx_n_s_paramArray, __pyx_k_paramArray, sizeof(__pyx_k_paramArray), 0, 0, 1, 1},
  {&__pyx_n_s_param_2, __pyx_k_param_2, sizeof(__pyx_k_param_2), 0, 0, 1, 1},
  {&__pyx_kp_u_params, __pyx_k_params, sizeof(__pyx_k_params), 0, 1, 0, 0},
  {&__pyx_kp_u_paramsArray, __pyx_k_paramsArray, sizeof(__pyx_k_paramsArray), 0, 1, 0, 0},
  {&__pyx_n_s_paramsArray_2, __pyx_k_paramsArray_2, sizeof(__pyx_k_paramsArray_2), 0, 0, 1, 1},
  {&__pyx_n_s_params_2, __pyx_k_params_2, sizeof(__pyx_k_params_2), 0, 0, 1, 1},
  {&__pyx_n_s_params_out, __pyx_k_params_out, sizeof(__pyx_k_params_out), 0, 0, 1, 1},
  {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
  {&__pyx_n_s_pbase, __pyx_k_pbase, sizeof(__pyx_k_pbase), 0, 0, 1, 1},
  {&__pyx_n_s_pbias, __pyx_k_pbias, sizeof(__pyx_k_pbias), 0, 0, 1, 1},
  {&__pyx_n_s_pciBusId, __pyx_k_pciBusId, sizeof(__pyx_k_pciBusId), 0, 0, 1, 1},
  {&__pyx_n_s_pconfig, __pyx_k_pconfig, sizeof(__pyx_k_pconfig), 0, 0, 1, 1},
  {&__pyx_n_s_pctx, __pyx_k_pctx, sizeof(__pyx_k_pctx), 0, 0, 1, 1},
  {&__pyx_n_s_pdptr, __pyx_k_pdptr, sizeof(__pyx_k_pdptr), 0, 0, 1, 1},
  {&__pyx_n_s_peerContext, __pyx_k_peerContext, sizeof(__pyx_k_peerContext), 0, 0, 1, 1},
  {&__pyx_n_s_peerDev, __pyx_k_peerDev, sizeof(__pyx_k_peerDev), 0, 0, 1, 1},
  {&__pyx_n_s_pfm, __pyx_k_pfm, sizeof(__pyx_k_pfm), 0, 0, 1, 1},
  {&__pyx_n_s_pfn, __pyx_k_pfn, sizeof(__pyx_k_pfn), 0, 0, 1, 1},
  {&__pyx_n_s_pformat, __pyx_k_pformat, sizeof(__pyx_k_pformat), 0, 0, 1, 1},
  {&__pyx_n_s_phArray, __pyx_k_phArray, sizeof(__pyx_k_phArray), 0, 0, 1, 1},
  {&__pyx_n_s_phErrorNode, __pyx_k_phErrorNode, sizeof(__pyx_k_phErrorNode), 0, 0, 1, 1},
  {&__pyx_n_s_phEvent, __pyx_k_phEvent, sizeof(__pyx_k_phEvent), 0, 0, 1, 1},
  {&__pyx_n_s_phGraph, __pyx_k_phGraph, sizeof(__pyx_k_phGraph), 0, 0, 1, 1},
  {&__pyx_n_s_phGraphClone, __pyx_k_phGraphClone, sizeof(__pyx_k_phGraphClone), 0, 0, 1, 1},
  {&__pyx_n_s_phGraphExec, __pyx_k_phGraphExec, sizeof(__pyx_k_phGraphExec), 0, 0, 1, 1},
  {&__pyx_n_s_phGraphNode, __pyx_k_phGraphNode, sizeof(__pyx_k_phGraphNode), 0, 0, 1, 1},
  {&__pyx_n_s_phMipmappedArray, __pyx_k_phMipmappedArray, sizeof(__pyx_k_phMipmappedArray), 0, 0, 1, 1},
  {&__pyx_n_s_phNode, __pyx_k_phNode, sizeof(__pyx_k_phNode), 0, 0, 1, 1},
  {&__pyx_n_s_phStream, __pyx_k_phStream, sizeof(__pyx_k_phStream), 0, 0, 1, 1},
  {&__pyx_n_s_pi, __pyx_k_pi, sizeof(__pyx_k_pi), 0, 0, 1, 1},
  {&__pyx_kp_u_pitch, __pyx_k_pitch, sizeof(__pyx_k_pitch), 0, 1, 0, 0},
  {&__pyx_kp_u_pitch2D, __pyx_k_pitch2D, sizeof(__pyx_k_pitch2D), 0, 1, 0, 0},
  {&__pyx_n_s_pitch2D_2, __pyx_k_pitch2D_2, sizeof(__pyx_k_pitch2D_2), 0, 0, 1, 1},
  {&__pyx_kp_u_pitchInBytes, __pyx_k_pitchInBytes, sizeof(__pyx_k_pitchInBytes), 0, 1, 0, 0},
  {&__pyx_n_s_pitchInBytes_2, __pyx_k_pitchInBytes_2, sizeof(__pyx_k_pitchInBytes_2), 0, 0, 1, 1},
  {&__pyx_n_s_pitch_2, __pyx_k_pitch_2, sizeof(__pyx_k_pitch_2), 0, 0, 1, 1},
  {&__pyx_n_s_planeIdx, __pyx_k_planeIdx, sizeof(__pyx_k_planeIdx), 0, 0, 1, 1},
  {&__pyx_n_s_pmaxAniso, __pyx_k_pmaxAniso, sizeof(__pyx_k_pmaxAniso), 0, 0, 1, 1},
  {&__pyx_n_s_pmaxMipmapLevelClamp, __pyx_k_pmaxMipmapLevelClamp, sizeof(__pyx_k_pmaxMipmapLevelClamp), 0, 0, 1, 1},
  {&__pyx_n_s_pminMipmapLevelClamp, __pyx_k_pminMipmapLevelClamp, sizeof(__pyx_k_pminMipmapLevelClamp), 0, 0, 1, 1},
  {&__pyx_n_s_pool, __pyx_k_pool, sizeof(__pyx_k_pool), 0, 0, 1, 1},
  {&__pyx_kp_u_poolProps, __pyx_k_poolProps, sizeof(__pyx_k_poolProps), 0, 1, 0, 0},
  {&__pyx_n_s_poolProps_2, __pyx_k_poolProps_2, sizeof(__pyx_k_poolProps_2), 0, 0, 1, 1},
  {&__pyx_n_s_pool_out, __pyx_k_pool_out, sizeof(__pyx_k_pool_out), 0, 0, 1, 1},
  {&__pyx_n_s_pp, __pyx_k_pp, sizeof(__pyx_k_pp), 0, 0, 1, 1},
  {&__pyx_n_s_ppExportTable, __pyx_k_ppExportTable, sizeof(__pyx_k_ppExportTable), 0, 0, 1, 1},
  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
  {&__pyx_n_s_priority, __pyx_k_priority, sizeof(__pyx_k_priority), 0, 0, 1, 1},
  {&__pyx_n_s_prop, __pyx_k_prop, sizeof(__pyx_k_prop), 0, 0, 1, 1},
  {&__pyx_n_s_psize, __pyx_k_psize, sizeof(__pyx_k_psize), 0, 0, 1, 1},
  {&__pyx_n_s_ptr, __pyx_k_ptr, sizeof(__pyx_k_ptr), 0, 0, 1, 1},
  {&__pyx_n_s_ptr_2, __pyx_k_ptr_2, sizeof(__pyx_k_ptr_2), 0, 0, 1, 1},
  {&__pyx_n_s_ptr_out, __pyx_k_ptr_out, sizeof(__pyx_k_ptr_out), 0, 0, 1, 1},
  {&__pyx_n_s_pvalue, __pyx_k_pvalue, sizeof(__pyx_k_pvalue), 0, 0, 1, 1},
  {&__pyx_n_s_pyObj, __pyx_k_pyObj, sizeof(__pyx_k_pyObj), 0, 0, 1, 1},
  {&__pyx_n_s_pyattributes, __pyx_k_pyattributes, sizeof(__pyx_k_pyattributes), 0, 0, 1, 1},
  {&__pyx_n_s_pydataSizes, __pyx_k_pydataSizes, sizeof(__pyx_k_pydataSizes), 0, 0, 1, 1},
  {&__pyx_n_s_pydependencies, __pyx_k_pydependencies, sizeof(__pyx_k_pydependencies), 0, 0, 1, 1},
  {&__pyx_n_s_pydependencies_out, __pyx_k_pydependencies_out, sizeof(__pyx_k_pydependencies_out), 0, 0, 1, 1},
  {&__pyx_n_s_pydependentNodes, __pyx_k_pydependentNodes, sizeof(__pyx_k_pydependentNodes), 0, 0, 1, 1},
  {&__pyx_n_s_pyfrom, __pyx_k_pyfrom, sizeof(__pyx_k_pyfrom), 0, 0, 1, 1},
  {&__pyx_n_s_pylist, __pyx_k_pylist, sizeof(__pyx_k_pylist), 0, 0, 1, 1},
  {&__pyx_n_s_pynodes, __pyx_k_pynodes, sizeof(__pyx_k_pynodes), 0, 0, 1, 1},
  {&__pyx_n_s_pyoptionValues, __pyx_k_pyoptionValues, sizeof(__pyx_k_pyoptionValues), 0, 0, 1, 1},
  {&__pyx_n_s_pyoptions, __pyx_k_pyoptions, sizeof(__pyx_k_pyoptions), 0, 0, 1, 1},
  {&__pyx_n_s_pyrootNodes, __pyx_k_pyrootNodes, sizeof(__pyx_k_pyrootNodes), 0, 0, 1, 1},
  {&__pyx_n_s_pyto, __pyx_k_pyto, sizeof(__pyx_k_pyto), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
  {&__pyx_kp_u_regsPerBlock, __pyx_k_regsPerBlock, sizeof(__pyx_k_regsPerBlock), 0, 1, 0, 0},
  {&__pyx_n_s_regsPerBlock_2, __pyx_k_regsPerBlock_2, sizeof(__pyx_k_regsPerBlock_2), 0, 0, 1, 1},
  {&__pyx_kp_u_requestedHandleTypes, __pyx_k_requestedHandleTypes, sizeof(__pyx_k_requestedHandleTypes), 0, 1, 0, 0},
  {&__pyx_n_s_requestedHandleTypes_2, __pyx_k_requestedHandleTypes_2, sizeof(__pyx_k_requestedHandleTypes_2), 0, 0, 1, 1},
  {&__pyx_kp_u_res, __pyx_k_res, sizeof(__pyx_k_res), 0, 1, 0, 0},
  {&__pyx_kp_u_resType, __pyx_k_resType, sizeof(__pyx_k_resType), 0, 1, 0, 0},
  {&__pyx_n_s_resType_2, __pyx_k_resType_2, sizeof(__pyx_k_resType_2), 0, 0, 1, 1},
  {&__pyx_n_s_res_2, __pyx_k_res_2, sizeof(__pyx_k_res_2), 0, 0, 1, 1},
  {&__pyx_kp_u_reserved, __pyx_k_reserved, sizeof(__pyx_k_reserved), 0, 1, 0, 0},
  {&__pyx_kp_u_reserved0, __pyx_k_reserved0, sizeof(__pyx_k_reserved0), 0, 1, 0, 0},
  {&__pyx_n_s_reserved0_2, __pyx_k_reserved0_2, sizeof(__pyx_k_reserved0_2), 0, 0, 1, 1},
  {&__pyx_kp_u_reserved1, __pyx_k_reserved1, sizeof(__pyx_k_reserved1), 0, 1, 0, 0},
  {&__pyx_n_s_reserved1_2, __pyx_k_reserved1_2, sizeof(__pyx_k_reserved1_2), 0, 0, 1, 1},
  {&__pyx_n_s_reserved_2, __pyx_k_reserved_2, sizeof(__pyx_k_reserved_2), 0, 0, 1, 1},
  {&__pyx_kp_u_reserved_3, __pyx_k_reserved_3, sizeof(__pyx_k_reserved_3), 0, 1, 0, 0},
  {&__pyx_kp_u_reserved_length_must_be_4_is, __pyx_k_reserved_length_must_be_4_is, sizeof(__pyx_k_reserved_length_must_be_4_is), 0, 1, 0, 0},
  {&__pyx_kp_u_reserved_length_must_be_64_is, __pyx_k_reserved_length_must_be_64_is, sizeof(__pyx_k_reserved_length_must_be_64_is), 0, 1, 0, 0},
  {&__pyx_kp_u_resource, __pyx_k_resource, sizeof(__pyx_k_resource), 0, 1, 0, 0},
  {&__pyx_kp_u_resourceType, __pyx_k_resourceType, sizeof(__pyx_k_resourceType), 0, 1, 0, 0},
  {&__pyx_n_s_resourceType_2, __pyx_k_resourceType_2, sizeof(__pyx_k_resourceType_2), 0, 0, 1, 1},
  {&__pyx_n_s_resource_2, __pyx_k_resource_2, sizeof(__pyx_k_resource_2), 0, 0, 1, 1},
  {&__pyx_n_s_resources, __pyx_k_resources, sizeof(__pyx_k_resources), 0, 0, 1, 1},
  {&__pyx_n_s_scope, __pyx_k_scope, sizeof(__pyx_k_scope), 0, 0, 1, 1},
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
  {&__pyx_n_s_semHandleDesc, __pyx_k_semHandleDesc, sizeof(__pyx_k_semHandleDesc), 0, 0, 1, 1},
  {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
  {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
  {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_shHandleType, __pyx_k_shHandleType, sizeof(__pyx_k_shHandleType), 0, 0, 1, 1},
  {&__pyx_n_s_shareData, __pyx_k_shareData, sizeof(__pyx_k_shareData), 0, 0, 1, 1},
  {&__pyx_n_s_shareData_out, __pyx_k_shareData_out, sizeof(__pyx_k_shareData_out), 0, 0, 1, 1},
  {&__pyx_n_s_shareableHandle, __pyx_k_shareableHandle, sizeof(__pyx_k_shareableHandle), 0, 0, 1, 1},
  {&__pyx_kp_u_sharedMemBytes, __pyx_k_sharedMemBytes, sizeof(__pyx_k_sharedMemBytes), 0, 1, 0, 0},
  {&__pyx_n_s_sharedMemBytes_2, __pyx_k_sharedMemBytes_2, sizeof(__pyx_k_sharedMemBytes_2), 0, 0, 1, 1},
  {&__pyx_kp_u_sharedMemPerBlock, __pyx_k_sharedMemPerBlock, sizeof(__pyx_k_sharedMemPerBlock), 0, 1, 0, 0},
  {&__pyx_n_s_sharedMemPerBlock_2, __pyx_k_sharedMemPerBlock_2, sizeof(__pyx_k_sharedMemPerBlock_2), 0, 0, 1, 1},
  {&__pyx_kp_u_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 1, 0, 0},
  {&__pyx_kp_u_sizeInBytes, __pyx_k_sizeInBytes, sizeof(__pyx_k_sizeInBytes), 0, 1, 0, 0},
  {&__pyx_n_s_sizeInBytes_2, __pyx_k_sizeInBytes_2, sizeof(__pyx_k_sizeInBytes_2), 0, 0, 1, 1},
  {&__pyx_n_s_sizeOut, __pyx_k_sizeOut, sizeof(__pyx_k_sizeOut), 0, 0, 1, 1},
  {&__pyx_n_s_size_2, __pyx_k_size_2, sizeof(__pyx_k_size_2), 0, 0, 1, 1},
  {&__pyx_n_s_sizeof, __pyx_k_sizeof, sizeof(__pyx_k_sizeof), 0, 0, 1, 1},
  {&__pyx_kp_u_smCount, __pyx_k_smCount, sizeof(__pyx_k_smCount), 0, 1, 0, 0},
  {&__pyx_n_s_smCount_2, __pyx_k_smCount_2, sizeof(__pyx_k_smCount_2), 0, 0, 1, 1},
  {&__pyx_kp_u_sparseLevel, __pyx_k_sparseLevel, sizeof(__pyx_k_sparseLevel), 0, 1, 0, 0},
  {&__pyx_n_s_sparseLevel_2, __pyx_k_sparseLevel_2, sizeof(__pyx_k_sparseLevel_2), 0, 0, 1, 1},
  {&__pyx_n_s_sparseProperties, __pyx_k_sparseProperties, sizeof(__pyx_k_sparseProperties), 0, 0, 1, 1},
  {&__pyx_n_s_src, __pyx_k_src, sizeof(__pyx_k_src), 0, 0, 1, 1},
  {&__pyx_kp_u_srcArray, __pyx_k_srcArray, sizeof(__pyx_k_srcArray), 0, 1, 0, 0},
  {&__pyx_n_s_srcArray_2, __pyx_k_srcArray_2, sizeof(__pyx_k_srcArray_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcContext, __pyx_k_srcContext, sizeof(__pyx_k_srcContext), 0, 1, 0, 0},
  {&__pyx_n_s_srcContext_2, __pyx_k_srcContext_2, sizeof(__pyx_k_srcContext_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcDevice, __pyx_k_srcDevice, sizeof(__pyx_k_srcDevice), 0, 1, 0, 0},
  {&__pyx_n_s_srcDevice_2, __pyx_k_srcDevice_2, sizeof(__pyx_k_srcDevice_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcHeight, __pyx_k_srcHeight, sizeof(__pyx_k_srcHeight), 0, 1, 0, 0},
  {&__pyx_n_s_srcHeight_2, __pyx_k_srcHeight_2, sizeof(__pyx_k_srcHeight_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcHost, __pyx_k_srcHost, sizeof(__pyx_k_srcHost), 0, 1, 0, 0},
  {&__pyx_n_s_srcHost_2, __pyx_k_srcHost_2, sizeof(__pyx_k_srcHost_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcLOD, __pyx_k_srcLOD, sizeof(__pyx_k_srcLOD), 0, 1, 0, 0},
  {&__pyx_n_s_srcLOD_2, __pyx_k_srcLOD_2, sizeof(__pyx_k_srcLOD_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcMemoryType, __pyx_k_srcMemoryType, sizeof(__pyx_k_srcMemoryType), 0, 1, 0, 0},
  {&__pyx_n_s_srcMemoryType_2, __pyx_k_srcMemoryType_2, sizeof(__pyx_k_srcMemoryType_2), 0, 0, 1, 1},
  {&__pyx_n_s_srcOffset, __pyx_k_srcOffset, sizeof(__pyx_k_srcOffset), 0, 0, 1, 1},
  {&__pyx_kp_u_srcPitch, __pyx_k_srcPitch, sizeof(__pyx_k_srcPitch), 0, 1, 0, 0},
  {&__pyx_n_s_srcPitch_2, __pyx_k_srcPitch_2, sizeof(__pyx_k_srcPitch_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcXInBytes, __pyx_k_srcXInBytes, sizeof(__pyx_k_srcXInBytes), 0, 1, 0, 0},
  {&__pyx_n_s_srcXInBytes_2, __pyx_k_srcXInBytes_2, sizeof(__pyx_k_srcXInBytes_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcY, __pyx_k_srcY, sizeof(__pyx_k_srcY), 0, 1, 0, 0},
  {&__pyx_n_s_srcY_2, __pyx_k_srcY_2, sizeof(__pyx_k_srcY_2), 0, 0, 1, 1},
  {&__pyx_kp_u_srcZ, __pyx_k_srcZ, sizeof(__pyx_k_srcZ), 0, 1, 0, 0},
  {&__pyx_n_s_srcZ_2, __pyx_k_srcZ_2, sizeof(__pyx_k_srcZ_2), 0, 0, 1, 1},
  {&__pyx_n_s_startswith, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1},
  {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
  {&__pyx_n_s_stateOut, __pyx_k_stateOut, sizeof(__pyx_k_stateOut), 0, 0, 1, 1},
  {&__pyx_n_s_stream, __pyx_k_stream, sizeof(__pyx_k_stream), 0, 0, 1, 1},
  {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
  {&__pyx_kp_u_subresource, __pyx_k_subresource, sizeof(__pyx_k_subresource), 0, 1, 0, 0},
  {&__pyx_kp_u_subresourceType, __pyx_k_subresourceType, sizeof(__pyx_k_subresourceType), 0, 1, 0, 0},
  {&__pyx_n_s_subresourceType_2, __pyx_k_subresourceType_2, sizeof(__pyx_k_subresourceType_2), 0, 0, 1, 1},
  {&__pyx_n_s_subresource_2, __pyx_k_subresource_2, sizeof(__pyx_k_subresource_2), 0, 0, 1, 1},
  {&__pyx_n_s_surfObject, __pyx_k_surfObject, sizeof(__pyx_k_surfObject), 0, 0, 1, 1},
  {&__pyx_n_s_symbol, __pyx_k_symbol, sizeof(__pyx_k_symbol), 0, 0, 1, 1},
  {&__pyx_kp_u_syncPolicy, __pyx_k_syncPolicy, sizeof(__pyx_k_syncPolicy), 0, 1, 0, 0},
  {&__pyx_n_s_syncPolicy_2, __pyx_k_syncPolicy_2, sizeof(__pyx_k_syncPolicy_2), 0, 0, 1, 1},
  {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_texObject, __pyx_k_texObject, sizeof(__pyx_k_texObject), 0, 0, 1, 1},
  {&__pyx_kp_u_textureAlign, __pyx_k_textureAlign, sizeof(__pyx_k_textureAlign), 0, 1, 0, 0},
  {&__pyx_n_s_textureAlign_2, __pyx_k_textureAlign_2, sizeof(__pyx_k_textureAlign_2), 0, 0, 1, 1},
  {&__pyx_n_s_texunit, __pyx_k_texunit, sizeof(__pyx_k_texunit), 0, 0, 1, 1},
  {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
  {&__pyx_kp_u_tileExtent, __pyx_k_tileExtent, sizeof(__pyx_k_tileExtent), 0, 1, 0, 0},
  {&__pyx_n_s_tileExtent_2, __pyx_k_tileExtent_2, sizeof(__pyx_k_tileExtent_2), 0, 0, 1, 1},
  {&__pyx_kp_u_timeoutMs, __pyx_k_timeoutMs, sizeof(__pyx_k_timeoutMs), 0, 1, 0, 0},
  {&__pyx_n_s_timeoutMs_2, __pyx_k_timeoutMs_2, sizeof(__pyx_k_timeoutMs_2), 0, 0, 1, 1},
  {&__pyx_n_s_to, __pyx_k_to, sizeof(__pyx_k_to), 0, 0, 1, 1},
  {&__pyx_n_s_total, __pyx_k_total, sizeof(__pyx_k_total), 0, 0, 1, 1},
  {&__pyx_kp_u_totalConstantMemory, __pyx_k_totalConstantMemory, sizeof(__pyx_k_totalConstantMemory), 0, 1, 0, 0},
  {&__pyx_n_s_totalConstantMemory_2, __pyx_k_totalConstantMemory_2, sizeof(__pyx_k_totalConstantMemory_2), 0, 0, 1, 1},
  {&__pyx_kp_u_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 1, 0, 0},
  {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1},
  {&__pyx_n_s_typename, __pyx_k_typename, sizeof(__pyx_k_typename), 0, 0, 1, 1},
  {&__pyx_n_s_typing, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1},
  {&__pyx_n_s_uc, __pyx_k_uc, sizeof(__pyx_k_uc), 0, 0, 1, 1},
  {&__pyx_n_s_ui, __pyx_k_ui, sizeof(__pyx_k_ui), 0, 0, 1, 1},
  {&__pyx_n_s_updateResult_out, __pyx_k_updateResult_out, sizeof(__pyx_k_updateResult_out), 0, 0, 1, 1},
  {&__pyx_n_s_us, __pyx_k_us, sizeof(__pyx_k_us), 0, 0, 1, 1},
  {&__pyx_kp_u_usage, __pyx_k_usage, sizeof(__pyx_k_usage), 0, 1, 0, 0},
  {&__pyx_n_s_usage_2, __pyx_k_usage_2, sizeof(__pyx_k_usage_2), 0, 0, 1, 1},
  {&__pyx_kp_u_userData, __pyx_k_userData, sizeof(__pyx_k_userData), 0, 1, 0, 0},
  {&__pyx_n_s_userData_2, __pyx_k_userData_2, sizeof(__pyx_k_userData_2), 0, 0, 1, 1},
  {&__pyx_n_s_uuid, __pyx_k_uuid, sizeof(__pyx_k_uuid), 0, 0, 1, 1},
  {&__pyx_kp_u_vaSpaceToken, __pyx_k_vaSpaceToken, sizeof(__pyx_k_vaSpaceToken), 0, 1, 0, 0},
  {&__pyx_n_s_vaSpaceToken_2, __pyx_k_vaSpaceToken_2, sizeof(__pyx_k_vaSpaceToken_2), 0, 0, 1, 1},
  {&__pyx_kp_u_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 1, 0, 0},
  {&__pyx_n_s_val_2, __pyx_k_val_2, sizeof(__pyx_k_val_2), 0, 0, 1, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_kp_u_value64, __pyx_k_value64, sizeof(__pyx_k_value64), 0, 1, 0, 0},
  {&__pyx_n_s_value64_2, __pyx_k_value64_2, sizeof(__pyx_k_value64_2), 0, 0, 1, 1},
  {&__pyx_kp_u_value_2, __pyx_k_value_2, sizeof(__pyx_k_value_2), 0, 1, 0, 0},
  {&__pyx_n_s_value_out, __pyx_k_value_out, sizeof(__pyx_k_value_out), 0, 0, 1, 1},
  {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1},
  {&__pyx_n_s_voidStarHelper, __pyx_k_voidStarHelper, sizeof(__pyx_k_voidStarHelper), 0, 0, 1, 1},
  {&__pyx_kp_u_waitValue, __pyx_k_waitValue, sizeof(__pyx_k_waitValue), 0, 1, 0, 0},
  {&__pyx_n_s_waitValue_2, __pyx_k_waitValue_2, sizeof(__pyx_k_waitValue_2), 0, 0, 1, 1},
  {&__pyx_kp_u_width, __pyx_k_width, sizeof(__pyx_k_width), 0, 1, 0, 0},
  {&__pyx_n_s_width_2, __pyx_k_width_2, sizeof(__pyx_k_width_2), 0, 0, 1, 1},
  {&__pyx_kp_u_win32, __pyx_k_win32, sizeof(__pyx_k_win32), 0, 1, 0, 0},
  {&__pyx_kp_u_win32HandleMetaData, __pyx_k_win32HandleMetaData, sizeof(__pyx_k_win32HandleMetaData), 0, 1, 0, 0},
  {&__pyx_n_s_win32HandleMetaData_2, __pyx_k_win32HandleMetaData_2, sizeof(__pyx_k_win32HandleMetaData_2), 0, 0, 1, 1},
  {&__pyx_kp_u_win32SecurityAttributes, __pyx_k_win32SecurityAttributes, sizeof(__pyx_k_win32SecurityAttributes), 0, 1, 0, 0},
  {&__pyx_n_s_win32SecurityAttributes_2, __pyx_k_win32SecurityAttributes_2, sizeof(__pyx_k_win32SecurityAttributes_2), 0, 0, 1, 1},
  {&__pyx_n_s_win32_2, __pyx_k_win32_2, sizeof(__pyx_k_win32_2), 0, 0, 1, 1},
  {&__pyx_kp_u_writeValue, __pyx_k_writeValue, sizeof(__pyx_k_writeValue), 0, 1, 0, 0},
  {&__pyx_n_s_writeValue_2, __pyx_k_writeValue_2, sizeof(__pyx_k_writeValue_2), 0, 0, 1, 1},
  {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
  {&__pyx_n_u_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 1, 0, 1},
  {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
  {&__pyx_n_s_z, __pyx_k_z, sizeof(__pyx_k_z), 0, 0, 1, 1},
  {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 1048, __pyx_L1_error)
  __pyx_builtin_hex = __Pyx_GetBuiltinName(__pyx_n_s_hex); if (!__pyx_builtin_hex) __PYX_ERR(0, 1059, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 1836, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 1837, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 6204, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 10342, __pyx_L1_error)
  __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 10345, __pyx_L1_error)
  __pyx_builtin_OverflowError = __Pyx_GetBuiltinName(__pyx_n_s_OverflowError); if (!__pyx_builtin_OverflowError) __PYX_ERR(1, 81, __pyx_L1_error)
  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 94, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__49 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__81 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__84 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__84)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__84);
  __Pyx_GIVEREF(__pyx_tuple__84);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__86 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__86);
  __Pyx_GIVEREF(__pyx_tuple__86);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__89 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__91 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__94 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__94);
  __Pyx_GIVEREF(__pyx_tuple__94);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__96 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__96);
  __Pyx_GIVEREF(__pyx_tuple__96);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__99 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__99);
  __Pyx_GIVEREF(__pyx_tuple__99);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__101 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__104 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__104);
  __Pyx_GIVEREF(__pyx_tuple__104);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__106 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__111 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__111);
  __Pyx_GIVEREF(__pyx_tuple__111);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__113 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__116 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__118 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__118)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__118);
  __Pyx_GIVEREF(__pyx_tuple__118);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__121 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__123 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__126 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__126);
  __Pyx_GIVEREF(__pyx_tuple__126);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__128 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__128);
  __Pyx_GIVEREF(__pyx_tuple__128);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__131 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__131);
  __Pyx_GIVEREF(__pyx_tuple__131);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__133 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__133);
  __Pyx_GIVEREF(__pyx_tuple__133);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__136 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__136);
  __Pyx_GIVEREF(__pyx_tuple__136);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__138 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__138);
  __Pyx_GIVEREF(__pyx_tuple__138);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__143 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__143);
  __Pyx_GIVEREF(__pyx_tuple__143);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__145 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__145);
  __Pyx_GIVEREF(__pyx_tuple__145);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__148 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__148);
  __Pyx_GIVEREF(__pyx_tuple__148);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__150 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__150);
  __Pyx_GIVEREF(__pyx_tuple__150);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__153 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__153);
  __Pyx_GIVEREF(__pyx_tuple__153);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__155 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__155);
  __Pyx_GIVEREF(__pyx_tuple__155);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__158 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__158);
  __Pyx_GIVEREF(__pyx_tuple__158);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__160 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__160)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__160);
  __Pyx_GIVEREF(__pyx_tuple__160);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__163 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__163);
  __Pyx_GIVEREF(__pyx_tuple__163);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__165 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__165);
  __Pyx_GIVEREF(__pyx_tuple__165);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__168 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__168);
  __Pyx_GIVEREF(__pyx_tuple__168);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__170 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__170);
  __Pyx_GIVEREF(__pyx_tuple__170);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__173 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__173);
  __Pyx_GIVEREF(__pyx_tuple__173);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__175 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__175);
  __Pyx_GIVEREF(__pyx_tuple__175);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__178 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__178);
  __Pyx_GIVEREF(__pyx_tuple__178);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__180 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__180);
  __Pyx_GIVEREF(__pyx_tuple__180);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__183 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__183);
  __Pyx_GIVEREF(__pyx_tuple__183);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__185 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__185);
  __Pyx_GIVEREF(__pyx_tuple__185);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__188 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__188);
  __Pyx_GIVEREF(__pyx_tuple__188);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__190 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__190)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__190);
  __Pyx_GIVEREF(__pyx_tuple__190);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__193 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__193);
  __Pyx_GIVEREF(__pyx_tuple__193);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__195 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__195);
  __Pyx_GIVEREF(__pyx_tuple__195);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__198 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__198)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__198);
  __Pyx_GIVEREF(__pyx_tuple__198);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__200 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__200)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__200);
  __Pyx_GIVEREF(__pyx_tuple__200);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__203 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__203);
  __Pyx_GIVEREF(__pyx_tuple__203);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__205 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__205);
  __Pyx_GIVEREF(__pyx_tuple__205);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__208 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__208)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__208);
  __Pyx_GIVEREF(__pyx_tuple__208);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__210 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__210);
  __Pyx_GIVEREF(__pyx_tuple__210);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__213 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__213);
  __Pyx_GIVEREF(__pyx_tuple__213);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__215 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__215);
  __Pyx_GIVEREF(__pyx_tuple__215);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__218 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__218)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__218);
  __Pyx_GIVEREF(__pyx_tuple__218);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__220 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__220)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__220);
  __Pyx_GIVEREF(__pyx_tuple__220);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__223 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__223);
  __Pyx_GIVEREF(__pyx_tuple__223);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__225 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__225)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__225);
  __Pyx_GIVEREF(__pyx_tuple__225);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__228 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__228);
  __Pyx_GIVEREF(__pyx_tuple__228);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__230 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__230);
  __Pyx_GIVEREF(__pyx_tuple__230);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__233 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__233)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__233);
  __Pyx_GIVEREF(__pyx_tuple__233);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__235 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__235)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__235);
  __Pyx_GIVEREF(__pyx_tuple__235);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__238 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__238);
  __Pyx_GIVEREF(__pyx_tuple__238);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__240 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__240)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__240);
  __Pyx_GIVEREF(__pyx_tuple__240);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__243 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__243);
  __Pyx_GIVEREF(__pyx_tuple__243);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__245 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__245)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__245);
  __Pyx_GIVEREF(__pyx_tuple__245);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__248 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__248);
  __Pyx_GIVEREF(__pyx_tuple__248);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__250 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__250)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__250);
  __Pyx_GIVEREF(__pyx_tuple__250);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__253 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__253)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__253);
  __Pyx_GIVEREF(__pyx_tuple__253);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__255 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__255)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__255);
  __Pyx_GIVEREF(__pyx_tuple__255);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__258 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__258);
  __Pyx_GIVEREF(__pyx_tuple__258);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__260 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__260);
  __Pyx_GIVEREF(__pyx_tuple__260);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__263 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__263)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__263);
  __Pyx_GIVEREF(__pyx_tuple__263);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__265 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__265)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__265);
  __Pyx_GIVEREF(__pyx_tuple__265);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__268 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__268);
  __Pyx_GIVEREF(__pyx_tuple__268);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__270 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__270)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__270);
  __Pyx_GIVEREF(__pyx_tuple__270);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__273 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__273);
  __Pyx_GIVEREF(__pyx_tuple__273);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__275 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__275);
  __Pyx_GIVEREF(__pyx_tuple__275);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__278 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__278)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__278);
  __Pyx_GIVEREF(__pyx_tuple__278);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__280 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__280)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__280);
  __Pyx_GIVEREF(__pyx_tuple__280);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__283 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__283);
  __Pyx_GIVEREF(__pyx_tuple__283);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__285 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__285);
  __Pyx_GIVEREF(__pyx_tuple__285);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__288 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__288)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__288);
  __Pyx_GIVEREF(__pyx_tuple__288);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__290 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__290)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__290);
  __Pyx_GIVEREF(__pyx_tuple__290);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__293 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__293)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__293);
  __Pyx_GIVEREF(__pyx_tuple__293);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__295 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__295)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__295);
  __Pyx_GIVEREF(__pyx_tuple__295);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__298 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__298);
  __Pyx_GIVEREF(__pyx_tuple__298);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__300 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__300);
  __Pyx_GIVEREF(__pyx_tuple__300);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__303 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__303)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__303);
  __Pyx_GIVEREF(__pyx_tuple__303);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__305 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__305)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__305);
  __Pyx_GIVEREF(__pyx_tuple__305);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__308 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__308)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__308);
  __Pyx_GIVEREF(__pyx_tuple__308);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__310 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__310)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__310);
  __Pyx_GIVEREF(__pyx_tuple__310);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__313 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__313)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__313);
  __Pyx_GIVEREF(__pyx_tuple__313);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__315 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__315)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__315);
  __Pyx_GIVEREF(__pyx_tuple__315);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__318 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__318)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__318);
  __Pyx_GIVEREF(__pyx_tuple__318);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__320 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__320)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__320);
  __Pyx_GIVEREF(__pyx_tuple__320);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__323 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__323)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__323);
  __Pyx_GIVEREF(__pyx_tuple__323);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__325 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__325)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__325);
  __Pyx_GIVEREF(__pyx_tuple__325);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__328 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__328)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__328);
  __Pyx_GIVEREF(__pyx_tuple__328);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__330 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__330)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__330);
  __Pyx_GIVEREF(__pyx_tuple__330);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__333 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__333)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__333);
  __Pyx_GIVEREF(__pyx_tuple__333);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__335 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__335);
  __Pyx_GIVEREF(__pyx_tuple__335);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__338 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__338)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__338);
  __Pyx_GIVEREF(__pyx_tuple__338);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__340 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__340)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__340);
  __Pyx_GIVEREF(__pyx_tuple__340);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__343 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__343)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__343);
  __Pyx_GIVEREF(__pyx_tuple__343);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__345 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__345)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__345);
  __Pyx_GIVEREF(__pyx_tuple__345);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__348 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__348)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__348);
  __Pyx_GIVEREF(__pyx_tuple__348);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__350 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__350)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__350);
  __Pyx_GIVEREF(__pyx_tuple__350);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__353 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__353)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__353);
  __Pyx_GIVEREF(__pyx_tuple__353);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__355 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__355)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__355);
  __Pyx_GIVEREF(__pyx_tuple__355);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__358 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__358)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__358);
  __Pyx_GIVEREF(__pyx_tuple__358);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__360 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__360)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__360);
  __Pyx_GIVEREF(__pyx_tuple__360);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__363 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__363)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__363);
  __Pyx_GIVEREF(__pyx_tuple__363);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__365 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__365)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__365);
  __Pyx_GIVEREF(__pyx_tuple__365);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__368 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__368)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__368);
  __Pyx_GIVEREF(__pyx_tuple__368);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__370 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__370)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__370);
  __Pyx_GIVEREF(__pyx_tuple__370);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__373 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__373)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__373);
  __Pyx_GIVEREF(__pyx_tuple__373);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__375 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__375)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__375);
  __Pyx_GIVEREF(__pyx_tuple__375);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__378 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__378)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__378);
  __Pyx_GIVEREF(__pyx_tuple__378);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__380 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__380)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__380);
  __Pyx_GIVEREF(__pyx_tuple__380);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__383 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__383)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__383);
  __Pyx_GIVEREF(__pyx_tuple__383);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__385 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__385)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__385);
  __Pyx_GIVEREF(__pyx_tuple__385);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__388 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__388)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__388);
  __Pyx_GIVEREF(__pyx_tuple__388);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__390 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__390)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__390);
  __Pyx_GIVEREF(__pyx_tuple__390);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__393 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__393)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__393);
  __Pyx_GIVEREF(__pyx_tuple__393);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__395 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__395)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__395);
  __Pyx_GIVEREF(__pyx_tuple__395);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__398 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__398)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__398);
  __Pyx_GIVEREF(__pyx_tuple__398);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__400 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__400)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__400);
  __Pyx_GIVEREF(__pyx_tuple__400);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__403 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__403)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__403);
  __Pyx_GIVEREF(__pyx_tuple__403);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__405 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__405)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__405);
  __Pyx_GIVEREF(__pyx_tuple__405);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__408 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__408)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__408);
  __Pyx_GIVEREF(__pyx_tuple__408);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__410 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__410)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__410);
  __Pyx_GIVEREF(__pyx_tuple__410);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__413 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__413)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__413);
  __Pyx_GIVEREF(__pyx_tuple__413);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__415 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__415)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__415);
  __Pyx_GIVEREF(__pyx_tuple__415);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__418 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__418)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__418);
  __Pyx_GIVEREF(__pyx_tuple__418);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__420 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__420)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__420);
  __Pyx_GIVEREF(__pyx_tuple__420);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__423 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__423)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__423);
  __Pyx_GIVEREF(__pyx_tuple__423);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__425 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__425)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__425);
  __Pyx_GIVEREF(__pyx_tuple__425);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__428 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__428)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__428);
  __Pyx_GIVEREF(__pyx_tuple__428);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__430 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__430)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__430);
  __Pyx_GIVEREF(__pyx_tuple__430);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__433 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__433)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__433);
  __Pyx_GIVEREF(__pyx_tuple__433);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__435 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__435)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__435);
  __Pyx_GIVEREF(__pyx_tuple__435);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__438 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__438)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__438);
  __Pyx_GIVEREF(__pyx_tuple__438);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__440 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__440)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__440);
  __Pyx_GIVEREF(__pyx_tuple__440);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__443 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__443)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__443);
  __Pyx_GIVEREF(__pyx_tuple__443);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__445 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__445)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__445);
  __Pyx_GIVEREF(__pyx_tuple__445);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__448 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__448)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__448);
  __Pyx_GIVEREF(__pyx_tuple__448);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__450 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__450)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__450);
  __Pyx_GIVEREF(__pyx_tuple__450);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__453 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__453)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__453);
  __Pyx_GIVEREF(__pyx_tuple__453);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__455 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__455)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__455);
  __Pyx_GIVEREF(__pyx_tuple__455);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__458 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__458)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__458);
  __Pyx_GIVEREF(__pyx_tuple__458);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__460 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__460)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__460);
  __Pyx_GIVEREF(__pyx_tuple__460);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__463 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__463)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__463);
  __Pyx_GIVEREF(__pyx_tuple__463);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__465 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__465)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__465);
  __Pyx_GIVEREF(__pyx_tuple__465);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__468 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__468)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__468);
  __Pyx_GIVEREF(__pyx_tuple__468);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__470 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__470)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__470);
  __Pyx_GIVEREF(__pyx_tuple__470);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__473 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__473)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__473);
  __Pyx_GIVEREF(__pyx_tuple__473);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__475 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__475)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__475);
  __Pyx_GIVEREF(__pyx_tuple__475);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__478 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__478)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__478);
  __Pyx_GIVEREF(__pyx_tuple__478);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__480 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__480)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__480);
  __Pyx_GIVEREF(__pyx_tuple__480);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__483 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__483)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__483);
  __Pyx_GIVEREF(__pyx_tuple__483);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__485 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__485)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__485);
  __Pyx_GIVEREF(__pyx_tuple__485);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__488 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__488)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__488);
  __Pyx_GIVEREF(__pyx_tuple__488);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__490 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__490)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__490);
  __Pyx_GIVEREF(__pyx_tuple__490);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__493 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__493)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__493);
  __Pyx_GIVEREF(__pyx_tuple__493);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__495 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__495)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__495);
  __Pyx_GIVEREF(__pyx_tuple__495);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__498 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__498)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__498);
  __Pyx_GIVEREF(__pyx_tuple__498);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__500 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__500)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__500);
  __Pyx_GIVEREF(__pyx_tuple__500);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__503 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__503)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__503);
  __Pyx_GIVEREF(__pyx_tuple__503);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__505 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__505)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__505);
  __Pyx_GIVEREF(__pyx_tuple__505);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__508 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__508)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__508);
  __Pyx_GIVEREF(__pyx_tuple__508);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__510 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__510)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__510);
  __Pyx_GIVEREF(__pyx_tuple__510);

  /* "cuda/cuda.pyx":9225
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUexecAffinityParam)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUexecAffinityParam]")             # <<<<<<<<<<<<<<
 *     cdef CUcontext pctx = CUcontext()
 *     cdef ccuda.CUexecAffinityParam* cparamsArray = NULL
 */
  __pyx_tuple__539 = PyTuple_Pack(1, __pyx_kp_u_Argument_paramsArray_is_not_inst); if (unlikely(!__pyx_tuple__539)) __PYX_ERR(0, 9225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__539);
  __Pyx_GIVEREF(__pyx_tuple__539);

  /* "cuda/cuda.pyx":10338
 *     options = [] if options is None else options
 *     if not all(isinstance(_x, (CUjit_option)) for _x in options):
 *         raise TypeError("Argument 'options' is not instance of type (expected List[ccuda.CUjit_option]")             # <<<<<<<<<<<<<<
 *     cdef CUmodule module = CUmodule()
 *     cimage = utils.HelperInputVoidPtr(image)
 */
  __pyx_tuple__563 = PyTuple_Pack(1, __pyx_kp_u_Argument_options_is_not_instance); if (unlikely(!__pyx_tuple__563)) __PYX_ERR(0, 10338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__563);
  __Pyx_GIVEREF(__pyx_tuple__563);

  /* "cuda/cuda.pyx":16580
 *     mapInfoList = [] if mapInfoList is None else mapInfoList
 *     if not all(isinstance(_x, (CUarrayMapInfo)) for _x in mapInfoList):
 *         raise TypeError("Argument 'mapInfoList' is not instance of type (expected List[ccuda.CUarrayMapInfo]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUarrayMapInfo* cmapInfoList = NULL
 *     if len(mapInfoList) > 0:
 */
  __pyx_tuple__649 = PyTuple_Pack(1, __pyx_kp_u_Argument_mapInfoList_is_not_inst); if (unlikely(!__pyx_tuple__649)) __PYX_ERR(0, 16580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__649);
  __Pyx_GIVEREF(__pyx_tuple__649);

  /* "cuda/cuda.pyx":16677
 *     desc = [] if desc is None else desc
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in desc):
 *         raise TypeError("Argument 'desc' is not instance of type (expected List[ccuda.CUmemAccessDesc]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAccessDesc* cdesc = NULL
 *     if len(desc) > 0:
 */
  __pyx_tuple__652 = PyTuple_Pack(1, __pyx_kp_u_Argument_desc_is_not_instance_of); if (unlikely(!__pyx_tuple__652)) __PYX_ERR(0, 16677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__652);
  __Pyx_GIVEREF(__pyx_tuple__652);

  /* "cuda/cuda.pyx":17233
 *     map = [] if map is None else map
 *     if not all(isinstance(_x, (CUmemAccessDesc)) for _x in map):
 *         raise TypeError("Argument 'map' is not instance of type (expected List[ccuda.CUmemAccessDesc]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUmemAccessDesc* cmap = NULL
 *     if len(map) > 0:
 */
  __pyx_tuple__665 = PyTuple_Pack(1, __pyx_kp_u_Argument_map_is_not_instance_of); if (unlikely(!__pyx_tuple__665)) __PYX_ERR(0, 17233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__665);
  __Pyx_GIVEREF(__pyx_tuple__665);

  /* "cuda/cuda.pyx":18100
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUmem_range_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")             # <<<<<<<<<<<<<<
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")
 */
  __pyx_tuple__679 = PyTuple_Pack(1, __pyx_kp_u_Argument_attributes_is_not_insta); if (unlikely(!__pyx_tuple__679)) __PYX_ERR(0, 18100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__679);
  __Pyx_GIVEREF(__pyx_tuple__679);

  /* "cuda/cuda.pyx":18102
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUmem_range_attribute]")
 *     if not all(isinstance(_x, (int)) for _x in dataSizes):
 *         raise TypeError("Argument 'dataSizes' is not instance of type (expected List[int]")             # <<<<<<<<<<<<<<
 *     pylist = [utils.HelperCUmem_range_attribute(pyattributes, pydataSizes) for (pyattributes, pydataSizes) in zip(attributes, dataSizes)]
 *     cdef utils.InputVoidPtrPtrHelper voidStarHelper = utils.InputVoidPtrPtrHelper(pylist)
 */
  __pyx_tuple__680 = PyTuple_Pack(1, __pyx_kp_u_Argument_dataSizes_is_not_instan); if (unlikely(!__pyx_tuple__680)) __PYX_ERR(0, 18102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__680);
  __Pyx_GIVEREF(__pyx_tuple__680);

  /* "cuda/cuda.pyx":18221
 *     attributes = [] if attributes is None else attributes
 *     if not all(isinstance(_x, (CUpointer_attribute)) for _x in attributes):
 *         raise TypeError("Argument 'attributes' is not instance of type (expected List[ccuda.CUpointer_attribute]")             # <<<<<<<<<<<<<<
 *     if numAttributes > len(attributes): raise RuntimeError("List is too small: " + str(len(attributes)) + " < " + str(numAttributes))
 *     cdef vector[ccuda.CUpointer_attribute] cattributes = [pyattributes.value for pyattributes in (attributes)]
 */
  __pyx_tuple__683 = PyTuple_Pack(1, __pyx_kp_u_Argument_attributes_is_not_insta_2); if (unlikely(!__pyx_tuple__683)) __PYX_ERR(0, 18221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__683);
  __Pyx_GIVEREF(__pyx_tuple__683);

  /* "cuda/cuda.pyx":18957
 *     dependencies = [] if dependencies is None else dependencies
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in dependencies):
 *         raise TypeError("Argument 'dependencies' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cdependencies = NULL
 *     if len(dependencies) > 0:
 */
  __pyx_tuple__698 = PyTuple_Pack(1, __pyx_kp_u_Argument_dependencies_is_not_ins); if (unlikely(!__pyx_tuple__698)) __PYX_ERR(0, 18957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__698);
  __Pyx_GIVEREF(__pyx_tuple__698);

  /* "cuda/cuda.pyx":20156
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS]")             # <<<<<<<<<<<<<<
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 */
  __pyx_tuple__719 = PyTuple_Pack(1, __pyx_kp_u_Argument_paramsArray_is_not_inst_2); if (unlikely(!__pyx_tuple__719)) __PYX_ERR(0, 20156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__719);
  __Pyx_GIVEREF(__pyx_tuple__719);

  /* "cuda/cuda.pyx":20159
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 *         raise TypeError("Argument 'extSemArray' is not instance of type (expected List[ccuda.CUexternalSemaphore]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUexternalSemaphore* cextSemArray = NULL
 *     if len(extSemArray) > 0:
 */
  __pyx_tuple__720 = PyTuple_Pack(1, __pyx_kp_u_Argument_extSemArray_is_not_inst); if (unlikely(!__pyx_tuple__720)) __PYX_ERR(0, 20159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__720);
  __Pyx_GIVEREF(__pyx_tuple__720);

  /* "cuda/cuda.pyx":20277
 *     paramsArray = [] if paramsArray is None else paramsArray
 *     if not all(isinstance(_x, (CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)) for _x in paramsArray):
 *         raise TypeError("Argument 'paramsArray' is not instance of type (expected List[ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS]")             # <<<<<<<<<<<<<<
 *     extSemArray = [] if extSemArray is None else extSemArray
 *     if not all(isinstance(_x, (CUexternalSemaphore)) for _x in extSemArray):
 */
  __pyx_tuple__722 = PyTuple_Pack(1, __pyx_kp_u_Argument_paramsArray_is_not_inst_3); if (unlikely(!__pyx_tuple__722)) __PYX_ERR(0, 20277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__722);
  __Pyx_GIVEREF(__pyx_tuple__722);

  /* "cuda/cuda.pyx":20585
 *     paramArray = [] if paramArray is None else paramArray
 *     if not all(isinstance(_x, (CUstreamBatchMemOpParams)) for _x in paramArray):
 *         raise TypeError("Argument 'paramArray' is not instance of type (expected List[ccuda.CUstreamBatchMemOpParams]")             # <<<<<<<<<<<<<<
 *     if count > len(paramArray): raise RuntimeError("List is too small: " + str(len(paramArray)) + " < " + str(count))
 *     cdef ccuda.CUstreamBatchMemOpParams* cparamArray = NULL
 */
  __pyx_tuple__729 = PyTuple_Pack(1, __pyx_kp_u_Argument_paramArray_is_not_insta); if (unlikely(!__pyx_tuple__729)) __PYX_ERR(0, 20585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__729);
  __Pyx_GIVEREF(__pyx_tuple__729);

  /* "cuda/cuda.pyx":21248
 *     launchParamsList = [] if launchParamsList is None else launchParamsList
 *     if not all(isinstance(_x, (CUDA_LAUNCH_PARAMS)) for _x in launchParamsList):
 *         raise TypeError("Argument 'launchParamsList' is not instance of type (expected List[ccuda.CUDA_LAUNCH_PARAMS]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUDA_LAUNCH_PARAMS* claunchParamsList = NULL
 *     if len(launchParamsList) > 0:
 */
  __pyx_tuple__738 = PyTuple_Pack(1, __pyx_kp_u_Argument_launchParamsList_is_not); if (unlikely(!__pyx_tuple__738)) __PYX_ERR(0, 21248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__738);
  __Pyx_GIVEREF(__pyx_tuple__738);

  /* "cuda/cuda.pyx":24008
 *     to = [] if to is None else to
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in to):
 *         raise TypeError("Argument 'to' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 */
  __pyx_tuple__794 = PyTuple_Pack(1, __pyx_kp_u_Argument_to_is_not_instance_of_t); if (unlikely(!__pyx_tuple__794)) __PYX_ERR(0, 24008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__794);
  __Pyx_GIVEREF(__pyx_tuple__794);

  /* "cuda/cuda.pyx":24011
 *     from_ = [] if from_ is None else from_
 *     if not all(isinstance(_x, (CUgraphNode)) for _x in from_):
 *         raise TypeError("Argument 'from_' is not instance of type (expected List[ccuda.CUgraphNode]")             # <<<<<<<<<<<<<<
 *     cdef ccuda.CUgraphNode* cfrom_ = NULL
 *     if len(from_) > 0:
 */
  __pyx_tuple__795 = PyTuple_Pack(1, __pyx_kp_u_Argument_from__is_not_instance_o); if (unlikely(!__pyx_tuple__795)) __PYX_ERR(0, 24011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__795);
  __Pyx_GIVEREF(__pyx_tuple__795);

  /* "cuda/cuda.pyx":1064
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__880 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__880)) __PYX_ERR(0, 1064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__880);
  __Pyx_GIVEREF(__pyx_tuple__880);
  __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__880, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 1064, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__881 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__881)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__881);
  __Pyx_GIVEREF(__pyx_tuple__881);
  __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__881, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__882 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__882)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__882);
  __Pyx_GIVEREF(__pyx_tuple__882);
  __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__882, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1098
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__883 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__883)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__883);
  __Pyx_GIVEREF(__pyx_tuple__883);
  __pyx_codeobj__7 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__883, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1098, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__7)) __PYX_ERR(0, 1098, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__884 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__884)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__884);
  __Pyx_GIVEREF(__pyx_tuple__884);
  __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__884, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__885 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__885)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__885);
  __Pyx_GIVEREF(__pyx_tuple__885);
  __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__885, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1132
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__886 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__886)) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__886);
  __Pyx_GIVEREF(__pyx_tuple__886);
  __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__886, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 1132, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__887 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__887)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__887);
  __Pyx_GIVEREF(__pyx_tuple__887);
  __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__887, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__888 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__888)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__888);
  __Pyx_GIVEREF(__pyx_tuple__888);
  __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__888, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1166
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__889 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__889)) __PYX_ERR(0, 1166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__889);
  __Pyx_GIVEREF(__pyx_tuple__889);
  __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__889, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1166, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 1166, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__890 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__890)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__890);
  __Pyx_GIVEREF(__pyx_tuple__890);
  __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__890, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__891 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__891)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__891);
  __Pyx_GIVEREF(__pyx_tuple__891);
  __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__891, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1200
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__892 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__892)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__892);
  __Pyx_GIVEREF(__pyx_tuple__892);
  __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__892, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1200, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 1200, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__893 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__893)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__893);
  __Pyx_GIVEREF(__pyx_tuple__893);
  __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__893, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__894 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__894)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__894);
  __Pyx_GIVEREF(__pyx_tuple__894);
  __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__894, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1234
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__895 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__895)) __PYX_ERR(0, 1234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__895);
  __Pyx_GIVEREF(__pyx_tuple__895);
  __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__895, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 1234, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__896 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__896)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__896);
  __Pyx_GIVEREF(__pyx_tuple__896);
  __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__896, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__897 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__897)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__897);
  __Pyx_GIVEREF(__pyx_tuple__897);
  __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__897, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1268
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__898 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__898)) __PYX_ERR(0, 1268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__898);
  __Pyx_GIVEREF(__pyx_tuple__898);
  __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__898, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1268, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 1268, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__899 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__899)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__899);
  __Pyx_GIVEREF(__pyx_tuple__899);
  __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__899, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__900 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__900)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__900);
  __Pyx_GIVEREF(__pyx_tuple__900);
  __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__900, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1302
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__901 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__901)) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__901);
  __Pyx_GIVEREF(__pyx_tuple__901);
  __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__901, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1302, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 1302, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__902 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__902)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__902);
  __Pyx_GIVEREF(__pyx_tuple__902);
  __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__902, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__903 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__903)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__903);
  __Pyx_GIVEREF(__pyx_tuple__903);
  __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__903, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1336
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__904 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__904)) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__904);
  __Pyx_GIVEREF(__pyx_tuple__904);
  __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__904, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 1336, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__905 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__905)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__905);
  __Pyx_GIVEREF(__pyx_tuple__905);
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__905, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__906 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__906)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__906);
  __Pyx_GIVEREF(__pyx_tuple__906);
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__906, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1370
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__907 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__907)) __PYX_ERR(0, 1370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__907);
  __Pyx_GIVEREF(__pyx_tuple__907);
  __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__907, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 1370, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__908 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__908)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__908);
  __Pyx_GIVEREF(__pyx_tuple__908);
  __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__908, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__909 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__909)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__909);
  __Pyx_GIVEREF(__pyx_tuple__909);
  __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__909, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1404
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__910 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__910)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__910);
  __Pyx_GIVEREF(__pyx_tuple__910);
  __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__910, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1404, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 1404, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__911 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__911)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__911);
  __Pyx_GIVEREF(__pyx_tuple__911);
  __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__911, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__912 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__912)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__912);
  __Pyx_GIVEREF(__pyx_tuple__912);
  __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__912, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1438
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__913 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__913)) __PYX_ERR(0, 1438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__913);
  __Pyx_GIVEREF(__pyx_tuple__913);
  __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__913, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 1438, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__914 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__914)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__914);
  __Pyx_GIVEREF(__pyx_tuple__914);
  __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__914, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__915 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__915)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__915);
  __Pyx_GIVEREF(__pyx_tuple__915);
  __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__915, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1472
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__916 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__916)) __PYX_ERR(0, 1472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__916);
  __Pyx_GIVEREF(__pyx_tuple__916);
  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__916, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 1472, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__917 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__917)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__917);
  __Pyx_GIVEREF(__pyx_tuple__917);
  __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__917, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__918 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__918)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__918);
  __Pyx_GIVEREF(__pyx_tuple__918);
  __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__918, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1506
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__919 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__919)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__919);
  __Pyx_GIVEREF(__pyx_tuple__919);
  __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__919, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1506, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 1506, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__920 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__920)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__920);
  __Pyx_GIVEREF(__pyx_tuple__920);
  __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__920, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__921 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__921)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__921);
  __Pyx_GIVEREF(__pyx_tuple__921);
  __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__921, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1540
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__922 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__922)) __PYX_ERR(0, 1540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__922);
  __Pyx_GIVEREF(__pyx_tuple__922);
  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__922, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 1540, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__923 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__923)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__923);
  __Pyx_GIVEREF(__pyx_tuple__923);
  __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__923, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__924 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__924)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__924);
  __Pyx_GIVEREF(__pyx_tuple__924);
  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__924, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1574
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__925 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__925)) __PYX_ERR(0, 1574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__925);
  __Pyx_GIVEREF(__pyx_tuple__925);
  __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__925, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1574, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(0, 1574, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__926 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__926)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__926);
  __Pyx_GIVEREF(__pyx_tuple__926);
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__926, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__927 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__927)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__927);
  __Pyx_GIVEREF(__pyx_tuple__927);
  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__927, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1608
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__928 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__928)) __PYX_ERR(0, 1608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__928);
  __Pyx_GIVEREF(__pyx_tuple__928);
  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__928, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1608, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 1608, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__929 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__929)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__929);
  __Pyx_GIVEREF(__pyx_tuple__929);
  __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__929, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__930 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__930)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__930);
  __Pyx_GIVEREF(__pyx_tuple__930);
  __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__930, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1642
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__931 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__931)) __PYX_ERR(0, 1642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__931);
  __Pyx_GIVEREF(__pyx_tuple__931);
  __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__931, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1642, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(0, 1642, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__932 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__932)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__932);
  __Pyx_GIVEREF(__pyx_tuple__932);
  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__932, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__933 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__933)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__933);
  __Pyx_GIVEREF(__pyx_tuple__933);
  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__933, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1676
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__934 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__934)) __PYX_ERR(0, 1676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__934);
  __Pyx_GIVEREF(__pyx_tuple__934);
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__934, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1676, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 1676, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__935 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__935)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__935);
  __Pyx_GIVEREF(__pyx_tuple__935);
  __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__935, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__936 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__936)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__936);
  __Pyx_GIVEREF(__pyx_tuple__936);
  __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__936, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1710
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__937 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__937)) __PYX_ERR(0, 1710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__937);
  __Pyx_GIVEREF(__pyx_tuple__937);
  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__937, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1710, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(0, 1710, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__938 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__938)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__938);
  __Pyx_GIVEREF(__pyx_tuple__938);
  __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__938, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__939 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__939)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__939);
  __Pyx_GIVEREF(__pyx_tuple__939);
  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__939, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1744
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__940 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__940)) __PYX_ERR(0, 1744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__940);
  __Pyx_GIVEREF(__pyx_tuple__940);
  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__940, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1744, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 1744, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__941 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__941)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__941);
  __Pyx_GIVEREF(__pyx_tuple__941);
  __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__941, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__942 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__942)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__942);
  __Pyx_GIVEREF(__pyx_tuple__942);
  __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__942, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1776
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__943 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__943)) __PYX_ERR(0, 1776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__943);
  __Pyx_GIVEREF(__pyx_tuple__943);
  __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__943, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1776, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(0, 1776, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__944 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__944)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__944);
  __Pyx_GIVEREF(__pyx_tuple__944);
  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__944, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__945 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__945)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__945);
  __Pyx_GIVEREF(__pyx_tuple__945);
  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__945, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1820
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__946 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__946)) __PYX_ERR(0, 1820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__946);
  __Pyx_GIVEREF(__pyx_tuple__946);
  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__946, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1820, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(0, 1820, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__947 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__947)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__947);
  __Pyx_GIVEREF(__pyx_tuple__947);
  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__947, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__948 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__948)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__948);
  __Pyx_GIVEREF(__pyx_tuple__948);
  __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__948, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1872
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__949 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__949)) __PYX_ERR(0, 1872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__949);
  __Pyx_GIVEREF(__pyx_tuple__949);
  __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__949, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(0, 1872, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__950 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__950)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__950);
  __Pyx_GIVEREF(__pyx_tuple__950);
  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__950, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__951 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__951)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__951);
  __Pyx_GIVEREF(__pyx_tuple__951);
  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__951, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":1933
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__952 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__952)) __PYX_ERR(0, 1933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__952);
  __Pyx_GIVEREF(__pyx_tuple__952);
  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__952, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 1933, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 1933, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__953 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__953)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__953);
  __Pyx_GIVEREF(__pyx_tuple__953);
  __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__953, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__954 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__954)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__954);
  __Pyx_GIVEREF(__pyx_tuple__954);
  __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__954, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2022
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__955 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__955)) __PYX_ERR(0, 2022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__955);
  __Pyx_GIVEREF(__pyx_tuple__955);
  __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__955, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2022, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(0, 2022, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__956 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__956)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__956);
  __Pyx_GIVEREF(__pyx_tuple__956);
  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__956, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__957 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__957)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__957);
  __Pyx_GIVEREF(__pyx_tuple__957);
  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__957, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2103
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__958 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__958)) __PYX_ERR(0, 2103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__958);
  __Pyx_GIVEREF(__pyx_tuple__958);
  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__958, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 2103, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__959 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__959)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__959);
  __Pyx_GIVEREF(__pyx_tuple__959);
  __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__959, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__960 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__960)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__960);
  __Pyx_GIVEREF(__pyx_tuple__960);
  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__960, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2169
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__961 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__961)) __PYX_ERR(0, 2169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__961);
  __Pyx_GIVEREF(__pyx_tuple__961);
  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__961, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 2169, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__962 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__962)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__962);
  __Pyx_GIVEREF(__pyx_tuple__962);
  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__962, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__963 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__963)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__963);
  __Pyx_GIVEREF(__pyx_tuple__963);
  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__963, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2279
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__964 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__964)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__964);
  __Pyx_GIVEREF(__pyx_tuple__964);
  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__964, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2279, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 2279, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__965 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__965)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__965);
  __Pyx_GIVEREF(__pyx_tuple__965);
  __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__965, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__966 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__966)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__966);
  __Pyx_GIVEREF(__pyx_tuple__966);
  __pyx_codeobj__149 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__966, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__149)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2419
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__967 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__967)) __PYX_ERR(0, 2419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__967);
  __Pyx_GIVEREF(__pyx_tuple__967);
  __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__967, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2419, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) __PYX_ERR(0, 2419, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__968 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__968)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__968);
  __Pyx_GIVEREF(__pyx_tuple__968);
  __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__968, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__969 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__969)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__969);
  __Pyx_GIVEREF(__pyx_tuple__969);
  __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__969, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2517
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__970 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__970)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__970);
  __Pyx_GIVEREF(__pyx_tuple__970);
  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__970, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2517, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 2517, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__971 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__971)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__971);
  __Pyx_GIVEREF(__pyx_tuple__971);
  __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__971, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__972 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__972)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__972);
  __Pyx_GIVEREF(__pyx_tuple__972);
  __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__972, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2646
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__973 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__973)) __PYX_ERR(0, 2646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__973);
  __Pyx_GIVEREF(__pyx_tuple__973);
  __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__973, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(0, 2646, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__974 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__974)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__974);
  __Pyx_GIVEREF(__pyx_tuple__974);
  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__974, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__975 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__975)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__975);
  __Pyx_GIVEREF(__pyx_tuple__975);
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__975, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2736
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__976 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__976)) __PYX_ERR(0, 2736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__976);
  __Pyx_GIVEREF(__pyx_tuple__976);
  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__976, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2736, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 2736, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__977 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__977)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__977);
  __Pyx_GIVEREF(__pyx_tuple__977);
  __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__977, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__978 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__978)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__978);
  __Pyx_GIVEREF(__pyx_tuple__978);
  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__978, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2793
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__979 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__979)) __PYX_ERR(0, 2793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__979);
  __Pyx_GIVEREF(__pyx_tuple__979);
  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__979, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(0, 2793, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__980 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__980)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__980);
  __Pyx_GIVEREF(__pyx_tuple__980);
  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__980, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__981 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__981)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__981);
  __Pyx_GIVEREF(__pyx_tuple__981);
  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__981, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2854
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__982 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__982)) __PYX_ERR(0, 2854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__982);
  __Pyx_GIVEREF(__pyx_tuple__982);
  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__982, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2854, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 2854, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__983 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__983)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__983);
  __Pyx_GIVEREF(__pyx_tuple__983);
  __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__983, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__984 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__984)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__984);
  __Pyx_GIVEREF(__pyx_tuple__984);
  __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__984, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2914
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__985 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__985)) __PYX_ERR(0, 2914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__985);
  __Pyx_GIVEREF(__pyx_tuple__985);
  __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__985, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2914, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(0, 2914, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__986 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__986)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__986);
  __Pyx_GIVEREF(__pyx_tuple__986);
  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__986, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__987 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__987)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__987);
  __Pyx_GIVEREF(__pyx_tuple__987);
  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__987, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":2950
 *     def __init__(self, void_ptr _ptr):
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__988 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__988)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__988);
  __Pyx_GIVEREF(__pyx_tuple__988);
  __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__988, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 2950, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(0, 2950, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__989 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__989)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__989);
  __Pyx_GIVEREF(__pyx_tuple__989);
  __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__989, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__990 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__990)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__990);
  __Pyx_GIVEREF(__pyx_tuple__990);
  __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__990, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":3004
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__991 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__991)) __PYX_ERR(0, 3004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__991);
  __Pyx_GIVEREF(__pyx_tuple__991);
  __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__991, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 3004, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(0, 3004, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__992 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__992)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__992);
  __Pyx_GIVEREF(__pyx_tuple__992);
  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__992, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__993 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__993)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__993);
  __Pyx_GIVEREF(__pyx_tuple__993);
  __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__993, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":3097
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__994 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__994)) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__994);
  __Pyx_GIVEREF(__pyx_tuple__994);
  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__994, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 3097, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(0, 3097, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__995 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__995)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__995);
  __Pyx_GIVEREF(__pyx_tuple__995);
  __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__995, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__996 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__996)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__996);
  __Pyx_GIVEREF(__pyx_tuple__996);
  __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__996, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":3317
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__997 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__997)) __PYX_ERR(0, 3317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__997);
  __Pyx_GIVEREF(__pyx_tuple__997);
  __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__997, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 3317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(0, 3317, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__998 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__998)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__998);
  __Pyx_GIVEREF(__pyx_tuple__998);
  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__998, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__999 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__999)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__999);
  __Pyx_GIVEREF(__pyx_tuple__999);
  __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__999, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":3612
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1000 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1000)) __PYX_ERR(0, 3612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1000);
  __Pyx_GIVEREF(__pyx_tuple__1000);
  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1000, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 3612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(0, 3612, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1001 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1001)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1001);
  __Pyx_GIVEREF(__pyx_tuple__1001);
  __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1001, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1002 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1002)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1002);
  __Pyx_GIVEREF(__pyx_tuple__1002);
  __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1002, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":3858
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1003 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1003)) __PYX_ERR(0, 3858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1003);
  __Pyx_GIVEREF(__pyx_tuple__1003);
  __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1003, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 3858, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(0, 3858, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1004 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1004)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1004);
  __Pyx_GIVEREF(__pyx_tuple__1004);
  __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1004, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1005 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1005)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1005);
  __Pyx_GIVEREF(__pyx_tuple__1005);
  __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1005, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":3940
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1006 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1006)) __PYX_ERR(0, 3940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1006);
  __Pyx_GIVEREF(__pyx_tuple__1006);
  __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1006, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 3940, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(0, 3940, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1007 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1007)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1007);
  __Pyx_GIVEREF(__pyx_tuple__1007);
  __pyx_codeobj__217 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1007, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1008 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1008)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1008);
  __Pyx_GIVEREF(__pyx_tuple__1008);
  __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1008, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4020
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1009 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1009)) __PYX_ERR(0, 4020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1009);
  __Pyx_GIVEREF(__pyx_tuple__1009);
  __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1009, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4020, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(0, 4020, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1010 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1010)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1010);
  __Pyx_GIVEREF(__pyx_tuple__1010);
  __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1010, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1011 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1011)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1011);
  __Pyx_GIVEREF(__pyx_tuple__1011);
  __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1011, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4093
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1012 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1012)) __PYX_ERR(0, 4093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1012);
  __Pyx_GIVEREF(__pyx_tuple__1012);
  __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1012, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4093, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(0, 4093, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1013 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1013)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1013);
  __Pyx_GIVEREF(__pyx_tuple__1013);
  __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1013, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1014 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1014)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1014);
  __Pyx_GIVEREF(__pyx_tuple__1014);
  __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1014, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4165
 *     def __init__(self, void_ptr _ptr):
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1015 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1015)) __PYX_ERR(0, 4165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1015);
  __Pyx_GIVEREF(__pyx_tuple__1015);
  __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1015, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(0, 4165, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1016 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1016)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1016);
  __Pyx_GIVEREF(__pyx_tuple__1016);
  __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1016, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1017 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1017)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1017);
  __Pyx_GIVEREF(__pyx_tuple__1017);
  __pyx_codeobj__234 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1017, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__234)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4201
 *     def __init__(self, void_ptr _ptr):
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1018 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1018)) __PYX_ERR(0, 4201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1018);
  __Pyx_GIVEREF(__pyx_tuple__1018);
  __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1018, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4201, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(0, 4201, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1019 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1019)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1019);
  __Pyx_GIVEREF(__pyx_tuple__1019);
  __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1019, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1020 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1020)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1020);
  __Pyx_GIVEREF(__pyx_tuple__1020);
  __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1020, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4243
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1021 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1021)) __PYX_ERR(0, 4243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1021);
  __Pyx_GIVEREF(__pyx_tuple__1021);
  __pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1021, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4243, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(0, 4243, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1022 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1022)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1022);
  __Pyx_GIVEREF(__pyx_tuple__1022);
  __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1022, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1023 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1023)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1023);
  __Pyx_GIVEREF(__pyx_tuple__1023);
  __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1023, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4313
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1024 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1024)) __PYX_ERR(0, 4313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1024);
  __Pyx_GIVEREF(__pyx_tuple__1024);
  __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1024, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4313, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(0, 4313, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1025 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1025)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1025);
  __Pyx_GIVEREF(__pyx_tuple__1025);
  __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1025, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1026 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1026)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1026);
  __Pyx_GIVEREF(__pyx_tuple__1026);
  __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1026, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4389
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1027 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1027)) __PYX_ERR(0, 4389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1027);
  __Pyx_GIVEREF(__pyx_tuple__1027);
  __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1027, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4389, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(0, 4389, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1028 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1028)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1028);
  __Pyx_GIVEREF(__pyx_tuple__1028);
  __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1028, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1029 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1029)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1029);
  __Pyx_GIVEREF(__pyx_tuple__1029);
  __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1029, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4437
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1030 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1030)) __PYX_ERR(0, 4437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1030);
  __Pyx_GIVEREF(__pyx_tuple__1030);
  __pyx_codeobj__256 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1030, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__256)) __PYX_ERR(0, 4437, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1031 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1031)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1031);
  __Pyx_GIVEREF(__pyx_tuple__1031);
  __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1031, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1032 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1032)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1032);
  __Pyx_GIVEREF(__pyx_tuple__1032);
  __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1032, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4541
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1033 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1033)) __PYX_ERR(0, 4541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1033);
  __Pyx_GIVEREF(__pyx_tuple__1033);
  __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1033, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4541, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(0, 4541, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1034 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1034)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1034);
  __Pyx_GIVEREF(__pyx_tuple__1034);
  __pyx_codeobj__262 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1034, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__262)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1035 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1035)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1035);
  __Pyx_GIVEREF(__pyx_tuple__1035);
  __pyx_codeobj__264 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1035, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__264)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4627
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1036 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1036)) __PYX_ERR(0, 4627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1036);
  __Pyx_GIVEREF(__pyx_tuple__1036);
  __pyx_codeobj__266 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1036, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4627, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__266)) __PYX_ERR(0, 4627, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1037 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1037)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1037);
  __Pyx_GIVEREF(__pyx_tuple__1037);
  __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1037, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1038 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1038)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1038);
  __Pyx_GIVEREF(__pyx_tuple__1038);
  __pyx_codeobj__269 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1038, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__269)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4762
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1039 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1039)) __PYX_ERR(0, 4762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1039);
  __Pyx_GIVEREF(__pyx_tuple__1039);
  __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1039, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4762, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(0, 4762, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1040 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1040)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1040);
  __Pyx_GIVEREF(__pyx_tuple__1040);
  __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1040, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1041 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1041)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1041);
  __Pyx_GIVEREF(__pyx_tuple__1041);
  __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1041, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4876
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1042 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1042)) __PYX_ERR(0, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1042);
  __Pyx_GIVEREF(__pyx_tuple__1042);
  __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1042, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(0, 4876, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1043 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1043)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1043);
  __Pyx_GIVEREF(__pyx_tuple__1043);
  __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1043, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1044 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1044)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1044);
  __Pyx_GIVEREF(__pyx_tuple__1044);
  __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1044, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__279)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":4951
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1045 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1045)) __PYX_ERR(0, 4951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1045);
  __Pyx_GIVEREF(__pyx_tuple__1045);
  __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1045, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 4951, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __PYX_ERR(0, 4951, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1046 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1046)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1046);
  __Pyx_GIVEREF(__pyx_tuple__1046);
  __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1046, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1047 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1047)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1047);
  __Pyx_GIVEREF(__pyx_tuple__1047);
  __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1047, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5061
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1048 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1048)) __PYX_ERR(0, 5061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1048);
  __Pyx_GIVEREF(__pyx_tuple__1048);
  __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1048, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(0, 5061, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1049 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1049)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1049);
  __Pyx_GIVEREF(__pyx_tuple__1049);
  __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1049, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__287)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1050 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1050)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1050);
  __Pyx_GIVEREF(__pyx_tuple__1050);
  __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1050, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5109
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1051 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1051)) __PYX_ERR(0, 5109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1051);
  __Pyx_GIVEREF(__pyx_tuple__1051);
  __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1051, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(0, 5109, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1052 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1052)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1052);
  __Pyx_GIVEREF(__pyx_tuple__1052);
  __pyx_codeobj__292 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1052, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__292)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1053 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1053)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1053);
  __Pyx_GIVEREF(__pyx_tuple__1053);
  __pyx_codeobj__294 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1053, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__294)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5185
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1054 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1054)) __PYX_ERR(0, 5185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1054);
  __Pyx_GIVEREF(__pyx_tuple__1054);
  __pyx_codeobj__296 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1054, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__296)) __PYX_ERR(0, 5185, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1055 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1055)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1055);
  __Pyx_GIVEREF(__pyx_tuple__1055);
  __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1055, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1056 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1056)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1056);
  __Pyx_GIVEREF(__pyx_tuple__1056);
  __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1056, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5275
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1057 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1057)) __PYX_ERR(0, 5275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1057);
  __Pyx_GIVEREF(__pyx_tuple__1057);
  __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1057, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5275, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(0, 5275, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1058 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1058)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1058);
  __Pyx_GIVEREF(__pyx_tuple__1058);
  __pyx_codeobj__302 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1058, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__302)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1059 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1059)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1059);
  __Pyx_GIVEREF(__pyx_tuple__1059);
  __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1059, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5354
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1060 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1060)) __PYX_ERR(0, 5354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1060);
  __Pyx_GIVEREF(__pyx_tuple__1060);
  __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1060, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5354, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __PYX_ERR(0, 5354, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1061 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1061)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1061);
  __Pyx_GIVEREF(__pyx_tuple__1061);
  __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1061, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1062 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1062)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1062);
  __Pyx_GIVEREF(__pyx_tuple__1062);
  __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1062, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5420
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1063 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1063)) __PYX_ERR(0, 5420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1063);
  __Pyx_GIVEREF(__pyx_tuple__1063);
  __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1063, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5420, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(0, 5420, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1064 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1064)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1064);
  __Pyx_GIVEREF(__pyx_tuple__1064);
  __pyx_codeobj__312 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1064, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__312)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1065 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1065)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1065);
  __Pyx_GIVEREF(__pyx_tuple__1065);
  __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1065, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5468
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1066 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1066)) __PYX_ERR(0, 5468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1066);
  __Pyx_GIVEREF(__pyx_tuple__1066);
  __pyx_codeobj__316 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1066, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5468, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__316)) __PYX_ERR(0, 5468, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1067 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1067)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1067);
  __Pyx_GIVEREF(__pyx_tuple__1067);
  __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1067, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1068 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1068)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1068);
  __Pyx_GIVEREF(__pyx_tuple__1068);
  __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1068, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5542
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1069 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1069)) __PYX_ERR(0, 5542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1069);
  __Pyx_GIVEREF(__pyx_tuple__1069);
  __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1069, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(0, 5542, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1070 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1070)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1070);
  __Pyx_GIVEREF(__pyx_tuple__1070);
  __pyx_codeobj__322 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1070, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__322)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1071 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1071)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1071);
  __Pyx_GIVEREF(__pyx_tuple__1071);
  __pyx_codeobj__324 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1071, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5606
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1072 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1072)) __PYX_ERR(0, 5606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1072);
  __Pyx_GIVEREF(__pyx_tuple__1072);
  __pyx_codeobj__326 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1072, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5606, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__326)) __PYX_ERR(0, 5606, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1073 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1073)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1073);
  __Pyx_GIVEREF(__pyx_tuple__1073);
  __pyx_codeobj__327 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1073, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__327)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1074 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1074)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1074);
  __Pyx_GIVEREF(__pyx_tuple__1074);
  __pyx_codeobj__329 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1074, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__329)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5644
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1075 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1075)) __PYX_ERR(0, 5644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1075);
  __Pyx_GIVEREF(__pyx_tuple__1075);
  __pyx_codeobj__331 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1075, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5644, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(0, 5644, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1076 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1076)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1076);
  __Pyx_GIVEREF(__pyx_tuple__1076);
  __pyx_codeobj__332 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1076, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1077 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1077)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1077);
  __Pyx_GIVEREF(__pyx_tuple__1077);
  __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1077, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5688
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1078 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1078)) __PYX_ERR(0, 5688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1078);
  __Pyx_GIVEREF(__pyx_tuple__1078);
  __pyx_codeobj__336 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1078, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__336)) __PYX_ERR(0, 5688, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1079 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1079)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1079);
  __Pyx_GIVEREF(__pyx_tuple__1079);
  __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1079, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1080 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1080)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1080);
  __Pyx_GIVEREF(__pyx_tuple__1080);
  __pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1080, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5732
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1081 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1081)) __PYX_ERR(0, 5732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1081);
  __Pyx_GIVEREF(__pyx_tuple__1081);
  __pyx_codeobj__341 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1081, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__341)) __PYX_ERR(0, 5732, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1082 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1082)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1082);
  __Pyx_GIVEREF(__pyx_tuple__1082);
  __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1082, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1083 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1083)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1083);
  __Pyx_GIVEREF(__pyx_tuple__1083);
  __pyx_codeobj__344 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1083, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__344)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5827
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1084 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1084)) __PYX_ERR(0, 5827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1084);
  __Pyx_GIVEREF(__pyx_tuple__1084);
  __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1084, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5827, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(0, 5827, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1085 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1085)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1085);
  __Pyx_GIVEREF(__pyx_tuple__1085);
  __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1085, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1086 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1086)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1086);
  __Pyx_GIVEREF(__pyx_tuple__1086);
  __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1086, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5883
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1087 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1087)) __PYX_ERR(0, 5883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1087);
  __Pyx_GIVEREF(__pyx_tuple__1087);
  __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1087, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(0, 5883, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1088 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1088)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1088);
  __Pyx_GIVEREF(__pyx_tuple__1088);
  __pyx_codeobj__352 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1088, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__352)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1089 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1089)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1089);
  __Pyx_GIVEREF(__pyx_tuple__1089);
  __pyx_codeobj__354 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1089, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5921
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1090 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1090)) __PYX_ERR(0, 5921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1090);
  __Pyx_GIVEREF(__pyx_tuple__1090);
  __pyx_codeobj__356 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1090, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5921, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__356)) __PYX_ERR(0, 5921, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1091 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1091)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1091);
  __Pyx_GIVEREF(__pyx_tuple__1091);
  __pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1091, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1092 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1092)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1092);
  __Pyx_GIVEREF(__pyx_tuple__1092);
  __pyx_codeobj__359 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1092, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":5967
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1093 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1093)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1093);
  __Pyx_GIVEREF(__pyx_tuple__1093);
  __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1093, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 5967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(0, 5967, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1094 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1094)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1094);
  __Pyx_GIVEREF(__pyx_tuple__1094);
  __pyx_codeobj__362 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1094, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__362)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1095 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1095)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1095);
  __Pyx_GIVEREF(__pyx_tuple__1095);
  __pyx_codeobj__364 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1095, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6019
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1096 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1096)) __PYX_ERR(0, 6019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1096);
  __Pyx_GIVEREF(__pyx_tuple__1096);
  __pyx_codeobj__366 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1096, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6019, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__366)) __PYX_ERR(0, 6019, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1097 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1097)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1097);
  __Pyx_GIVEREF(__pyx_tuple__1097);
  __pyx_codeobj__367 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1097, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1098 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1098)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1098);
  __Pyx_GIVEREF(__pyx_tuple__1098);
  __pyx_codeobj__369 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1098, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6114
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1099 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1099)) __PYX_ERR(0, 6114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1099);
  __Pyx_GIVEREF(__pyx_tuple__1099);
  __pyx_codeobj__371 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1099, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__371)) __PYX_ERR(0, 6114, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1100 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1100)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1100);
  __Pyx_GIVEREF(__pyx_tuple__1100);
  __pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1100, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1101 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1101)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1101);
  __Pyx_GIVEREF(__pyx_tuple__1101);
  __pyx_codeobj__374 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6190
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1102 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1102)) __PYX_ERR(0, 6190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1102);
  __Pyx_GIVEREF(__pyx_tuple__1102);
  __pyx_codeobj__376 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6190, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(0, 6190, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1103 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1103)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1103);
  __Pyx_GIVEREF(__pyx_tuple__1103);
  __pyx_codeobj__377 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__377)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1104 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1104)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1104);
  __Pyx_GIVEREF(__pyx_tuple__1104);
  __pyx_codeobj__379 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__379)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6288
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1105 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1105)) __PYX_ERR(0, 6288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1105);
  __Pyx_GIVEREF(__pyx_tuple__1105);
  __pyx_codeobj__381 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6288, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__381)) __PYX_ERR(0, 6288, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1106 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1106)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1106);
  __Pyx_GIVEREF(__pyx_tuple__1106);
  __pyx_codeobj__382 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1107 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1107)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1107);
  __Pyx_GIVEREF(__pyx_tuple__1107);
  __pyx_codeobj__384 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__384)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6369
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1108 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1108)) __PYX_ERR(0, 6369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1108);
  __Pyx_GIVEREF(__pyx_tuple__1108);
  __pyx_codeobj__386 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6369, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__386)) __PYX_ERR(0, 6369, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1109 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1109)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1109);
  __Pyx_GIVEREF(__pyx_tuple__1109);
  __pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1110 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1110)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1110);
  __Pyx_GIVEREF(__pyx_tuple__1110);
  __pyx_codeobj__389 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6427
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1111 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1111)) __PYX_ERR(0, 6427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1111);
  __Pyx_GIVEREF(__pyx_tuple__1111);
  __pyx_codeobj__391 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6427, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(0, 6427, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1112 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1112)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1112);
  __Pyx_GIVEREF(__pyx_tuple__1112);
  __pyx_codeobj__392 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1112, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__392)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1113 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1113)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1113);
  __Pyx_GIVEREF(__pyx_tuple__1113);
  __pyx_codeobj__394 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__394)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6523
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1114 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1114)) __PYX_ERR(0, 6523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1114);
  __Pyx_GIVEREF(__pyx_tuple__1114);
  __pyx_codeobj__396 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6523, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(0, 6523, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1115 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1115)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1115);
  __Pyx_GIVEREF(__pyx_tuple__1115);
  __pyx_codeobj__397 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1116 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1116)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1116);
  __Pyx_GIVEREF(__pyx_tuple__1116);
  __pyx_codeobj__399 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1116, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__399)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6578
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1117 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1117)) __PYX_ERR(0, 6578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1117);
  __Pyx_GIVEREF(__pyx_tuple__1117);
  __pyx_codeobj__401 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6578, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__401)) __PYX_ERR(0, 6578, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1118 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1118)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1118);
  __Pyx_GIVEREF(__pyx_tuple__1118);
  __pyx_codeobj__402 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1119 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1119)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1119);
  __Pyx_GIVEREF(__pyx_tuple__1119);
  __pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6630
 *     def __init__(self, void_ptr _ptr):
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1120 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1120)) __PYX_ERR(0, 6630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1120);
  __Pyx_GIVEREF(__pyx_tuple__1120);
  __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1120, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(0, 6630, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1121 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1121)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1121);
  __Pyx_GIVEREF(__pyx_tuple__1121);
  __pyx_codeobj__407 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__407)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1122 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1122)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1122);
  __Pyx_GIVEREF(__pyx_tuple__1122);
  __pyx_codeobj__409 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1122, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__409)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6701
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1123 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1123)) __PYX_ERR(0, 6701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1123);
  __Pyx_GIVEREF(__pyx_tuple__1123);
  __pyx_codeobj__411 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__411)) __PYX_ERR(0, 6701, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1124 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1124)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1124);
  __Pyx_GIVEREF(__pyx_tuple__1124);
  __pyx_codeobj__412 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1124, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__412)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1125 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1125)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1125);
  __Pyx_GIVEREF(__pyx_tuple__1125);
  __pyx_codeobj__414 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__414)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6843
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1126 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1126)) __PYX_ERR(0, 6843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1126);
  __Pyx_GIVEREF(__pyx_tuple__1126);
  __pyx_codeobj__416 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1126, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6843, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(0, 6843, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1127 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1127)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1127);
  __Pyx_GIVEREF(__pyx_tuple__1127);
  __pyx_codeobj__417 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__417)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1128 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1128)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1128);
  __Pyx_GIVEREF(__pyx_tuple__1128);
  __pyx_codeobj__419 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1128, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__419)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6893
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1129 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1129)) __PYX_ERR(0, 6893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1129);
  __Pyx_GIVEREF(__pyx_tuple__1129);
  __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6893, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(0, 6893, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1130 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1130)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1130);
  __Pyx_GIVEREF(__pyx_tuple__1130);
  __pyx_codeobj__422 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__422)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1131 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1131)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1131);
  __Pyx_GIVEREF(__pyx_tuple__1131);
  __pyx_codeobj__424 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":6980
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1132 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1132)) __PYX_ERR(0, 6980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1132);
  __Pyx_GIVEREF(__pyx_tuple__1132);
  __pyx_codeobj__426 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1132, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 6980, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__426)) __PYX_ERR(0, 6980, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1133 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1133)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1133);
  __Pyx_GIVEREF(__pyx_tuple__1133);
  __pyx_codeobj__427 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__427)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1134 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1134)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1134);
  __Pyx_GIVEREF(__pyx_tuple__1134);
  __pyx_codeobj__429 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1134, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7070
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1135 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1135)) __PYX_ERR(0, 7070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1135);
  __Pyx_GIVEREF(__pyx_tuple__1135);
  __pyx_codeobj__431 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7070, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__431)) __PYX_ERR(0, 7070, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1136 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1136)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1136);
  __Pyx_GIVEREF(__pyx_tuple__1136);
  __pyx_codeobj__432 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__432)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1137 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1137)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1137);
  __Pyx_GIVEREF(__pyx_tuple__1137);
  __pyx_codeobj__434 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__434)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7143
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1138 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1138)) __PYX_ERR(0, 7143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1138);
  __Pyx_GIVEREF(__pyx_tuple__1138);
  __pyx_codeobj__436 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__436)) __PYX_ERR(0, 7143, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1139 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1139)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1139);
  __Pyx_GIVEREF(__pyx_tuple__1139);
  __pyx_codeobj__437 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__437)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1140 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1140)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1140);
  __Pyx_GIVEREF(__pyx_tuple__1140);
  __pyx_codeobj__439 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__439)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7229
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1141 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1141)) __PYX_ERR(0, 7229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1141);
  __Pyx_GIVEREF(__pyx_tuple__1141);
  __pyx_codeobj__441 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__441)) __PYX_ERR(0, 7229, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1142 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1142)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1142);
  __Pyx_GIVEREF(__pyx_tuple__1142);
  __pyx_codeobj__442 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1142, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__442)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1143 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1143)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1143);
  __Pyx_GIVEREF(__pyx_tuple__1143);
  __pyx_codeobj__444 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__444)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7293
 *         if self._accessDescs is not NULL:
 *             free(self._accessDescs)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_tuple__1144 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1144)) __PYX_ERR(0, 7293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1144);
  __Pyx_GIVEREF(__pyx_tuple__1144);
  __pyx_codeobj__446 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1144, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7293, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__446)) __PYX_ERR(0, 7293, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1145 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1145)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1145);
  __Pyx_GIVEREF(__pyx_tuple__1145);
  __pyx_codeobj__447 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__447)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1146 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1146)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1146);
  __Pyx_GIVEREF(__pyx_tuple__1146);
  __pyx_codeobj__449 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1146, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__449)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7388
 *     def __int__(self):
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1147 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1147)) __PYX_ERR(0, 7388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1147);
  __Pyx_GIVEREF(__pyx_tuple__1147);
  __pyx_codeobj__451 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7388, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__451)) __PYX_ERR(0, 7388, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1148 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1148)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1148);
  __Pyx_GIVEREF(__pyx_tuple__1148);
  __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1148, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1149 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1149)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1149);
  __Pyx_GIVEREF(__pyx_tuple__1149);
  __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7419
 *     def __int__(self):
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1150 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1150)) __PYX_ERR(0, 7419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1150);
  __Pyx_GIVEREF(__pyx_tuple__1150);
  __pyx_codeobj__456 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7419, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__456)) __PYX_ERR(0, 7419, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1151 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1151)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1151);
  __Pyx_GIVEREF(__pyx_tuple__1151);
  __pyx_codeobj__457 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__457)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1152 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1152)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1152);
  __Pyx_GIVEREF(__pyx_tuple__1152);
  __pyx_codeobj__459 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__459)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7450
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1153 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1153)) __PYX_ERR(0, 7450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1153);
  __Pyx_GIVEREF(__pyx_tuple__1153);
  __pyx_codeobj__461 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7450, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__461)) __PYX_ERR(0, 7450, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1154 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1154)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1154);
  __Pyx_GIVEREF(__pyx_tuple__1154);
  __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1155 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1155)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1155);
  __Pyx_GIVEREF(__pyx_tuple__1155);
  __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7481
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1156 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1156)) __PYX_ERR(0, 7481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1156);
  __Pyx_GIVEREF(__pyx_tuple__1156);
  __pyx_codeobj__466 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1156, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7481, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(0, 7481, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1157 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1157)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1157);
  __Pyx_GIVEREF(__pyx_tuple__1157);
  __pyx_codeobj__467 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__467)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1158 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1158)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1158);
  __Pyx_GIVEREF(__pyx_tuple__1158);
  __pyx_codeobj__469 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1158, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__469)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7512
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1159 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1159)) __PYX_ERR(0, 7512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1159);
  __Pyx_GIVEREF(__pyx_tuple__1159);
  __pyx_codeobj__471 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7512, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__471)) __PYX_ERR(0, 7512, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1160 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1160)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1160);
  __Pyx_GIVEREF(__pyx_tuple__1160);
  __pyx_codeobj__472 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1160, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__472)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1161 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1161)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1161);
  __Pyx_GIVEREF(__pyx_tuple__1161);
  __pyx_codeobj__474 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7543
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1162 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1162)) __PYX_ERR(0, 7543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1162);
  __Pyx_GIVEREF(__pyx_tuple__1162);
  __pyx_codeobj__476 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1162, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7543, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__476)) __PYX_ERR(0, 7543, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1163 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1163)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1163);
  __Pyx_GIVEREF(__pyx_tuple__1163);
  __pyx_codeobj__477 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1164 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1164)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1164);
  __Pyx_GIVEREF(__pyx_tuple__1164);
  __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1164, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7574
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1165 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1165)) __PYX_ERR(0, 7574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1165);
  __Pyx_GIVEREF(__pyx_tuple__1165);
  __pyx_codeobj__481 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7574, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__481)) __PYX_ERR(0, 7574, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1166 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1166)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1166);
  __Pyx_GIVEREF(__pyx_tuple__1166);
  __pyx_codeobj__482 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__482)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1167 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1167)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1167);
  __Pyx_GIVEREF(__pyx_tuple__1167);
  __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7605
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1168 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1168)) __PYX_ERR(0, 7605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1168);
  __Pyx_GIVEREF(__pyx_tuple__1168);
  __pyx_codeobj__486 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7605, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__486)) __PYX_ERR(0, 7605, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1169 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1169)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1169);
  __Pyx_GIVEREF(__pyx_tuple__1169);
  __pyx_codeobj__487 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__487)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1170 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1170)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1170);
  __Pyx_GIVEREF(__pyx_tuple__1170);
  __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7636
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1171 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1171)) __PYX_ERR(0, 7636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1171);
  __Pyx_GIVEREF(__pyx_tuple__1171);
  __pyx_codeobj__491 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7636, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__491)) __PYX_ERR(0, 7636, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1172 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1172)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1172);
  __Pyx_GIVEREF(__pyx_tuple__1172);
  __pyx_codeobj__492 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__492)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1173 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1173)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1173);
  __Pyx_GIVEREF(__pyx_tuple__1173);
  __pyx_codeobj__494 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7667
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1174 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1174)) __PYX_ERR(0, 7667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1174);
  __Pyx_GIVEREF(__pyx_tuple__1174);
  __pyx_codeobj__496 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__496)) __PYX_ERR(0, 7667, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1175 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1175)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1175);
  __Pyx_GIVEREF(__pyx_tuple__1175);
  __pyx_codeobj__497 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__497)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1176 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1176)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1176);
  __Pyx_GIVEREF(__pyx_tuple__1176);
  __pyx_codeobj__499 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__499)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7698
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1177 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1177)) __PYX_ERR(0, 7698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1177);
  __Pyx_GIVEREF(__pyx_tuple__1177);
  __pyx_codeobj__501 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7698, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__501)) __PYX_ERR(0, 7698, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1178 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1178)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1178);
  __Pyx_GIVEREF(__pyx_tuple__1178);
  __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1179 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1179)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1179);
  __Pyx_GIVEREF(__pyx_tuple__1179);
  __pyx_codeobj__504 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__504)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7729
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_tuple__1180 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1180)) __PYX_ERR(0, 7729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1180);
  __Pyx_GIVEREF(__pyx_tuple__1180);
  __pyx_codeobj__506 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_getPtr, 7729, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__506)) __PYX_ERR(0, 7729, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__1181 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__1181)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1181);
  __Pyx_GIVEREF(__pyx_tuple__1181);
  __pyx_codeobj__507 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__507)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__1182 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__1182)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1182);
  __Pyx_GIVEREF(__pyx_tuple__1182);
  __pyx_codeobj__509 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__509)) __PYX_ERR(1, 3, __pyx_L1_error)

  /* "cuda/cuda.pyx":7733
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorString(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string description of an error code.
 * 
 */
  __pyx_tuple__1183 = PyTuple_Pack(4, __pyx_n_s_error, __pyx_n_s_cerror, __pyx_n_s_pStr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1183)) __PYX_ERR(0, 7733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1183);
  __Pyx_GIVEREF(__pyx_tuple__1183);
  __pyx_codeobj__511 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGetErrorString, 7733, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__511)) __PYX_ERR(0, 7733, __pyx_L1_error)

  /* "cuda/cuda.pyx":7765
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorName(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string representation of an error code enum name.
 * 
 */
  __pyx_tuple__1184 = PyTuple_Pack(4, __pyx_n_s_error, __pyx_n_s_cerror, __pyx_n_s_pStr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1184)) __PYX_ERR(0, 7765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1184);
  __Pyx_GIVEREF(__pyx_tuple__1184);
  __pyx_codeobj__512 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGetErrorName, 7765, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__512)) __PYX_ERR(0, 7765, __pyx_L1_error)

  /* "cuda/cuda.pyx":7797
 * 
 * @cython.embedsignature(True)
 * def cuInit(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Initialize the CUDA driver API.
 * 
 */
  __pyx_tuple__1185 = PyTuple_Pack(3, __pyx_n_s_Flags_2, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1185)) __PYX_ERR(0, 7797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1185);
  __Pyx_GIVEREF(__pyx_tuple__1185);
  __pyx_codeobj__513 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuInit, 7797, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__513)) __PYX_ERR(0, 7797, __pyx_L1_error)

  /* "cuda/cuda.pyx":7825
 * 
 * @cython.embedsignature(True)
 * def cuDriverGetVersion():             # <<<<<<<<<<<<<<
 *     """ Returns the latest CUDA version supported by driver.
 * 
 */
  __pyx_tuple__1186 = PyTuple_Pack(2, __pyx_n_s_driverVersion, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1186)) __PYX_ERR(0, 7825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1186);
  __Pyx_GIVEREF(__pyx_tuple__1186);
  __pyx_codeobj__514 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDriverGetVersion, 7825, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__514)) __PYX_ERR(0, 7825, __pyx_L1_error)

  /* "cuda/cuda.pyx":7853
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGet(int ordinal):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */
  __pyx_tuple__1187 = PyTuple_Pack(4, __pyx_n_s_ordinal, __pyx_n_s_ordinal, __pyx_n_s_device, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1187)) __PYX_ERR(0, 7853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1187);
  __Pyx_GIVEREF(__pyx_tuple__1187);
  __pyx_codeobj__515 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGet, 7853, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__515)) __PYX_ERR(0, 7853, __pyx_L1_error)

  /* "cuda/cuda.pyx":7891
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetCount():             # <<<<<<<<<<<<<<
 *     """ Returns the number of compute-capable devices.
 * 
 */
  __pyx_tuple__1188 = PyTuple_Pack(2, __pyx_n_s_count, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1188)) __PYX_ERR(0, 7891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1188);
  __Pyx_GIVEREF(__pyx_tuple__1188);
  __pyx_codeobj__516 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetCount, 7891, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__516)) __PYX_ERR(0, 7891, __pyx_L1_error)

  /* "cuda/cuda.pyx":7925
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetName(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns an identifer string for the device.
 * 
 */
  __pyx_tuple__1189 = PyTuple_Pack(4, __pyx_n_s_length, __pyx_n_s_dev, __pyx_n_s_name_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1189)) __PYX_ERR(0, 7925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1189);
  __Pyx_GIVEREF(__pyx_tuple__1189);
  __pyx_codeobj__517 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetName, 7925, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__517)) __PYX_ERR(0, 7925, __pyx_L1_error)

  /* "cuda/cuda.pyx":7967
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device.
 * 
 */
  __pyx_tuple__1190 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_uuid, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1190)) __PYX_ERR(0, 7967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1190);
  __Pyx_GIVEREF(__pyx_tuple__1190);
  __pyx_codeobj__518 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1190, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetUuid, 7967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__518)) __PYX_ERR(0, 7967, __pyx_L1_error)

  /* "cuda/cuda.pyx":8010
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid_v2(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device (11.4+)
 * 
 */
  __pyx_tuple__1191 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_uuid, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1191)) __PYX_ERR(0, 8010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1191);
  __Pyx_GIVEREF(__pyx_tuple__1191);
  __pyx_codeobj__519 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetUuid_v2, 8010, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__519)) __PYX_ERR(0, 8010, __pyx_L1_error)

  /* "cuda/cuda.pyx":8048
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetLuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an LUID and device node mask for the device.
 * 
 */
  __pyx_tuple__1192 = PyTuple_Pack(4, __pyx_n_s_dev, __pyx_n_s_luid, __pyx_n_s_deviceNodeMask, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1192)) __PYX_ERR(0, 8048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1192);
  __Pyx_GIVEREF(__pyx_tuple__1192);
  __pyx_codeobj__520 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1192, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetLuid, 8048, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__520)) __PYX_ERR(0, 8048, __pyx_L1_error)

  /* "cuda/cuda.pyx":8088
 * 
 * @cython.embedsignature(True)
 * def cuDeviceTotalMem(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the total amount of memory on the device.
 * 
 */
  __pyx_tuple__1193 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_numbytes, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1193)) __PYX_ERR(0, 8088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1193);
  __Pyx_GIVEREF(__pyx_tuple__1193);
  __pyx_codeobj__521 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceTotalMem, 8088, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__521)) __PYX_ERR(0, 8088, __pyx_L1_error)

  /* "cuda/cuda.pyx":8126
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetTexture1DLinearMaxWidth(pformat not None : CUarray_format, unsigned numChannels, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the maximum number of elements allocatable in a 1D linear texture for a given texture element size.
 * 
 */
  __pyx_tuple__1194 = PyTuple_Pack(6, __pyx_n_s_pformat, __pyx_n_s_numChannels_2, __pyx_n_s_dev, __pyx_n_s_maxWidthInElements, __pyx_n_s_cpformat, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1194)) __PYX_ERR(0, 8126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1194);
  __Pyx_GIVEREF(__pyx_tuple__1194);
  __pyx_codeobj__522 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetTexture1DLinearMaxWid, 8126, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__522)) __PYX_ERR(0, 8126, __pyx_L1_error)

  /* "cuda/cuda.pyx":8171
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetAttribute(attrib not None : CUdevice_attribute, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the device.
 * 
 */
  __pyx_tuple__1195 = PyTuple_Pack(5, __pyx_n_s_attrib, __pyx_n_s_dev, __pyx_n_s_pi, __pyx_n_s_cattrib, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1195)) __PYX_ERR(0, 8171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1195);
  __Pyx_GIVEREF(__pyx_tuple__1195);
  __pyx_codeobj__523 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetAttribute, 8171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__523)) __PYX_ERR(0, 8171, __pyx_L1_error)

  /* "cuda/cuda.pyx":8414
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetNvSciSyncAttributes(dev not None : CUdevice, int flags):             # <<<<<<<<<<<<<<
 *     """ Return NvSciSync attributes that this device can support.
 * 
 */
  __pyx_tuple__1196 = PyTuple_Pack(5, __pyx_n_s_dev, __pyx_n_s_flags_2, __pyx_n_s_nvSciSyncAttrList, __pyx_n_s_cnvSciSyncAttrList_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1196)) __PYX_ERR(0, 8414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1196);
  __Pyx_GIVEREF(__pyx_tuple__1196);
  __pyx_codeobj__524 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetNvSciSyncAttributes, 8414, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__524)) __PYX_ERR(0, 8414, __pyx_L1_error)

  /* "cuda/cuda.pyx":8468
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetMemPool(dev not None : CUdevice, pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Sets the current memory pool of a device.
 * 
 */
  __pyx_tuple__1197 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_pool, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1197)) __PYX_ERR(0, 8468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1197);
  __Pyx_GIVEREF(__pyx_tuple__1197);
  __pyx_codeobj__525 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceSetMemPool, 8468, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__525)) __PYX_ERR(0, 8468, __pyx_L1_error)

  /* "cuda/cuda.pyx":8500
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Gets the current mempool for a device.
 * 
 */
  __pyx_tuple__1198 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_pool, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1198)) __PYX_ERR(0, 8500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1198);
  __Pyx_GIVEREF(__pyx_tuple__1198);
  __pyx_codeobj__526 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetMemPool, 8500, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__526)) __PYX_ERR(0, 8500, __pyx_L1_error)

  /* "cuda/cuda.pyx":8528
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetDefaultMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the default mempool of a device.
 * 
 */
  __pyx_tuple__1199 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_pool_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1199)) __PYX_ERR(0, 8528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1199);
  __Pyx_GIVEREF(__pyx_tuple__1199);
  __pyx_codeobj__527 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetDefaultMemPool, 8528, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__527)) __PYX_ERR(0, 8528, __pyx_L1_error)

  /* "cuda/cuda.pyx":8561
 * 
 * @cython.embedsignature(True)
 * def cuFlushGPUDirectRDMAWrites(target not None : CUflushGPUDirectRDMAWritesTarget, scope not None : CUflushGPUDirectRDMAWritesScope):             # <<<<<<<<<<<<<<
 *     """ Blocks until remote writes are visible to the specified scope.
 * 
 */
  __pyx_tuple__1200 = PyTuple_Pack(5, __pyx_n_s_target, __pyx_n_s_scope, __pyx_n_s_ctarget, __pyx_n_s_cscope, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1200)) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1200);
  __Pyx_GIVEREF(__pyx_tuple__1200);
  __pyx_codeobj__528 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFlushGPUDirectRDMAWrites, 8561, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__528)) __PYX_ERR(0, 8561, __pyx_L1_error)

  /* "cuda/cuda.pyx":8602
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetProperties(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns properties for a selected device.
 * 
 */
  __pyx_tuple__1201 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_prop, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1201)) __PYX_ERR(0, 8602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1201);
  __Pyx_GIVEREF(__pyx_tuple__1201);
  __pyx_codeobj__529 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetProperties, 8602, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__529)) __PYX_ERR(0, 8602, __pyx_L1_error)

  /* "cuda/cuda.pyx":8662
 * 
 * @cython.embedsignature(True)
 * def cuDeviceComputeCapability(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the compute capability of the device.
 * 
 */
  __pyx_tuple__1202 = PyTuple_Pack(4, __pyx_n_s_dev, __pyx_n_s_major, __pyx_n_s_minor, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1202)) __PYX_ERR(0, 8662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1202);
  __Pyx_GIVEREF(__pyx_tuple__1202);
  __pyx_codeobj__530 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1202, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceComputeCapability, 8662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__530)) __PYX_ERR(0, 8662, __pyx_L1_error)

  /* "cuda/cuda.pyx":8707
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRetain(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Retain the primary context on the GPU.
 * 
 */
  __pyx_tuple__1203 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_pctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1203)) __PYX_ERR(0, 8707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1203);
  __Pyx_GIVEREF(__pyx_tuple__1203);
  __pyx_codeobj__531 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1203, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDevicePrimaryCtxRetain, 8707, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__531)) __PYX_ERR(0, 8707, __pyx_L1_error)

  /* "cuda/cuda.pyx":8769
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRelease(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Release the primary context on the GPU.
 * 
 */
  __pyx_tuple__1204 = PyTuple_Pack(2, __pyx_n_s_dev, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1204)) __PYX_ERR(0, 8769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1204);
  __Pyx_GIVEREF(__pyx_tuple__1204);
  __pyx_codeobj__532 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDevicePrimaryCtxRelease, 8769, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__532)) __PYX_ERR(0, 8769, __pyx_L1_error)

  /* "cuda/cuda.pyx":8820
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxSetFlags(dev not None : CUdevice, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set flags for the primary context.
 * 
 */
  __pyx_tuple__1205 = PyTuple_Pack(3, __pyx_n_s_dev, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1205)) __PYX_ERR(0, 8820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1205);
  __Pyx_GIVEREF(__pyx_tuple__1205);
  __pyx_codeobj__533 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDevicePrimaryCtxSetFlags, 8820, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__533)) __PYX_ERR(0, 8820, __pyx_L1_error)

  /* "cuda/cuda.pyx":8889
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxGetState(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Get the state of the primary context.
 * 
 */
  __pyx_tuple__1206 = PyTuple_Pack(4, __pyx_n_s_dev, __pyx_n_s_flags_2, __pyx_n_s_active, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1206)) __PYX_ERR(0, 8889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1206);
  __Pyx_GIVEREF(__pyx_tuple__1206);
  __pyx_codeobj__534 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDevicePrimaryCtxGetState, 8889, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__534)) __PYX_ERR(0, 8889, __pyx_L1_error)

  /* "cuda/cuda.pyx":8926
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxReset(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Destroy all allocations and reset all state on the primary context.
 * 
 */
  __pyx_tuple__1207 = PyTuple_Pack(2, __pyx_n_s_dev, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1207)) __PYX_ERR(0, 8926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1207);
  __Pyx_GIVEREF(__pyx_tuple__1207);
  __pyx_codeobj__535 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDevicePrimaryCtxReset, 8926, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__535)) __PYX_ERR(0, 8926, __pyx_L1_error)

  /* "cuda/cuda.pyx":8976
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetExecAffinitySupport(typename not None : CUexecAffinityType, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the execution affinity support of the device.
 * 
 */
  __pyx_tuple__1208 = PyTuple_Pack(5, __pyx_n_s_typename, __pyx_n_s_dev, __pyx_n_s_pi, __pyx_n_s_ctypename, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1208)) __PYX_ERR(0, 8976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1208);
  __Pyx_GIVEREF(__pyx_tuple__1208);
  __pyx_codeobj__536 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetExecAffinitySupport, 8976, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__536)) __PYX_ERR(0, 8976, __pyx_L1_error)

  /* "cuda/cuda.pyx":9019
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate(unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context.
 * 
 */
  __pyx_tuple__1209 = PyTuple_Pack(4, __pyx_n_s_flags_2, __pyx_n_s_dev, __pyx_n_s_pctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1209)) __PYX_ERR(0, 9019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1209);
  __Pyx_GIVEREF(__pyx_tuple__1209);
  __pyx_codeobj__537 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1209, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxCreate, 9019, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__537)) __PYX_ERR(0, 9019, __pyx_L1_error)

  /* "cuda/cuda.pyx":9112
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate_v3(paramsArray : List[CUexecAffinityParam], int numParams, unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context with execution affinity.
 * 
 */
  __pyx_tuple__1210 = PyTuple_Pack(10, __pyx_n_s_paramsArray_2, __pyx_n_s_numParams, __pyx_n_s_flags_2, __pyx_n_s_dev, __pyx_n_s_pctx, __pyx_n_s_cparamsArray, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1210)) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1210);
  __Pyx_GIVEREF(__pyx_tuple__1210);
  __pyx_codeobj__538 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxCreate_v3, 9112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__538)) __PYX_ERR(0, 9112, __pyx_L1_error)

  /* "cuda/cuda.pyx":9241
 * 
 * @cython.embedsignature(True)
 * def cuCtxDestroy(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Destroy a CUDA context.
 * 
 */
  __pyx_tuple__1211 = PyTuple_Pack(2, __pyx_n_s_ctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1211)) __PYX_ERR(0, 9241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1211);
  __Pyx_GIVEREF(__pyx_tuple__1211);
  __pyx_codeobj__540 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1211, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxDestroy, 9241, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__540)) __PYX_ERR(0, 9241, __pyx_L1_error)

  /* "cuda/cuda.pyx":9298
 * 
 * @cython.embedsignature(True)
 * def cuCtxPushCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Pushes a context on the current CPU thread.
 * 
 */
  __pyx_tuple__1212 = PyTuple_Pack(2, __pyx_n_s_ctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1212)) __PYX_ERR(0, 9298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1212);
  __Pyx_GIVEREF(__pyx_tuple__1212);
  __pyx_codeobj__541 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1212, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxPushCurrent, 9298, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__541)) __PYX_ERR(0, 9298, __pyx_L1_error)

  /* "cuda/cuda.pyx":9343
 * 
 * @cython.embedsignature(True)
 * def cuCtxPopCurrent():             # <<<<<<<<<<<<<<
 *     """ Pops the current CUDA context from the current CPU thread.
 * 
 */
  __pyx_tuple__1213 = PyTuple_Pack(2, __pyx_n_s_pctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1213)) __PYX_ERR(0, 9343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1213);
  __Pyx_GIVEREF(__pyx_tuple__1213);
  __pyx_codeobj__542 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxPopCurrent, 9343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__542)) __PYX_ERR(0, 9343, __pyx_L1_error)

  /* "cuda/cuda.pyx":9383
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Binds the specified CUDA context to the calling CPU thread.
 * 
 */
  __pyx_tuple__1214 = PyTuple_Pack(2, __pyx_n_s_ctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1214)) __PYX_ERR(0, 9383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1214);
  __Pyx_GIVEREF(__pyx_tuple__1214);
  __pyx_codeobj__543 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1214, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxSetCurrent, 9383, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__543)) __PYX_ERR(0, 9383, __pyx_L1_error)

  /* "cuda/cuda.pyx":9422
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCurrent():             # <<<<<<<<<<<<<<
 *     """ Returns the CUDA context bound to the calling CPU thread.
 * 
 */
  __pyx_tuple__1215 = PyTuple_Pack(2, __pyx_n_s_pctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1215)) __PYX_ERR(0, 9422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1215);
  __Pyx_GIVEREF(__pyx_tuple__1215);
  __pyx_codeobj__544 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetCurrent, 9422, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__544)) __PYX_ERR(0, 9422, __pyx_L1_error)

  /* "cuda/cuda.pyx":9450
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetDevice():             # <<<<<<<<<<<<<<
 *     """ Returns the device ID for the current context.
 * 
 */
  __pyx_tuple__1216 = PyTuple_Pack(2, __pyx_n_s_device, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1216)) __PYX_ERR(0, 9450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1216);
  __Pyx_GIVEREF(__pyx_tuple__1216);
  __pyx_codeobj__545 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1216, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetDevice, 9450, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__545)) __PYX_ERR(0, 9450, __pyx_L1_error)

  /* "cuda/cuda.pyx":9486
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetFlags():             # <<<<<<<<<<<<<<
 *     """ Returns the flags for the current context.
 * 
 */
  __pyx_tuple__1217 = PyTuple_Pack(2, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1217)) __PYX_ERR(0, 9486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1217);
  __Pyx_GIVEREF(__pyx_tuple__1217);
  __pyx_codeobj__546 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetFlags, 9486, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__546)) __PYX_ERR(0, 9486, __pyx_L1_error)

  /* "cuda/cuda.pyx":9520
 * 
 * @cython.embedsignature(True)
 * def cuCtxSynchronize():             # <<<<<<<<<<<<<<
 *     """ Block for a context's tasks to complete.
 * 
 */
  __pyx_tuple__1218 = PyTuple_Pack(1, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1218)) __PYX_ERR(0, 9520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1218);
  __Pyx_GIVEREF(__pyx_tuple__1218);
  __pyx_codeobj__547 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxSynchronize, 9520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__547)) __PYX_ERR(0, 9520, __pyx_L1_error)

  /* "cuda/cuda.pyx":9558
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetLimit(limit not None : CUlimit, size_t value):             # <<<<<<<<<<<<<<
 *     """ Set resource limits.
 * 
 */
  __pyx_tuple__1219 = PyTuple_Pack(4, __pyx_n_s_limit, __pyx_n_s_value, __pyx_n_s_climit, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1219)) __PYX_ERR(0, 9558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1219);
  __Pyx_GIVEREF(__pyx_tuple__1219);
  __pyx_codeobj__548 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxSetLimit, 9558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__548)) __PYX_ERR(0, 9558, __pyx_L1_error)

  /* "cuda/cuda.pyx":9663
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetLimit(limit not None : CUlimit):             # <<<<<<<<<<<<<<
 *     """ Returns resource limits.
 * 
 */
  __pyx_tuple__1220 = PyTuple_Pack(4, __pyx_n_s_limit, __pyx_n_s_pvalue, __pyx_n_s_climit, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1220)) __PYX_ERR(0, 9663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1220);
  __Pyx_GIVEREF(__pyx_tuple__1220);
  __pyx_codeobj__549 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1220, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetLimit, 9663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__549)) __PYX_ERR(0, 9663, __pyx_L1_error)

  /* "cuda/cuda.pyx":9714
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCacheConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the preferred cache configuration for the current context.
 * 
 */
  __pyx_tuple__1221 = PyTuple_Pack(2, __pyx_n_s_pconfig, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1221)) __PYX_ERR(0, 9714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1221);
  __Pyx_GIVEREF(__pyx_tuple__1221);
  __pyx_codeobj__550 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1221, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetCacheConfig, 9714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__550)) __PYX_ERR(0, 9714, __pyx_L1_error)

  /* "cuda/cuda.pyx":9765
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCacheConfig(config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for the current context.
 * 
 */
  __pyx_tuple__1222 = PyTuple_Pack(3, __pyx_n_s_config, __pyx_n_s_cconfig, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1222)) __PYX_ERR(0, 9765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1222);
  __Pyx_GIVEREF(__pyx_tuple__1222);
  __pyx_codeobj__551 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1222, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxSetCacheConfig, 9765, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__551)) __PYX_ERR(0, 9765, __pyx_L1_error)

  /* "cuda/cuda.pyx":9829
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetSharedMemConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the current shared memory configuration for the current context.
 * 
 */
  __pyx_tuple__1223 = PyTuple_Pack(2, __pyx_n_s_pConfig, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1223)) __PYX_ERR(0, 9829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1223);
  __Pyx_GIVEREF(__pyx_tuple__1223);
  __pyx_codeobj__552 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetSharedMemConfig, 9829, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__552)) __PYX_ERR(0, 9829, __pyx_L1_error)

  /* "cuda/cuda.pyx":9878
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetSharedMemConfig(config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for the current context.
 * 
 */
  __pyx_tuple__1224 = PyTuple_Pack(3, __pyx_n_s_config, __pyx_n_s_cconfig, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1224)) __PYX_ERR(0, 9878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1224);
  __Pyx_GIVEREF(__pyx_tuple__1224);
  __pyx_codeobj__553 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxSetSharedMemConfig, 9878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__553)) __PYX_ERR(0, 9878, __pyx_L1_error)

  /* "cuda/cuda.pyx":9942
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetApiVersion(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Gets the context's API version.
 * 
 */
  __pyx_tuple__1225 = PyTuple_Pack(3, __pyx_n_s_ctx, __pyx_n_s_version, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1225)) __PYX_ERR(0, 9942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1225);
  __Pyx_GIVEREF(__pyx_tuple__1225);
  __pyx_codeobj__554 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1225, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetApiVersion, 9942, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__554)) __PYX_ERR(0, 9942, __pyx_L1_error)

  /* "cuda/cuda.pyx":9990
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetStreamPriorityRange():             # <<<<<<<<<<<<<<
 *     """ Returns numerical values that correspond to the least and greatest stream priorities.
 * 
 */
  __pyx_tuple__1226 = PyTuple_Pack(3, __pyx_n_s_leastPriority, __pyx_n_s_greatestPriority, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1226)) __PYX_ERR(0, 9990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1226);
  __Pyx_GIVEREF(__pyx_tuple__1226);
  __pyx_codeobj__555 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetStreamPriorityRange, 9990, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__555)) __PYX_ERR(0, 9990, __pyx_L1_error)

  /* "cuda/cuda.pyx":10037
 * 
 * @cython.embedsignature(True)
 * def cuCtxResetPersistingL2Cache():             # <<<<<<<<<<<<<<
 *     """ Resets all persisting lines in cache to normal status.
 * 
 */
  __pyx_tuple__1227 = PyTuple_Pack(1, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1227)) __PYX_ERR(0, 10037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1227);
  __Pyx_GIVEREF(__pyx_tuple__1227);
  __pyx_codeobj__556 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1227, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxResetPersistingL2Cache, 10037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__556)) __PYX_ERR(0, 10037, __pyx_L1_error)

  /* "cuda/cuda.pyx":10055
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetExecAffinity(typename not None : CUexecAffinityType):             # <<<<<<<<<<<<<<
 *     """ Returns the execution affinity setting for the current context.
 * 
 */
  __pyx_tuple__1228 = PyTuple_Pack(4, __pyx_n_s_typename, __pyx_n_s_pExecAffinity, __pyx_n_s_ctypename, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1228)) __PYX_ERR(0, 10055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1228);
  __Pyx_GIVEREF(__pyx_tuple__1228);
  __pyx_codeobj__557 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxGetExecAffinity, 10055, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__557)) __PYX_ERR(0, 10055, __pyx_L1_error)

  /* "cuda/cuda.pyx":10086
 * 
 * @cython.embedsignature(True)
 * def cuCtxAttach(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Increment a context's usage-count.
 * 
 */
  __pyx_tuple__1229 = PyTuple_Pack(4, __pyx_n_s_flags_2, __pyx_n_s_flags_2, __pyx_n_s_pctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1229)) __PYX_ERR(0, 10086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1229);
  __Pyx_GIVEREF(__pyx_tuple__1229);
  __pyx_codeobj__558 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1229, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxAttach, 10086, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__558)) __PYX_ERR(0, 10086, __pyx_L1_error)

  /* "cuda/cuda.pyx":10137
 * 
 * @cython.embedsignature(True)
 * def cuCtxDetach(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Decrement a context's usage-count.
 * 
 */
  __pyx_tuple__1230 = PyTuple_Pack(2, __pyx_n_s_ctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1230)) __PYX_ERR(0, 10137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1230);
  __Pyx_GIVEREF(__pyx_tuple__1230);
  __pyx_codeobj__559 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxDetach, 10137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__559)) __PYX_ERR(0, 10137, __pyx_L1_error)

  /* "cuda/cuda.pyx":10183
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoad(char* fname):             # <<<<<<<<<<<<<<
 *     """ Loads a compute module.
 * 
 */
  __pyx_tuple__1231 = PyTuple_Pack(4, __pyx_n_s_fname, __pyx_n_s_fname, __pyx_n_s_module_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1231)) __PYX_ERR(0, 10183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1231);
  __Pyx_GIVEREF(__pyx_tuple__1231);
  __pyx_codeobj__560 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1231, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleLoad, 10183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__560)) __PYX_ERR(0, 10183, __pyx_L1_error)

  /* "cuda/cuda.pyx":10234
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadData(image):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */
  __pyx_tuple__1232 = PyTuple_Pack(5, __pyx_n_s_image, __pyx_n_s_module_2, __pyx_n_s_cimage, __pyx_n_s_cimage_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1232)) __PYX_ERR(0, 10234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1232);
  __Pyx_GIVEREF(__pyx_tuple__1232);
  __pyx_codeobj__561 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleLoadData, 10234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__561)) __PYX_ERR(0, 10234, __pyx_L1_error)

  /* "cuda/cuda.pyx":10284
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadDataEx(image, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Load a module's data with options.
 * 
 */
  __pyx_tuple__1233 = PyTuple_Pack(16, __pyx_n_s_image, __pyx_n_s_numOptions, __pyx_n_s_options, __pyx_n_s_optionValues, __pyx_n_s_module_2, __pyx_n_s_cimage, __pyx_n_s_cimage_ptr, __pyx_n_s_coptions, __pyx_n_s_pylist, __pyx_n_s_voidStarHelper, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_pyoptions, __pyx_n_s_pyoptions, __pyx_n_s_pyoptionValues); if (unlikely(!__pyx_tuple__1233)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1233);
  __Pyx_GIVEREF(__pyx_tuple__1233);
  __pyx_codeobj__562 = (PyObject*)__Pyx_PyCode_New(4, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1233, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleLoadDataEx, 10284, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__562)) __PYX_ERR(0, 10284, __pyx_L1_error)

  /* "cuda/cuda.pyx":10351
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadFatBinary(fatCubin):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */
  __pyx_tuple__1234 = PyTuple_Pack(5, __pyx_n_s_fatCubin, __pyx_n_s_module_2, __pyx_n_s_cfatCubin, __pyx_n_s_cfatCubin_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1234)) __PYX_ERR(0, 10351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1234);
  __Pyx_GIVEREF(__pyx_tuple__1234);
  __pyx_codeobj__565 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleLoadFatBinary, 10351, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__565)) __PYX_ERR(0, 10351, __pyx_L1_error)

  /* "cuda/cuda.pyx":10406
 * 
 * @cython.embedsignature(True)
 * def cuModuleUnload(hmod not None : CUmodule):             # <<<<<<<<<<<<<<
 *     """ Unloads a module.
 * 
 */
  __pyx_tuple__1235 = PyTuple_Pack(2, __pyx_n_s_hmod, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1235)) __PYX_ERR(0, 10406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1235);
  __Pyx_GIVEREF(__pyx_tuple__1235);
  __pyx_codeobj__566 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1235, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleUnload, 10406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__566)) __PYX_ERR(0, 10406, __pyx_L1_error)

  /* "cuda/cuda.pyx":10441
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetFunction(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a function handle.
 * 
 */
  __pyx_tuple__1236 = PyTuple_Pack(4, __pyx_n_s_hmod, __pyx_n_s_name_2, __pyx_n_s_hfunc, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1236)) __PYX_ERR(0, 10441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1236);
  __Pyx_GIVEREF(__pyx_tuple__1236);
  __pyx_codeobj__567 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleGetFunction, 10441, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__567)) __PYX_ERR(0, 10441, __pyx_L1_error)

  /* "cuda/cuda.pyx":10482
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetGlobal(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a global pointer from a module.
 * 
 */
  __pyx_tuple__1237 = PyTuple_Pack(5, __pyx_n_s_hmod, __pyx_n_s_name_2, __pyx_n_s_dptr_2, __pyx_n_s_numbytes, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1237)) __PYX_ERR(0, 10482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1237);
  __Pyx_GIVEREF(__pyx_tuple__1237);
  __pyx_codeobj__568 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1237, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleGetGlobal, 10482, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__568)) __PYX_ERR(0, 10482, __pyx_L1_error)

  /* "cuda/cuda.pyx":10530
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetTexRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a texture reference.
 * 
 */
  __pyx_tuple__1238 = PyTuple_Pack(4, __pyx_n_s_hmod, __pyx_n_s_name_2, __pyx_n_s_pTexRef, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1238)) __PYX_ERR(0, 10530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1238);
  __Pyx_GIVEREF(__pyx_tuple__1238);
  __pyx_codeobj__569 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleGetTexRef, 10530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__569)) __PYX_ERR(0, 10530, __pyx_L1_error)

  /* "cuda/cuda.pyx":10575
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetSurfRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a surface reference.
 * 
 */
  __pyx_tuple__1239 = PyTuple_Pack(4, __pyx_n_s_hmod, __pyx_n_s_name_2, __pyx_n_s_pSurfRef, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1239)) __PYX_ERR(0, 10575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1239);
  __Pyx_GIVEREF(__pyx_tuple__1239);
  __pyx_codeobj__570 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1239, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuModuleGetSurfRef, 10575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__570)) __PYX_ERR(0, 10575, __pyx_L1_error)

  /* "cuda/cuda.pyx":10618
 * 
 * @cython.embedsignature(True)
 * def cuLinkCreate(unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Creates a pending JIT linker invocation.
 * 
 */
  __pyx_tuple__1240 = PyTuple_Pack(14, __pyx_n_s_numOptions, __pyx_n_s_options, __pyx_n_s_optionValues, __pyx_n_s_coptions, __pyx_n_s_pylist, __pyx_n_s_voidStarHelper, __pyx_n_s_stateOut, __pyx_n_s_err, __pyx_n_s_option, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_pyoptions, __pyx_n_s_pyoptions, __pyx_n_s_pyoptionValues); if (unlikely(!__pyx_tuple__1240)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1240);
  __Pyx_GIVEREF(__pyx_tuple__1240);
  __pyx_codeobj__571 = (PyObject*)__Pyx_PyCode_New(3, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1240, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLinkCreate, 10618, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__571)) __PYX_ERR(0, 10618, __pyx_L1_error)

  /* "cuda/cuda.pyx":10682
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddData(state not None : CUlinkState, typename not None : CUjitInputType, data, size_t size, char* name, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add an input to a pending linker invocation.
 * 
 */
  __pyx_tuple__1241 = PyTuple_Pack(20, __pyx_n_s_state, __pyx_n_s_typename, __pyx_n_s_data, __pyx_n_s_size_2, __pyx_n_s_name_2, __pyx_n_s_numOptions, __pyx_n_s_options, __pyx_n_s_optionValues, __pyx_n_s_ctypename, __pyx_n_s_cdata, __pyx_n_s_cdata_ptr, __pyx_n_s_coptions, __pyx_n_s_pylist, __pyx_n_s_voidStarHelper, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_pyoptions, __pyx_n_s_pyoptions, __pyx_n_s_pyoptionValues); if (unlikely(!__pyx_tuple__1241)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1241);
  __Pyx_GIVEREF(__pyx_tuple__1241);
  __pyx_codeobj__572 = (PyObject*)__Pyx_PyCode_New(8, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLinkAddData, 10682, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__572)) __PYX_ERR(0, 10682, __pyx_L1_error)

  /* "cuda/cuda.pyx":10749
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddFile(state not None : CUlinkState, typename not None : CUjitInputType, char* path, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add a file input to a pending linker invocation.
 * 
 */
  __pyx_tuple__1242 = PyTuple_Pack(16, __pyx_n_s_state, __pyx_n_s_typename, __pyx_n_s_path, __pyx_n_s_numOptions, __pyx_n_s_options, __pyx_n_s_optionValues, __pyx_n_s_ctypename, __pyx_n_s_coptions, __pyx_n_s_pylist, __pyx_n_s_voidStarHelper, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_pyoptions, __pyx_n_s_pyoptions, __pyx_n_s_pyoptionValues); if (unlikely(!__pyx_tuple__1242)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1242);
  __Pyx_GIVEREF(__pyx_tuple__1242);
  __pyx_codeobj__573 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLinkAddFile, 10749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__573)) __PYX_ERR(0, 10749, __pyx_L1_error)

  /* "cuda/cuda.pyx":10813
 * 
 * @cython.embedsignature(True)
 * def cuLinkComplete(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Complete a pending linker invocation.
 * 
 */
  __pyx_tuple__1243 = PyTuple_Pack(4, __pyx_n_s_state, __pyx_n_s_cubinOut, __pyx_n_s_sizeOut, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1243)) __PYX_ERR(0, 10813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1243);
  __Pyx_GIVEREF(__pyx_tuple__1243);
  __pyx_codeobj__574 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLinkComplete, 10813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__574)) __PYX_ERR(0, 10813, __pyx_L1_error)

  /* "cuda/cuda.pyx":10851
 * 
 * @cython.embedsignature(True)
 * def cuLinkDestroy(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Destroys state for a JIT linker invocation.
 * 
 */
  __pyx_tuple__1244 = PyTuple_Pack(2, __pyx_n_s_state, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1244)) __PYX_ERR(0, 10851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1244);
  __Pyx_GIVEREF(__pyx_tuple__1244);
  __pyx_codeobj__575 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLinkDestroy, 10851, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__575)) __PYX_ERR(0, 10851, __pyx_L1_error)

  /* "cuda/cuda.pyx":10875
 * 
 * @cython.embedsignature(True)
 * def cuMemGetInfo():             # <<<<<<<<<<<<<<
 *     """ Gets free and total memory.
 * 
 */
  __pyx_tuple__1245 = PyTuple_Pack(3, __pyx_n_s_free, __pyx_n_s_total, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1245)) __PYX_ERR(0, 10875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1245);
  __Pyx_GIVEREF(__pyx_tuple__1245);
  __pyx_codeobj__576 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1245, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemGetInfo, 10875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__576)) __PYX_ERR(0, 10875, __pyx_L1_error)

  /* "cuda/cuda.pyx":10943
 * 
 * @cython.embedsignature(True)
 * def cuMemAlloc(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates device memory.
 * 
 */
  __pyx_tuple__1246 = PyTuple_Pack(4, __pyx_n_s_bytesize_2, __pyx_n_s_bytesize_2, __pyx_n_s_dptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1246)) __PYX_ERR(0, 10943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1246);
  __Pyx_GIVEREF(__pyx_tuple__1246);
  __pyx_codeobj__577 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1246, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAlloc, 10943, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__577)) __PYX_ERR(0, 10943, __pyx_L1_error)

  /* "cuda/cuda.pyx":11014
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocPitch(size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes):             # <<<<<<<<<<<<<<
 *     """ Allocates pitched device memory.
 * 
 */
  __pyx_tuple__1247 = PyTuple_Pack(6, __pyx_n_s_WidthInBytes_2, __pyx_n_s_Height_2, __pyx_n_s_ElementSizeBytes, __pyx_n_s_dptr_2, __pyx_n_s_pPitch, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1247)) __PYX_ERR(0, 11014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1247);
  __Pyx_GIVEREF(__pyx_tuple__1247);
  __pyx_codeobj__578 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1247, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAllocPitch, 11014, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__578)) __PYX_ERR(0, 11014, __pyx_L1_error)

  /* "cuda/cuda.pyx":11116
 * 
 * @cython.embedsignature(True)
 * def cuMemFree(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Frees device memory.
 * 
 */
  __pyx_tuple__1248 = PyTuple_Pack(2, __pyx_n_s_dptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1248)) __PYX_ERR(0, 11116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1248);
  __Pyx_GIVEREF(__pyx_tuple__1248);
  __pyx_codeobj__579 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1248, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemFree, 11116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__579)) __PYX_ERR(0, 11116, __pyx_L1_error)

  /* "cuda/cuda.pyx":11183
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAddressRange(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get information on memory allocations.
 * 
 */
  __pyx_tuple__1249 = PyTuple_Pack(4, __pyx_n_s_dptr_2, __pyx_n_s_pbase, __pyx_n_s_psize, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1249)) __PYX_ERR(0, 11183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1249);
  __Pyx_GIVEREF(__pyx_tuple__1249);
  __pyx_codeobj__580 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemGetAddressRange, 11183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__580)) __PYX_ERR(0, 11183, __pyx_L1_error)

  /* "cuda/cuda.pyx":11256
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocHost(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */
  __pyx_tuple__1250 = PyTuple_Pack(4, __pyx_n_s_bytesize_2, __pyx_n_s_bytesize_2, __pyx_n_s_pp, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1250)) __PYX_ERR(0, 11256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1250);
  __Pyx_GIVEREF(__pyx_tuple__1250);
  __pyx_codeobj__581 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1250, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAllocHost, 11256, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__581)) __PYX_ERR(0, 11256, __pyx_L1_error)

  /* "cuda/cuda.pyx":11342
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeHost(p):             # <<<<<<<<<<<<<<
 *     """ Frees page-locked host memory.
 * 
 */
  __pyx_tuple__1251 = PyTuple_Pack(4, __pyx_n_s_p, __pyx_n_s_cp, __pyx_n_s_cp_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1251)) __PYX_ERR(0, 11342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1251);
  __Pyx_GIVEREF(__pyx_tuple__1251);
  __pyx_codeobj__582 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemFreeHost, 11342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__582)) __PYX_ERR(0, 11342, __pyx_L1_error)

  /* "cuda/cuda.pyx":11411
 * 
 * @cython.embedsignature(True)
 * def cuMemHostAlloc(size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */
  __pyx_tuple__1252 = PyTuple_Pack(4, __pyx_n_s_bytesize_2, __pyx_n_s_Flags_2, __pyx_n_s_pp, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1252)) __PYX_ERR(0, 11411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1252);
  __Pyx_GIVEREF(__pyx_tuple__1252);
  __pyx_codeobj__583 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1252, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemHostAlloc, 11411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__583)) __PYX_ERR(0, 11411, __pyx_L1_error)

  /* "cuda/cuda.pyx":11530
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetDevicePointer(p, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Passes back device pointer of mapped pinned memory.
 * 
 */
  __pyx_tuple__1253 = PyTuple_Pack(6, __pyx_n_s_p, __pyx_n_s_Flags_2, __pyx_n_s_pdptr, __pyx_n_s_cp, __pyx_n_s_cp_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1253)) __PYX_ERR(0, 11530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1253);
  __Pyx_GIVEREF(__pyx_tuple__1253);
  __pyx_codeobj__584 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1253, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemHostGetDevicePointer, 11530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__584)) __PYX_ERR(0, 11530, __pyx_L1_error)

  /* "cuda/cuda.pyx":11625
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetFlags(p):             # <<<<<<<<<<<<<<
 *     """ Passes back flags that were used for a pinned allocation.
 * 
 */
  __pyx_tuple__1254 = PyTuple_Pack(5, __pyx_n_s_p, __pyx_n_s_pFlags, __pyx_n_s_cp, __pyx_n_s_cp_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1254)) __PYX_ERR(0, 11625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1254);
  __Pyx_GIVEREF(__pyx_tuple__1254);
  __pyx_codeobj__585 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1254, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemHostGetFlags, 11625, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__585)) __PYX_ERR(0, 11625, __pyx_L1_error)

  /* "cuda/cuda.pyx":11663
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocManaged(size_t bytesize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Allocates memory that will be automatically managed by the Unified Memory system.
 * 
 */
  __pyx_tuple__1255 = PyTuple_Pack(4, __pyx_n_s_bytesize_2, __pyx_n_s_flags_2, __pyx_n_s_dptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1255)) __PYX_ERR(0, 11663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1255);
  __Pyx_GIVEREF(__pyx_tuple__1255);
  __pyx_codeobj__586 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1255, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAllocManaged, 11663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__586)) __PYX_ERR(0, 11663, __pyx_L1_error)

  /* "cuda/cuda.pyx":11826
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetByPCIBusId(char* pciBusId):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */
  __pyx_tuple__1256 = PyTuple_Pack(4, __pyx_n_s_pciBusId, __pyx_n_s_pciBusId, __pyx_n_s_dev, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1256)) __PYX_ERR(0, 11826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1256);
  __Pyx_GIVEREF(__pyx_tuple__1256);
  __pyx_codeobj__587 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetByPCIBusId, 11826, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__587)) __PYX_ERR(0, 11826, __pyx_L1_error)

  /* "cuda/cuda.pyx":11859
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetPCIBusId(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns a PCI Bus Id string for the device.
 * 
 */
  __pyx_tuple__1257 = PyTuple_Pack(4, __pyx_n_s_length, __pyx_n_s_dev, __pyx_n_s_pciBusId, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1257)) __PYX_ERR(0, 11859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1257);
  __Pyx_GIVEREF(__pyx_tuple__1257);
  __pyx_codeobj__588 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1257, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetPCIBusId, 11859, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__588)) __PYX_ERR(0, 11859, __pyx_L1_error)

  /* "cuda/cuda.pyx":11896
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetEventHandle(event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess handle for a previously allocated event.
 * 
 */
  __pyx_tuple__1258 = PyTuple_Pack(3, __pyx_n_s_event, __pyx_n_s_pHandle, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1258)) __PYX_ERR(0, 11896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1258);
  __Pyx_GIVEREF(__pyx_tuple__1258);
  __pyx_codeobj__589 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuIpcGetEventHandle, 11896, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__589)) __PYX_ERR(0, 11896, __pyx_L1_error)

  /* "cuda/cuda.pyx":11951
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenEventHandle(handle not None : CUipcEventHandle):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess event handle for use in the current process.
 * 
 */
  __pyx_tuple__1259 = PyTuple_Pack(3, __pyx_n_s_handle_2, __pyx_n_s_phEvent, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1259)) __PYX_ERR(0, 11951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1259);
  __Pyx_GIVEREF(__pyx_tuple__1259);
  __pyx_codeobj__590 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1259, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuIpcOpenEventHandle, 11951, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__590)) __PYX_ERR(0, 11951, __pyx_L1_error)

  /* "cuda/cuda.pyx":12001
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess memory handle for an existing device memory allocation.
 * 
 */
  __pyx_tuple__1260 = PyTuple_Pack(3, __pyx_n_s_dptr_2, __pyx_n_s_pHandle, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1260)) __PYX_ERR(0, 12001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1260);
  __Pyx_GIVEREF(__pyx_tuple__1260);
  __pyx_codeobj__591 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuIpcGetMemHandle, 12001, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__591)) __PYX_ERR(0, 12001, __pyx_L1_error)

  /* "cuda/cuda.pyx":12049
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenMemHandle(handle not None : CUipcMemHandle, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess memory handle exported from another process and returns a device pointer usable in the local process.
 * 
 */
  __pyx_tuple__1261 = PyTuple_Pack(4, __pyx_n_s_handle_2, __pyx_n_s_Flags_2, __pyx_n_s_pdptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1261)) __PYX_ERR(0, 12049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1261);
  __Pyx_GIVEREF(__pyx_tuple__1261);
  __pyx_codeobj__592 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1261, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuIpcOpenMemHandle, 12049, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__592)) __PYX_ERR(0, 12049, __pyx_L1_error)

  /* "cuda/cuda.pyx":12120
 * 
 * @cython.embedsignature(True)
 * def cuIpcCloseMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Attempts to close memory mapped with cuIpcOpenMemHandle.
 * 
 */
  __pyx_tuple__1262 = PyTuple_Pack(2, __pyx_n_s_dptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1262)) __PYX_ERR(0, 12120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1262);
  __Pyx_GIVEREF(__pyx_tuple__1262);
  __pyx_codeobj__593 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuIpcCloseMemHandle, 12120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__593)) __PYX_ERR(0, 12120, __pyx_L1_error)

  /* "cuda/cuda.pyx":12165
 * 
 * @cython.embedsignature(True)
 * def cuMemHostRegister(p, size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Registers an existing host memory range for use by CUDA.
 * 
 */
  __pyx_tuple__1263 = PyTuple_Pack(6, __pyx_n_s_p, __pyx_n_s_bytesize_2, __pyx_n_s_Flags_2, __pyx_n_s_cp, __pyx_n_s_cp_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1263)) __PYX_ERR(0, 12165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1263);
  __Pyx_GIVEREF(__pyx_tuple__1263);
  __pyx_codeobj__594 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1263, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemHostRegister, 12165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__594)) __PYX_ERR(0, 12165, __pyx_L1_error)

  /* "cuda/cuda.pyx":12268
 * 
 * @cython.embedsignature(True)
 * def cuMemHostUnregister(p):             # <<<<<<<<<<<<<<
 *     """ Unregisters a memory range that was registered with cuMemHostRegister.
 * 
 */
  __pyx_tuple__1264 = PyTuple_Pack(4, __pyx_n_s_p, __pyx_n_s_cp, __pyx_n_s_cp_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1264)) __PYX_ERR(0, 12268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1264);
  __Pyx_GIVEREF(__pyx_tuple__1264);
  __pyx_codeobj__595 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemHostUnregister, 12268, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__595)) __PYX_ERR(0, 12268, __pyx_L1_error)

  /* "cuda/cuda.pyx":12305
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory.
 * 
 */
  __pyx_tuple__1265 = PyTuple_Pack(4, __pyx_n_s_dst_2, __pyx_n_s_src, __pyx_n_s_ByteCount, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1265)) __PYX_ERR(0, 12305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1265);
  __Pyx_GIVEREF(__pyx_tuple__1265);
  __pyx_codeobj__596 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1265, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy, 12305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__596)) __PYX_ERR(0, 12305, __pyx_L1_error)

  /* "cuda/cuda.pyx":12381
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeer(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts.
 * 
 */
  __pyx_tuple__1266 = PyTuple_Pack(6, __pyx_n_s_dstDevice_2, __pyx_n_s_dstContext_2, __pyx_n_s_srcDevice_2, __pyx_n_s_srcContext_2, __pyx_n_s_ByteCount, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1266)) __PYX_ERR(0, 12381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1266);
  __Pyx_GIVEREF(__pyx_tuple__1266);
  __pyx_codeobj__597 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyPeer, 12381, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__597)) __PYX_ERR(0, 12381, __pyx_L1_error)

  /* "cuda/cuda.pyx":12427
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoD(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */
  __pyx_tuple__1267 = PyTuple_Pack(6, __pyx_n_s_dstDevice_2, __pyx_n_s_srcHost_2, __pyx_n_s_ByteCount, __pyx_n_s_csrcHost, __pyx_n_s_csrcHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1267)) __PYX_ERR(0, 12427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1267);
  __Pyx_GIVEREF(__pyx_tuple__1267);
  __pyx_codeobj__598 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1267, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyHtoD, 12427, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__598)) __PYX_ERR(0, 12427, __pyx_L1_error)

  /* "cuda/cuda.pyx":12502
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoH(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */
  __pyx_tuple__1268 = PyTuple_Pack(6, __pyx_n_s_dstHost_2, __pyx_n_s_srcDevice_2, __pyx_n_s_ByteCount, __pyx_n_s_cdstHost, __pyx_n_s_cdstHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1268)) __PYX_ERR(0, 12502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1268);
  __Pyx_GIVEREF(__pyx_tuple__1268);
  __pyx_codeobj__599 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1268, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyDtoH, 12502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__599)) __PYX_ERR(0, 12502, __pyx_L1_error)

  /* "cuda/cuda.pyx":12577
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoD(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */
  __pyx_tuple__1269 = PyTuple_Pack(4, __pyx_n_s_dstDevice_2, __pyx_n_s_srcDevice_2, __pyx_n_s_ByteCount, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1269)) __PYX_ERR(0, 12577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1269);
  __Pyx_GIVEREF(__pyx_tuple__1269);
  __pyx_codeobj__600 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyDtoD, 12577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__600)) __PYX_ERR(0, 12577, __pyx_L1_error)

  /* "cuda/cuda.pyx":12650
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoA(dstArray not None : CUarray, size_t dstOffset, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Array.
 * 
 */
  __pyx_tuple__1270 = PyTuple_Pack(5, __pyx_n_s_dstArray_2, __pyx_n_s_dstOffset, __pyx_n_s_srcDevice_2, __pyx_n_s_ByteCount, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1270)) __PYX_ERR(0, 12650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1270);
  __Pyx_GIVEREF(__pyx_tuple__1270);
  __pyx_codeobj__601 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1270, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyDtoA, 12650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__601)) __PYX_ERR(0, 12650, __pyx_L1_error)

  /* "cuda/cuda.pyx":12725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoD(dstDevice not None : CUdeviceptr, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Device.
 * 
 */
  __pyx_tuple__1271 = PyTuple_Pack(5, __pyx_n_s_dstDevice_2, __pyx_n_s_srcArray_2, __pyx_n_s_srcOffset, __pyx_n_s_ByteCount, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1271)) __PYX_ERR(0, 12725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1271);
  __Pyx_GIVEREF(__pyx_tuple__1271);
  __pyx_codeobj__602 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyAtoD, 12725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__602)) __PYX_ERR(0, 12725, __pyx_L1_error)

  /* "cuda/cuda.pyx":12802
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoA(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */
  __pyx_tuple__1272 = PyTuple_Pack(7, __pyx_n_s_dstArray_2, __pyx_n_s_dstOffset, __pyx_n_s_srcHost_2, __pyx_n_s_ByteCount, __pyx_n_s_csrcHost, __pyx_n_s_csrcHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1272)) __PYX_ERR(0, 12802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1272);
  __Pyx_GIVEREF(__pyx_tuple__1272);
  __pyx_codeobj__603 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1272, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyHtoA, 12802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__603)) __PYX_ERR(0, 12802, __pyx_L1_error)

  /* "cuda/cuda.pyx":12879
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoH(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */
  __pyx_tuple__1273 = PyTuple_Pack(7, __pyx_n_s_dstHost_2, __pyx_n_s_srcArray_2, __pyx_n_s_srcOffset, __pyx_n_s_ByteCount, __pyx_n_s_cdstHost, __pyx_n_s_cdstHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1273)) __PYX_ERR(0, 12879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1273);
  __Pyx_GIVEREF(__pyx_tuple__1273);
  __pyx_codeobj__604 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyAtoH, 12879, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__604)) __PYX_ERR(0, 12879, __pyx_L1_error)

  /* "cuda/cuda.pyx":12956
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoA(dstArray not None : CUarray, size_t dstOffset, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Array.
 * 
 */
  __pyx_tuple__1274 = PyTuple_Pack(6, __pyx_n_s_dstArray_2, __pyx_n_s_dstOffset, __pyx_n_s_srcArray_2, __pyx_n_s_srcOffset, __pyx_n_s_ByteCount, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1274)) __PYX_ERR(0, 12956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1274);
  __Pyx_GIVEREF(__pyx_tuple__1274);
  __pyx_codeobj__605 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1274, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyAtoA, 12956, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__605)) __PYX_ERR(0, 12956, __pyx_L1_error)

  /* "cuda/cuda.pyx":13036
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2D(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */
  __pyx_tuple__1275 = PyTuple_Pack(3, __pyx_n_s_pCopy, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1275)) __PYX_ERR(0, 13036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1275);
  __Pyx_GIVEREF(__pyx_tuple__1275);
  __pyx_codeobj__606 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy2D, 13036, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__606)) __PYX_ERR(0, 13036, __pyx_L1_error)

  /* "cuda/cuda.pyx":13180
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DUnaligned(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */
  __pyx_tuple__1276 = PyTuple_Pack(3, __pyx_n_s_pCopy, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1276)) __PYX_ERR(0, 13180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1276);
  __Pyx_GIVEREF(__pyx_tuple__1276);
  __pyx_codeobj__607 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1276, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy2DUnaligned, 13180, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__607)) __PYX_ERR(0, 13180, __pyx_L1_error)

  /* "cuda/cuda.pyx":13324
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3D(pCopy : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */
  __pyx_tuple__1277 = PyTuple_Pack(3, __pyx_n_s_pCopy, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1277)) __PYX_ERR(0, 13324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1277);
  __Pyx_GIVEREF(__pyx_tuple__1277);
  __pyx_codeobj__608 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1277, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy3D, 13324, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__608)) __PYX_ERR(0, 13324, __pyx_L1_error)

  /* "cuda/cuda.pyx":13469
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeer(pCopy : CUDA_MEMCPY3D_PEER):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts.
 * 
 */
  __pyx_tuple__1278 = PyTuple_Pack(3, __pyx_n_s_pCopy, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1278)) __PYX_ERR(0, 13469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1278);
  __Pyx_GIVEREF(__pyx_tuple__1278);
  __pyx_codeobj__609 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1278, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy3DPeer, 13469, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__609)) __PYX_ERR(0, 13469, __pyx_L1_error)

  /* "cuda/cuda.pyx":13506
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAsync(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory asynchronously.
 * 
 */
  __pyx_tuple__1279 = PyTuple_Pack(5, __pyx_n_s_dst_2, __pyx_n_s_src, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1279)) __PYX_ERR(0, 13506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1279);
  __Pyx_GIVEREF(__pyx_tuple__1279);
  __pyx_codeobj__610 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyAsync, 13506, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__610)) __PYX_ERR(0, 13506, __pyx_L1_error)

  /* "cuda/cuda.pyx":13592
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeerAsync(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts asynchronously.
 * 
 */
  __pyx_tuple__1280 = PyTuple_Pack(7, __pyx_n_s_dstDevice_2, __pyx_n_s_dstContext_2, __pyx_n_s_srcDevice_2, __pyx_n_s_srcContext_2, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1280)) __PYX_ERR(0, 13592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1280);
  __Pyx_GIVEREF(__pyx_tuple__1280);
  __pyx_codeobj__611 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1280, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyPeerAsync, 13592, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__611)) __PYX_ERR(0, 13592, __pyx_L1_error)

  /* "cuda/cuda.pyx":13641
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoDAsync(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */
  __pyx_tuple__1281 = PyTuple_Pack(7, __pyx_n_s_dstDevice_2, __pyx_n_s_srcHost_2, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_csrcHost, __pyx_n_s_csrcHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1281)) __PYX_ERR(0, 13641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1281);
  __Pyx_GIVEREF(__pyx_tuple__1281);
  __pyx_codeobj__612 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyHtoDAsync, 13641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__612)) __PYX_ERR(0, 13641, __pyx_L1_error)

  /* "cuda/cuda.pyx":13725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoHAsync(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */
  __pyx_tuple__1282 = PyTuple_Pack(7, __pyx_n_s_dstHost_2, __pyx_n_s_srcDevice_2, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_cdstHost, __pyx_n_s_cdstHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1282)) __PYX_ERR(0, 13725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1282);
  __Pyx_GIVEREF(__pyx_tuple__1282);
  __pyx_codeobj__613 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1282, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyDtoHAsync, 13725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__613)) __PYX_ERR(0, 13725, __pyx_L1_error)

  /* "cuda/cuda.pyx":13809
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoDAsync(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */
  __pyx_tuple__1283 = PyTuple_Pack(5, __pyx_n_s_dstDevice_2, __pyx_n_s_srcDevice_2, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1283)) __PYX_ERR(0, 13809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1283);
  __Pyx_GIVEREF(__pyx_tuple__1283);
  __pyx_codeobj__614 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyDtoDAsync, 13809, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__614)) __PYX_ERR(0, 13809, __pyx_L1_error)

  /* "cuda/cuda.pyx":13892
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoAAsync(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */
  __pyx_tuple__1284 = PyTuple_Pack(8, __pyx_n_s_dstArray_2, __pyx_n_s_dstOffset, __pyx_n_s_srcHost_2, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_csrcHost, __pyx_n_s_csrcHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1284)) __PYX_ERR(0, 13892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1284);
  __Pyx_GIVEREF(__pyx_tuple__1284);
  __pyx_codeobj__615 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1284, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyHtoAAsync, 13892, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__615)) __PYX_ERR(0, 13892, __pyx_L1_error)

  /* "cuda/cuda.pyx":13978
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoHAsync(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */
  __pyx_tuple__1285 = PyTuple_Pack(8, __pyx_n_s_dstHost_2, __pyx_n_s_srcArray_2, __pyx_n_s_srcOffset, __pyx_n_s_ByteCount, __pyx_n_s_hStream_2, __pyx_n_s_cdstHost, __pyx_n_s_cdstHost_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1285)) __PYX_ERR(0, 13978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1285);
  __Pyx_GIVEREF(__pyx_tuple__1285);
  __pyx_codeobj__616 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpyAtoHAsync, 13978, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__616)) __PYX_ERR(0, 13978, __pyx_L1_error)

  /* "cuda/cuda.pyx":14064
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DAsync(pCopy : CUDA_MEMCPY2D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */
  __pyx_tuple__1286 = PyTuple_Pack(4, __pyx_n_s_pCopy, __pyx_n_s_hStream_2, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1286)) __PYX_ERR(0, 14064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1286);
  __Pyx_GIVEREF(__pyx_tuple__1286);
  __pyx_codeobj__617 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy2DAsync, 14064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__617)) __PYX_ERR(0, 14064, __pyx_L1_error)

  /* "cuda/cuda.pyx":14215
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DAsync(pCopy : CUDA_MEMCPY3D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */
  __pyx_tuple__1287 = PyTuple_Pack(4, __pyx_n_s_pCopy, __pyx_n_s_hStream_2, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1287)) __PYX_ERR(0, 14215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1287);
  __Pyx_GIVEREF(__pyx_tuple__1287);
  __pyx_codeobj__618 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy3DAsync, 14215, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__618)) __PYX_ERR(0, 14215, __pyx_L1_error)

  /* "cuda/cuda.pyx":14369
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeerAsync(pCopy : CUDA_MEMCPY3D_PEER, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts asynchronously.
 * 
 */
  __pyx_tuple__1288 = PyTuple_Pack(4, __pyx_n_s_pCopy, __pyx_n_s_hStream_2, __pyx_n_s_cpCopy_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1288)) __PYX_ERR(0, 14369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1288);
  __Pyx_GIVEREF(__pyx_tuple__1288);
  __pyx_codeobj__619 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1288, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemcpy3DPeerAsync, 14369, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__619)) __PYX_ERR(0, 14369, __pyx_L1_error)

  /* "cuda/cuda.pyx":14408
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_tuple__1289 = PyTuple_Pack(4, __pyx_n_s_dstDevice_2, __pyx_n_s_uc, __pyx_n_s_N, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1289)) __PYX_ERR(0, 14408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1289);
  __Pyx_GIVEREF(__pyx_tuple__1289);
  __pyx_codeobj__620 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1289, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD8, 14408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__620)) __PYX_ERR(0, 14408, __pyx_L1_error)

  /* "cuda/cuda.pyx":14484
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16(dstDevice not None : CUdeviceptr, unsigned short us, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_tuple__1290 = PyTuple_Pack(4, __pyx_n_s_dstDevice_2, __pyx_n_s_us, __pyx_n_s_N, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1290)) __PYX_ERR(0, 14484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1290);
  __Pyx_GIVEREF(__pyx_tuple__1290);
  __pyx_codeobj__621 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1290, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD16, 14484, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__621)) __PYX_ERR(0, 14484, __pyx_L1_error)

  /* "cuda/cuda.pyx":14561
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_tuple__1291 = PyTuple_Pack(4, __pyx_n_s_dstDevice_2, __pyx_n_s_ui, __pyx_n_s_N, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1291)) __PYX_ERR(0, 14561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1291);
  __Pyx_GIVEREF(__pyx_tuple__1291);
  __pyx_codeobj__622 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1291, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD32, 14561, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__622)) __PYX_ERR(0, 14561, __pyx_L1_error)

  /* "cuda/cuda.pyx":14638
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_tuple__1292 = PyTuple_Pack(6, __pyx_n_s_dstDevice_2, __pyx_n_s_dstPitch_2, __pyx_n_s_uc, __pyx_n_s_Width_2, __pyx_n_s_Height_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1292)) __PYX_ERR(0, 14638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1292);
  __Pyx_GIVEREF(__pyx_tuple__1292);
  __pyx_codeobj__623 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD2D8, 14638, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__623)) __PYX_ERR(0, 14638, __pyx_L1_error)

  /* "cuda/cuda.pyx":14722
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_tuple__1293 = PyTuple_Pack(6, __pyx_n_s_dstDevice_2, __pyx_n_s_dstPitch_2, __pyx_n_s_us, __pyx_n_s_Width_2, __pyx_n_s_Height_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1293)) __PYX_ERR(0, 14722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1293);
  __Pyx_GIVEREF(__pyx_tuple__1293);
  __pyx_codeobj__624 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1293, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD2D16, 14722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__624)) __PYX_ERR(0, 14722, __pyx_L1_error)

  /* "cuda/cuda.pyx":14807
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_tuple__1294 = PyTuple_Pack(6, __pyx_n_s_dstDevice_2, __pyx_n_s_dstPitch_2, __pyx_n_s_ui, __pyx_n_s_Width_2, __pyx_n_s_Height_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1294)) __PYX_ERR(0, 14807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1294);
  __Pyx_GIVEREF(__pyx_tuple__1294);
  __pyx_codeobj__625 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD2D32, 14807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__625)) __PYX_ERR(0, 14807, __pyx_L1_error)

  /* "cuda/cuda.pyx":14892
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8Async(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_tuple__1295 = PyTuple_Pack(5, __pyx_n_s_dstDevice_2, __pyx_n_s_uc, __pyx_n_s_N, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1295)) __PYX_ERR(0, 14892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1295);
  __Pyx_GIVEREF(__pyx_tuple__1295);
  __pyx_codeobj__626 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1295, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD8Async, 14892, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__626)) __PYX_ERR(0, 14892, __pyx_L1_error)

  /* "cuda/cuda.pyx":14970
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16Async(dstDevice not None : CUdeviceptr, unsigned short us, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_tuple__1296 = PyTuple_Pack(5, __pyx_n_s_dstDevice_2, __pyx_n_s_us, __pyx_n_s_N, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1296)) __PYX_ERR(0, 14970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1296);
  __Pyx_GIVEREF(__pyx_tuple__1296);
  __pyx_codeobj__627 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD16Async, 14970, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__627)) __PYX_ERR(0, 14970, __pyx_L1_error)

  /* "cuda/cuda.pyx":15049
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32Async(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_tuple__1297 = PyTuple_Pack(5, __pyx_n_s_dstDevice_2, __pyx_n_s_ui, __pyx_n_s_N, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1297)) __PYX_ERR(0, 15049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1297);
  __Pyx_GIVEREF(__pyx_tuple__1297);
  __pyx_codeobj__628 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD32Async, 15049, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__628)) __PYX_ERR(0, 15049, __pyx_L1_error)

  /* "cuda/cuda.pyx":15128
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_tuple__1298 = PyTuple_Pack(7, __pyx_n_s_dstDevice_2, __pyx_n_s_dstPitch_2, __pyx_n_s_uc, __pyx_n_s_Width_2, __pyx_n_s_Height_2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1298)) __PYX_ERR(0, 15128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1298);
  __Pyx_GIVEREF(__pyx_tuple__1298);
  __pyx_codeobj__629 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD2D8Async, 15128, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__629)) __PYX_ERR(0, 15128, __pyx_L1_error)

  /* "cuda/cuda.pyx":15214
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_tuple__1299 = PyTuple_Pack(7, __pyx_n_s_dstDevice_2, __pyx_n_s_dstPitch_2, __pyx_n_s_us, __pyx_n_s_Width_2, __pyx_n_s_Height_2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1299)) __PYX_ERR(0, 15214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1299);
  __Pyx_GIVEREF(__pyx_tuple__1299);
  __pyx_codeobj__630 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1299, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD2D16Async, 15214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__630)) __PYX_ERR(0, 15214, __pyx_L1_error)

  /* "cuda/cuda.pyx":15301
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_tuple__1300 = PyTuple_Pack(7, __pyx_n_s_dstDevice_2, __pyx_n_s_dstPitch_2, __pyx_n_s_ui, __pyx_n_s_Width_2, __pyx_n_s_Height_2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1300)) __PYX_ERR(0, 15301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1300);
  __Pyx_GIVEREF(__pyx_tuple__1300);
  __pyx_codeobj__631 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemsetD2D32Async, 15301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__631)) __PYX_ERR(0, 15301, __pyx_L1_error)

  /* "cuda/cuda.pyx":15388
 * 
 * @cython.embedsignature(True)
 * def cuArrayCreate(pAllocateArray : CUDA_ARRAY_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 1D or 2D CUDA array.
 * 
 */
  __pyx_tuple__1301 = PyTuple_Pack(4, __pyx_n_s_pAllocateArray, __pyx_n_s_pHandle, __pyx_n_s_cpAllocateArray_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1301)) __PYX_ERR(0, 15388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1301);
  __Pyx_GIVEREF(__pyx_tuple__1301);
  __pyx_codeobj__632 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1301, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArrayCreate, 15388, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__632)) __PYX_ERR(0, 15388, __pyx_L1_error)

  /* "cuda/cuda.pyx":15494
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 1D or 2D CUDA array descriptor.
 * 
 */
  __pyx_tuple__1302 = PyTuple_Pack(3, __pyx_n_s_hArray_2, __pyx_n_s_pArrayDescriptor, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1302)) __PYX_ERR(0, 15494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1302);
  __Pyx_GIVEREF(__pyx_tuple__1302);
  __pyx_codeobj__633 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArrayGetDescriptor, 15494, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__633)) __PYX_ERR(0, 15494, __pyx_L1_error)

  /* "cuda/cuda.pyx":15565
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetSparseProperties(array not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA array.
 * 
 */
  __pyx_tuple__1303 = PyTuple_Pack(3, __pyx_n_s_array_2, __pyx_n_s_sparseProperties, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1303)) __PYX_ERR(0, 15565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1303);
  __Pyx_GIVEREF(__pyx_tuple__1303);
  __pyx_codeobj__634 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1303, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArrayGetSparseProperties, 15565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__634)) __PYX_ERR(0, 15565, __pyx_L1_error)

  /* "cuda/cuda.pyx":15607
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetSparseProperties(mipmap not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA mipmapped array.
 * 
 */
  __pyx_tuple__1304 = PyTuple_Pack(3, __pyx_n_s_mipmap_2, __pyx_n_s_sparseProperties, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1304)) __PYX_ERR(0, 15607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1304);
  __Pyx_GIVEREF(__pyx_tuple__1304);
  __pyx_codeobj__635 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1304, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMipmappedArrayGetSparsePropert, 15607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__635)) __PYX_ERR(0, 15607, __pyx_L1_error)

  /* "cuda/cuda.pyx":15650
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetPlane(hArray not None : CUarray, unsigned int planeIdx):             # <<<<<<<<<<<<<<
 *     """ Gets a CUDA array plane from a CUDA array.
 * 
 */
  __pyx_tuple__1305 = PyTuple_Pack(4, __pyx_n_s_hArray_2, __pyx_n_s_planeIdx, __pyx_n_s_pPlaneArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1305)) __PYX_ERR(0, 15650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1305);
  __Pyx_GIVEREF(__pyx_tuple__1305);
  __pyx_codeobj__636 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1305, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArrayGetPlane, 15650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__636)) __PYX_ERR(0, 15650, __pyx_L1_error)

  /* "cuda/cuda.pyx":15696
 * 
 * @cython.embedsignature(True)
 * def cuArrayDestroy(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA array.
 * 
 */
  __pyx_tuple__1306 = PyTuple_Pack(2, __pyx_n_s_hArray_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1306)) __PYX_ERR(0, 15696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1306);
  __Pyx_GIVEREF(__pyx_tuple__1306);
  __pyx_codeobj__637 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1306, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArrayDestroy, 15696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__637)) __PYX_ERR(0, 15696, __pyx_L1_error)

  /* "cuda/cuda.pyx":15764
 * 
 * @cython.embedsignature(True)
 * def cuArray3DCreate(pAllocateArray : CUDA_ARRAY3D_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 3D CUDA array.
 * 
 */
  __pyx_tuple__1307 = PyTuple_Pack(4, __pyx_n_s_pAllocateArray, __pyx_n_s_pHandle, __pyx_n_s_cpAllocateArray_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1307)) __PYX_ERR(0, 15764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1307);
  __Pyx_GIVEREF(__pyx_tuple__1307);
  __pyx_codeobj__638 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArray3DCreate, 15764, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__638)) __PYX_ERR(0, 15764, __pyx_L1_error)

  /* "cuda/cuda.pyx":15933
 * 
 * @cython.embedsignature(True)
 * def cuArray3DGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 3D CUDA array descriptor.
 * 
 */
  __pyx_tuple__1308 = PyTuple_Pack(3, __pyx_n_s_hArray_2, __pyx_n_s_pArrayDescriptor, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1308)) __PYX_ERR(0, 15933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1308);
  __Pyx_GIVEREF(__pyx_tuple__1308);
  __pyx_codeobj__639 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1308, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuArray3DGetDescriptor, 15933, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__639)) __PYX_ERR(0, 15933, __pyx_L1_error)

  /* "cuda/cuda.pyx":16009
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayCreate(pMipmappedArrayDesc : CUDA_ARRAY3D_DESCRIPTOR, unsigned int numMipmapLevels):             # <<<<<<<<<<<<<<
 *     """ Creates a CUDA mipmapped array.
 * 
 */
  __pyx_tuple__1309 = PyTuple_Pack(5, __pyx_n_s_pMipmappedArrayDesc, __pyx_n_s_numMipmapLevels, __pyx_n_s_pHandle, __pyx_n_s_cpMipmappedArrayDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1309)) __PYX_ERR(0, 16009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1309);
  __Pyx_GIVEREF(__pyx_tuple__1309);
  __pyx_codeobj__640 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1309, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMipmappedArrayCreate, 16009, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__640)) __PYX_ERR(0, 16009, __pyx_L1_error)

  /* "cuda/cuda.pyx":16130
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetLevel(hMipmappedArray not None : CUmipmappedArray, unsigned int level):             # <<<<<<<<<<<<<<
 *     """ Gets a mipmap level of a CUDA mipmapped array.
 * 
 */
  __pyx_tuple__1310 = PyTuple_Pack(4, __pyx_n_s_hMipmappedArray_2, __pyx_n_s_level_2, __pyx_n_s_pLevelArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1310)) __PYX_ERR(0, 16130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1310);
  __Pyx_GIVEREF(__pyx_tuple__1310);
  __pyx_codeobj__641 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1310, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMipmappedArrayGetLevel, 16130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__641)) __PYX_ERR(0, 16130, __pyx_L1_error)

  /* "cuda/cuda.pyx":16170
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayDestroy(hMipmappedArray not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA mipmapped array.
 * 
 */
  __pyx_tuple__1311 = PyTuple_Pack(2, __pyx_n_s_hMipmappedArray_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1311)) __PYX_ERR(0, 16170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1311);
  __Pyx_GIVEREF(__pyx_tuple__1311);
  __pyx_codeobj__642 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMipmappedArrayDestroy, 16170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__642)) __PYX_ERR(0, 16170, __pyx_L1_error)

  /* "cuda/cuda.pyx":16204
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressReserve(size_t size, size_t alignment, addr not None : CUdeviceptr, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Allocate an address range reservation.
 * 
 */
  __pyx_tuple__1312 = PyTuple_Pack(6, __pyx_n_s_size_2, __pyx_n_s_alignment, __pyx_n_s_addr, __pyx_n_s_flags_2, __pyx_n_s_ptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1312)) __PYX_ERR(0, 16204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1312);
  __Pyx_GIVEREF(__pyx_tuple__1312);
  __pyx_codeobj__643 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1312, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAddressReserve, 16204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__643)) __PYX_ERR(0, 16204, __pyx_L1_error)

  /* "cuda/cuda.pyx":16246
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressFree(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Free an address range reservation.
 * 
 */
  __pyx_tuple__1313 = PyTuple_Pack(3, __pyx_n_s_ptr_2, __pyx_n_s_size_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1313)) __PYX_ERR(0, 16246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1313);
  __Pyx_GIVEREF(__pyx_tuple__1313);
  __pyx_codeobj__644 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1313, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAddressFree, 16246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__644)) __PYX_ERR(0, 16246, __pyx_L1_error)

  /* "cuda/cuda.pyx":16280
 * 
 * @cython.embedsignature(True)
 * def cuMemCreate(size_t size, prop : CUmemAllocationProp, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA memory handle representing a memory allocation of a given size described by the given properties.
 * 
 */
  __pyx_tuple__1314 = PyTuple_Pack(6, __pyx_n_s_size_2, __pyx_n_s_prop, __pyx_n_s_flags_2, __pyx_n_s_handle_2, __pyx_n_s_cprop_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1314)) __PYX_ERR(0, 16280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1314);
  __Pyx_GIVEREF(__pyx_tuple__1314);
  __pyx_codeobj__645 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemCreate, 16280, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__645)) __PYX_ERR(0, 16280, __pyx_L1_error)

  /* "cuda/cuda.pyx":16335
 * 
 * @cython.embedsignature(True)
 * def cuMemRelease(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Release a memory handle representing a memory allocation which was previously allocated through cuMemCreate.
 * 
 */
  __pyx_tuple__1315 = PyTuple_Pack(2, __pyx_n_s_handle_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1315)) __PYX_ERR(0, 16335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1315);
  __Pyx_GIVEREF(__pyx_tuple__1315);
  __pyx_codeobj__646 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemRelease, 16335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__646)) __PYX_ERR(0, 16335, __pyx_L1_error)

  /* "cuda/cuda.pyx":16374
 * 
 * @cython.embedsignature(True)
 * def cuMemMap(ptr not None : CUdeviceptr, size_t size, size_t offset, handle not None : CUmemGenericAllocationHandle, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Maps an allocation handle to a reserved virtual address range.
 * 
 */
  __pyx_tuple__1316 = PyTuple_Pack(6, __pyx_n_s_ptr_2, __pyx_n_s_size_2, __pyx_n_s_offset_2, __pyx_n_s_handle_2, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1316)) __PYX_ERR(0, 16374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1316);
  __Pyx_GIVEREF(__pyx_tuple__1316);
  __pyx_codeobj__647 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemMap, 16374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__647)) __PYX_ERR(0, 16374, __pyx_L1_error)

  /* "cuda/cuda.pyx":16437
 * 
 * @cython.embedsignature(True)
 * def cuMemMapArrayAsync(mapInfoList : List[CUarrayMapInfo], unsigned int count, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.
 * 
 */
  __pyx_tuple__1317 = PyTuple_Pack(8, __pyx_n_s_mapInfoList, __pyx_n_s_count, __pyx_n_s_hStream_2, __pyx_n_s_cmapInfoList, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1317)) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1317);
  __Pyx_GIVEREF(__pyx_tuple__1317);
  __pyx_codeobj__648 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1317, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemMapArrayAsync, 16437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__648)) __PYX_ERR(0, 16437, __pyx_L1_error)

  /* "cuda/cuda.pyx":16596
 * 
 * @cython.embedsignature(True)
 * def cuMemUnmap(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Unmap the backing memory of a given address range.
 * 
 */
  __pyx_tuple__1318 = PyTuple_Pack(3, __pyx_n_s_ptr_2, __pyx_n_s_size_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1318)) __PYX_ERR(0, 16596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1318);
  __Pyx_GIVEREF(__pyx_tuple__1318);
  __pyx_codeobj__650 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1318, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemUnmap, 16596, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__650)) __PYX_ERR(0, 16596, __pyx_L1_error)

  /* "cuda/cuda.pyx":16639
 * 
 * @cython.embedsignature(True)
 * def cuMemSetAccess(ptr not None : CUdeviceptr, size_t size, desc : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Set the access flags for each location specified in `desc` for the given virtual address range.
 * 
 */
  __pyx_tuple__1319 = PyTuple_Pack(9, __pyx_n_s_ptr_2, __pyx_n_s_size_2, __pyx_n_s_desc, __pyx_n_s_count, __pyx_n_s_cdesc, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1319)) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1319);
  __Pyx_GIVEREF(__pyx_tuple__1319);
  __pyx_codeobj__651 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1319, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemSetAccess, 16639, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__651)) __PYX_ERR(0, 16639, __pyx_L1_error)

  /* "cuda/cuda.pyx":16693
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAccess(location : CUmemLocation, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get the access `flags` set for the given `location` and `ptr`.
 * 
 */
  __pyx_tuple__1320 = PyTuple_Pack(5, __pyx_n_s_location_2, __pyx_n_s_ptr_2, __pyx_n_s_flags_2, __pyx_n_s_clocation_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1320)) __PYX_ERR(0, 16693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1320);
  __Pyx_GIVEREF(__pyx_tuple__1320);
  __pyx_codeobj__653 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1320, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemGetAccess, 16693, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__653)) __PYX_ERR(0, 16693, __pyx_L1_error)

  /* "cuda/cuda.pyx":16726
 * 
 * @cython.embedsignature(True)
 * def cuMemExportToShareableHandle(handle not None : CUmemGenericAllocationHandle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports an allocation to a requested shareable handle type.
 * 
 */
  __pyx_tuple__1321 = PyTuple_Pack(7, __pyx_n_s_handle_2, __pyx_n_s_handleType, __pyx_n_s_flags_2, __pyx_n_s_shareableHandle, __pyx_n_s_cshareableHandle_ptr, __pyx_n_s_chandleType, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1321)) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1321);
  __Pyx_GIVEREF(__pyx_tuple__1321);
  __pyx_codeobj__654 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1321, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemExportToShareableHandle, 16726, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__654)) __PYX_ERR(0, 16726, __pyx_L1_error)

  /* "cuda/cuda.pyx":16778
 * 
 * @cython.embedsignature(True)
 * def cuMemImportFromShareableHandle(osHandle, shHandleType not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *     """ Imports an allocation from a requested shareable handle type.
 * 
 */
  __pyx_tuple__1322 = PyTuple_Pack(7, __pyx_n_s_osHandle, __pyx_n_s_shHandleType, __pyx_n_s_handle_2, __pyx_n_s_cosHandle, __pyx_n_s_cosHandle_ptr, __pyx_n_s_cshHandleType, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1322)) __PYX_ERR(0, 16778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1322);
  __Pyx_GIVEREF(__pyx_tuple__1322);
  __pyx_codeobj__655 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemImportFromShareableHandle, 16778, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__655)) __PYX_ERR(0, 16778, __pyx_L1_error)

  /* "cuda/cuda.pyx":16823
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationGranularity(prop : CUmemAllocationProp, option not None : CUmemAllocationGranularity_flags):             # <<<<<<<<<<<<<<
 *     """ Calculates either the minimal or recommended granularity.
 * 
 */
  __pyx_tuple__1323 = PyTuple_Pack(6, __pyx_n_s_prop, __pyx_n_s_option, __pyx_n_s_granularity, __pyx_n_s_cprop_ptr, __pyx_n_s_coption, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1323)) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1323);
  __Pyx_GIVEREF(__pyx_tuple__1323);
  __pyx_codeobj__656 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1323, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemGetAllocationGranularity, 16823, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__656)) __PYX_ERR(0, 16823, __pyx_L1_error)

  /* "cuda/cuda.pyx":16862
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationPropertiesFromHandle(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Retrieve the contents of the property structure defining properties for this handle.
 * 
 */
  __pyx_tuple__1324 = PyTuple_Pack(3, __pyx_n_s_handle_2, __pyx_n_s_prop, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1324)) __PYX_ERR(0, 16862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1324);
  __Pyx_GIVEREF(__pyx_tuple__1324);
  __pyx_codeobj__657 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1324, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemGetAllocationPropertiesFrom, 16862, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__657)) __PYX_ERR(0, 16862, __pyx_L1_error)

  /* "cuda/cuda.pyx":16893
 * 
 * @cython.embedsignature(True)
 * def cuMemRetainAllocationHandle(addr):             # <<<<<<<<<<<<<<
 *     """ Given an address `addr`, returns the allocation handle of the backing memory allocation.
 * 
 */
  __pyx_tuple__1325 = PyTuple_Pack(5, __pyx_n_s_addr, __pyx_n_s_handle_2, __pyx_n_s_caddr, __pyx_n_s_caddr_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1325)) __PYX_ERR(0, 16893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1325);
  __Pyx_GIVEREF(__pyx_tuple__1325);
  __pyx_codeobj__658 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1325, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemRetainAllocationHandle, 16893, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__658)) __PYX_ERR(0, 16893, __pyx_L1_error)

  /* "cuda/cuda.pyx":16936
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeAsync(dptr not None : CUdeviceptr, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Frees memory with stream ordered semantics.
 * 
 */
  __pyx_tuple__1326 = PyTuple_Pack(3, __pyx_n_s_dptr_2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1326)) __PYX_ERR(0, 16936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1326);
  __Pyx_GIVEREF(__pyx_tuple__1326);
  __pyx_codeobj__659 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1326, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemFreeAsync, 16936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__659)) __PYX_ERR(0, 16936, __pyx_L1_error)

  /* "cuda/cuda.pyx":16978
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocAsync(size_t bytesize, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory with stream ordered semantics.
 * 
 */
  __pyx_tuple__1327 = PyTuple_Pack(4, __pyx_n_s_bytesize_2, __pyx_n_s_hStream_2, __pyx_n_s_dptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1327)) __PYX_ERR(0, 16978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1327);
  __Pyx_GIVEREF(__pyx_tuple__1327);
  __pyx_codeobj__660 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAllocAsync, 16978, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__660)) __PYX_ERR(0, 16978, __pyx_L1_error)

  /* "cuda/cuda.pyx":17034
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolTrimTo(pool not None : CUmemoryPool, size_t minBytesToKeep):             # <<<<<<<<<<<<<<
 *     """ Tries to release memory back to the OS.
 * 
 */
  __pyx_tuple__1328 = PyTuple_Pack(3, __pyx_n_s_pool, __pyx_n_s_minBytesToKeep, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1328)) __PYX_ERR(0, 17034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1328);
  __Pyx_GIVEREF(__pyx_tuple__1328);
  __pyx_codeobj__661 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1328, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolTrimTo, 17034, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__661)) __PYX_ERR(0, 17034, __pyx_L1_error)

  /* "cuda/cuda.pyx":17079
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Sets attributes of a memory pool.
 * 
 */
  __pyx_tuple__1329 = PyTuple_Pack(7, __pyx_n_s_pool, __pyx_n_s_attr, __pyx_n_s_value, __pyx_n_s_cattr, __pyx_n_s_cvalue, __pyx_n_s_cvalue_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1329)) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1329);
  __Pyx_GIVEREF(__pyx_tuple__1329);
  __pyx_codeobj__662 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1329, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolSetAttribute, 17079, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__662)) __PYX_ERR(0, 17079, __pyx_L1_error)

  /* "cuda/cuda.pyx":17139
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute):             # <<<<<<<<<<<<<<
 *     """ Gets attributes of a memory pool.
 * 
 */
  __pyx_tuple__1330 = PyTuple_Pack(6, __pyx_n_s_pool, __pyx_n_s_attr, __pyx_n_s_cattr, __pyx_n_s_cvalue, __pyx_n_s_cvalue_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1330)) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1330);
  __Pyx_GIVEREF(__pyx_tuple__1330);
  __pyx_codeobj__663 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1330, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolGetAttribute, 17139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__663)) __PYX_ERR(0, 17139, __pyx_L1_error)

  /* "cuda/cuda.pyx":17201
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAccess(pool not None : CUmemoryPool, map : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Controls visibility of pools between devices.
 * 
 */
  __pyx_tuple__1331 = PyTuple_Pack(8, __pyx_n_s_pool, __pyx_n_s_map, __pyx_n_s_count, __pyx_n_s_cmap, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1331)) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1331);
  __Pyx_GIVEREF(__pyx_tuple__1331);
  __pyx_codeobj__664 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolSetAccess, 17201, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__664)) __PYX_ERR(0, 17201, __pyx_L1_error)

  /* "cuda/cuda.pyx":17249
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAccess(memPool not None : CUmemoryPool, location : CUmemLocation):             # <<<<<<<<<<<<<<
 *     """ Returns the accessibility of a pool from a device.
 * 
 */
  __pyx_tuple__1332 = PyTuple_Pack(5, __pyx_n_s_memPool, __pyx_n_s_location_2, __pyx_n_s_flags_2, __pyx_n_s_clocation_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1332)) __PYX_ERR(0, 17249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1332);
  __Pyx_GIVEREF(__pyx_tuple__1332);
  __pyx_codeobj__666 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1332, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolGetAccess, 17249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__666)) __PYX_ERR(0, 17249, __pyx_L1_error)

  /* "cuda/cuda.pyx":17283
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolCreate(poolProps : CUmemPoolProps):             # <<<<<<<<<<<<<<
 *     """ Creates a memory pool.
 * 
 */
  __pyx_tuple__1333 = PyTuple_Pack(4, __pyx_n_s_poolProps_2, __pyx_n_s_pool, __pyx_n_s_cpoolProps_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1333)) __PYX_ERR(0, 17283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1333);
  __Pyx_GIVEREF(__pyx_tuple__1333);
  __pyx_codeobj__667 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1333, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolCreate, 17283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__667)) __PYX_ERR(0, 17283, __pyx_L1_error)

  /* "cuda/cuda.pyx":17323
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolDestroy(pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Destroys the specified memory pool.
 * 
 */
  __pyx_tuple__1334 = PyTuple_Pack(2, __pyx_n_s_pool, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1334)) __PYX_ERR(0, 17323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1334);
  __Pyx_GIVEREF(__pyx_tuple__1334);
  __pyx_codeobj__668 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1334, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolDestroy, 17323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__668)) __PYX_ERR(0, 17323, __pyx_L1_error)

  /* "cuda/cuda.pyx":17360
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocFromPoolAsync(size_t bytesize, pool not None : CUmemoryPool, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory from a specified pool with stream ordered semantics.
 * 
 */
  __pyx_tuple__1335 = PyTuple_Pack(5, __pyx_n_s_bytesize_2, __pyx_n_s_pool, __pyx_n_s_hStream_2, __pyx_n_s_dptr_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1335)) __PYX_ERR(0, 17360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1335);
  __Pyx_GIVEREF(__pyx_tuple__1335);
  __pyx_codeobj__669 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAllocFromPoolAsync, 17360, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__669)) __PYX_ERR(0, 17360, __pyx_L1_error)

  /* "cuda/cuda.pyx":17416
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportToShareableHandle(pool not None : CUmemoryPool, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports a memory pool to the requested handle type.
 * 
 */
  __pyx_tuple__1336 = PyTuple_Pack(7, __pyx_n_s_pool, __pyx_n_s_handleType, __pyx_n_s_flags_2, __pyx_n_s_handle_out, __pyx_n_s_chandle_out_ptr, __pyx_n_s_chandleType, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1336)) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1336);
  __Pyx_GIVEREF(__pyx_tuple__1336);
  __pyx_codeobj__670 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolExportToShareableHandle, 17416, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__670)) __PYX_ERR(0, 17416, __pyx_L1_error)

  /* "cuda/cuda.pyx":17471
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportFromShareableHandle(handle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ imports a memory pool from a shared handle.
 * 
 */
  __pyx_tuple__1337 = PyTuple_Pack(8, __pyx_n_s_handle_2, __pyx_n_s_handleType, __pyx_n_s_flags_2, __pyx_n_s_pool_out, __pyx_n_s_chandle, __pyx_n_s_chandle_ptr, __pyx_n_s_chandleType, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1337)) __PYX_ERR(0, 17471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1337);
  __Pyx_GIVEREF(__pyx_tuple__1337);
  __pyx_codeobj__671 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1337, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolImportFromShareableHand, 17471, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__671)) __PYX_ERR(0, 17471, __pyx_L1_error)

  /* "cuda/cuda.pyx":17515
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportPointer(ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Export data to share a memory pool allocation between processes.
 * 
 */
  __pyx_tuple__1338 = PyTuple_Pack(3, __pyx_n_s_ptr_2, __pyx_n_s_shareData_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1338)) __PYX_ERR(0, 17515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1338);
  __Pyx_GIVEREF(__pyx_tuple__1338);
  __pyx_codeobj__672 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1338, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolExportPointer, 17515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__672)) __PYX_ERR(0, 17515, __pyx_L1_error)

  /* "cuda/cuda.pyx":17549
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportPointer(pool not None : CUmemoryPool, shareData : CUmemPoolPtrExportData):             # <<<<<<<<<<<<<<
 *     """ Import a memory pool allocation from another process.
 * 
 */
  __pyx_tuple__1339 = PyTuple_Pack(5, __pyx_n_s_pool, __pyx_n_s_shareData, __pyx_n_s_ptr_out, __pyx_n_s_cshareData_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1339)) __PYX_ERR(0, 17549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1339);
  __Pyx_GIVEREF(__pyx_tuple__1339);
  __pyx_codeobj__673 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1339, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPoolImportPointer, 17549, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__673)) __PYX_ERR(0, 17549, __pyx_L1_error)

  /* "cuda/cuda.pyx":17594
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttribute(attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */
  __pyx_tuple__1340 = PyTuple_Pack(6, __pyx_n_s_attribute, __pyx_n_s_ptr_2, __pyx_n_s_cdata, __pyx_n_s_cdata_ptr, __pyx_n_s_cattribute, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1340)) __PYX_ERR(0, 17594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1340);
  __Pyx_GIVEREF(__pyx_tuple__1340);
  __pyx_codeobj__674 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1340, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuPointerGetAttribute, 17594, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__674)) __PYX_ERR(0, 17594, __pyx_L1_error)

  /* "cuda/cuda.pyx":17718
 * 
 * @cython.embedsignature(True)
 * def cuMemPrefetchAsync(devPtr not None : CUdeviceptr, size_t count, dstDevice not None : CUdevice, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Prefetches memory to the specified destination device.
 * 
 */
  __pyx_tuple__1341 = PyTuple_Pack(5, __pyx_n_s_devPtr_2, __pyx_n_s_count, __pyx_n_s_dstDevice_2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1341)) __PYX_ERR(0, 17718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1341);
  __Pyx_GIVEREF(__pyx_tuple__1341);
  __pyx_codeobj__675 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemPrefetchAsync, 17718, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__675)) __PYX_ERR(0, 17718, __pyx_L1_error)

  /* "cuda/cuda.pyx":17807
 * 
 * @cython.embedsignature(True)
 * def cuMemAdvise(devPtr not None : CUdeviceptr, size_t count, advice not None : CUmem_advise, device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Advise about the usage of a given memory range.
 * 
 */
  __pyx_tuple__1342 = PyTuple_Pack(6, __pyx_n_s_devPtr_2, __pyx_n_s_count, __pyx_n_s_advice, __pyx_n_s_device, __pyx_n_s_cadvice, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1342)) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1342);
  __Pyx_GIVEREF(__pyx_tuple__1342);
  __pyx_codeobj__676 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1342, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemAdvise, 17807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__676)) __PYX_ERR(0, 17807, __pyx_L1_error)

  /* "cuda/cuda.pyx":17963
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttribute(size_t dataSize, attribute not None : CUmem_range_attribute, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query an attribute of a given memory range.
 * 
 */
  __pyx_tuple__1343 = PyTuple_Pack(8, __pyx_n_s_dataSize, __pyx_n_s_attribute, __pyx_n_s_devPtr_2, __pyx_n_s_count, __pyx_n_s_cdata, __pyx_n_s_cdata_ptr, __pyx_n_s_cattribute, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1343)) __PYX_ERR(0, 17963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1343);
  __Pyx_GIVEREF(__pyx_tuple__1343);
  __pyx_codeobj__677 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemRangeGetAttribute, 17963, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__677)) __PYX_ERR(0, 17963, __pyx_L1_error)

  /* "cuda/cuda.pyx":18047
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttributes(dataSizes : List[int], attributes : List[CUmem_range_attribute], size_t numAttributes, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query attributes of a given memory range.
 * 
 */
  __pyx_tuple__1344 = PyTuple_Pack(18, __pyx_n_s_dataSizes, __pyx_n_s_attributes, __pyx_n_s_numAttributes, __pyx_n_s_devPtr_2, __pyx_n_s_count, __pyx_n_s_pylist, __pyx_n_s_voidStarHelper, __pyx_n_s_cvoidStarHelper_ptr, __pyx_n_s_cdataSizes, __pyx_n_s_cattributes, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_pyattributes, __pyx_n_s_pydataSizes, __pyx_n_s_pyattributes, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__1344)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1344);
  __Pyx_GIVEREF(__pyx_tuple__1344);
  __pyx_codeobj__678 = (PyObject*)__Pyx_PyCode_New(5, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuMemRangeGetAttributes, 18047, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__678)) __PYX_ERR(0, 18047, __pyx_L1_error)

  /* "cuda/cuda.pyx":18114
 * 
 * @cython.embedsignature(True)
 * def cuPointerSetAttribute(value, attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Set attributes on a previously allocated memory region.
 * 
 */
  __pyx_tuple__1345 = PyTuple_Pack(7, __pyx_n_s_value, __pyx_n_s_attribute, __pyx_n_s_ptr_2, __pyx_n_s_cvalue, __pyx_n_s_cvalue_ptr, __pyx_n_s_cattribute, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1345)) __PYX_ERR(0, 18114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1345);
  __Pyx_GIVEREF(__pyx_tuple__1345);
  __pyx_codeobj__681 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1345, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuPointerSetAttribute, 18114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__681)) __PYX_ERR(0, 18114, __pyx_L1_error)

  /* "cuda/cuda.pyx":18171
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttributes(unsigned int numAttributes, attributes : List[CUpointer_attribute], ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */
  __pyx_tuple__1346 = PyTuple_Pack(13, __pyx_n_s_numAttributes, __pyx_n_s_attributes, __pyx_n_s_ptr_2, __pyx_n_s_cattributes, __pyx_n_s_pylist, __pyx_n_s_voidStarHelper, __pyx_n_s_cvoidStarHelper_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_pyattributes, __pyx_n_s_pyattributes, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__1346)) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1346);
  __Pyx_GIVEREF(__pyx_tuple__1346);
  __pyx_codeobj__682 = (PyObject*)__Pyx_PyCode_New(3, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1346, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuPointerGetAttributes, 18171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__682)) __PYX_ERR(0, 18171, __pyx_L1_error)

  /* "cuda/cuda.pyx":18231
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Create a stream.
 * 
 */
  __pyx_tuple__1347 = PyTuple_Pack(4, __pyx_n_s_Flags_2, __pyx_n_s_Flags_2, __pyx_n_s_phStream, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1347)) __PYX_ERR(0, 18231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1347);
  __Pyx_GIVEREF(__pyx_tuple__1347);
  __pyx_codeobj__684 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1347, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamCreate, 18231, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__684)) __PYX_ERR(0, 18231, __pyx_L1_error)

  /* "cuda/cuda.pyx":18278
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreateWithPriority(unsigned int flags, int priority):             # <<<<<<<<<<<<<<
 *     """ Create a stream with the given priority.
 * 
 */
  __pyx_tuple__1348 = PyTuple_Pack(4, __pyx_n_s_flags_2, __pyx_n_s_priority, __pyx_n_s_phStream, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1348)) __PYX_ERR(0, 18278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1348);
  __Pyx_GIVEREF(__pyx_tuple__1348);
  __pyx_codeobj__685 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1348, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamCreateWithPriority, 18278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__685)) __PYX_ERR(0, 18278, __pyx_L1_error)

  /* "cuda/cuda.pyx":18338
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetPriority(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the priority of a given stream.
 * 
 */
  __pyx_tuple__1349 = PyTuple_Pack(3, __pyx_n_s_hStream_2, __pyx_n_s_priority, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1349)) __PYX_ERR(0, 18338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1349);
  __Pyx_GIVEREF(__pyx_tuple__1349);
  __pyx_codeobj__686 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1349, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamGetPriority, 18338, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__686)) __PYX_ERR(0, 18338, __pyx_L1_error)

  /* "cuda/cuda.pyx":18381
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetFlags(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the flags of a given stream.
 * 
 */
  __pyx_tuple__1350 = PyTuple_Pack(3, __pyx_n_s_hStream_2, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1350)) __PYX_ERR(0, 18381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1350);
  __Pyx_GIVEREF(__pyx_tuple__1350);
  __pyx_codeobj__687 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1350, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamGetFlags, 18381, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__687)) __PYX_ERR(0, 18381, __pyx_L1_error)

  /* "cuda/cuda.pyx":18420
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCtx(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the context associated with a stream.
 * 
 */
  __pyx_tuple__1351 = PyTuple_Pack(3, __pyx_n_s_hStream_2, __pyx_n_s_pctx, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1351)) __PYX_ERR(0, 18420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1351);
  __Pyx_GIVEREF(__pyx_tuple__1351);
  __pyx_codeobj__688 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1351, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamGetCtx, 18420, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__688)) __PYX_ERR(0, 18420, __pyx_L1_error)

  /* "cuda/cuda.pyx":18473
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitEvent(hStream not None : CUstream, hEvent not None : CUevent, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Make a compute stream wait on an event.
 * 
 */
  __pyx_tuple__1352 = PyTuple_Pack(4, __pyx_n_s_hStream_2, __pyx_n_s_hEvent, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1352)) __PYX_ERR(0, 18473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1352);
  __Pyx_GIVEREF(__pyx_tuple__1352);
  __pyx_codeobj__689 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamWaitEvent, 18473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__689)) __PYX_ERR(0, 18473, __pyx_L1_error)

  /* "cuda/cuda.pyx":18521
 * 
 * @cython.embedsignature(True)
 * def cuStreamAddCallback(hStream not None : CUstream, callback not None : CUstreamCallback, userData, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Add a callback to a compute stream.
 * 
 */
  __pyx_tuple__1353 = PyTuple_Pack(7, __pyx_n_s_hStream_2, __pyx_n_s_callback, __pyx_n_s_userData_2, __pyx_n_s_flags_2, __pyx_n_s_cuserData, __pyx_n_s_cuserData_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1353)) __PYX_ERR(0, 18521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1353);
  __Pyx_GIVEREF(__pyx_tuple__1353);
  __pyx_codeobj__690 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1353, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamAddCallback, 18521, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__690)) __PYX_ERR(0, 18521, __pyx_L1_error)

  /* "cuda/cuda.pyx":18599
 * 
 * @cython.embedsignature(True)
 * def cuStreamBeginCapture(hStream not None : CUstream, mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Begins graph capture on a stream.
 * 
 */
  __pyx_tuple__1354 = PyTuple_Pack(4, __pyx_n_s_hStream_2, __pyx_n_s_mode, __pyx_n_s_cmode, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1354)) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1354);
  __Pyx_GIVEREF(__pyx_tuple__1354);
  __pyx_codeobj__691 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1354, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamBeginCapture, 18599, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__691)) __PYX_ERR(0, 18599, __pyx_L1_error)

  /* "cuda/cuda.pyx":18651
 * 
 * @cython.embedsignature(True)
 * def cuThreadExchangeStreamCaptureMode(mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Swaps the stream capture interaction mode for a thread.
 * 
 */
  __pyx_tuple__1355 = PyTuple_Pack(3, __pyx_n_s_mode, __pyx_n_s_cmode, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1355)) __PYX_ERR(0, 18651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1355);
  __Pyx_GIVEREF(__pyx_tuple__1355);
  __pyx_codeobj__692 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1355, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuThreadExchangeStreamCaptureMod, 18651, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__692)) __PYX_ERR(0, 18651, __pyx_L1_error)

  /* "cuda/cuda.pyx":18715
 * 
 * @cython.embedsignature(True)
 * def cuStreamEndCapture(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Ends capture on a stream, returning the captured graph.
 * 
 */
  __pyx_tuple__1356 = PyTuple_Pack(3, __pyx_n_s_hStream_2, __pyx_n_s_phGraph, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1356)) __PYX_ERR(0, 18715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1356);
  __Pyx_GIVEREF(__pyx_tuple__1356);
  __pyx_codeobj__693 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1356, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamEndCapture, 18715, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__693)) __PYX_ERR(0, 18715, __pyx_L1_error)

  /* "cuda/cuda.pyx":18754
 * 
 * @cython.embedsignature(True)
 * def cuStreamIsCapturing(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Returns a stream's capture status.
 * 
 */
  __pyx_tuple__1357 = PyTuple_Pack(3, __pyx_n_s_hStream_2, __pyx_n_s_captureStatus, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1357)) __PYX_ERR(0, 18754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1357);
  __Pyx_GIVEREF(__pyx_tuple__1357);
  __pyx_codeobj__694 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1357, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamIsCapturing, 18754, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__694)) __PYX_ERR(0, 18754, __pyx_L1_error)

  /* "cuda/cuda.pyx":18804
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query capture status of a stream.
 * 
 */
  __pyx_tuple__1358 = PyTuple_Pack(4, __pyx_n_s_hStream_2, __pyx_n_s_captureStatus_out, __pyx_n_s_id_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1358)) __PYX_ERR(0, 18804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1358);
  __Pyx_GIVEREF(__pyx_tuple__1358);
  __pyx_codeobj__695 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1358, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamGetCaptureInfo, 18804, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__695)) __PYX_ERR(0, 18804, __pyx_L1_error)

  /* "cuda/cuda.pyx":18842
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo_v2(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query a stream's capture state (11.3+)
 * 
 */
  __pyx_tuple__1359 = PyTuple_Pack(9, __pyx_n_s_hStream_2, __pyx_n_s_captureStatus_out, __pyx_n_s_id_out, __pyx_n_s_graph_out, __pyx_n_s_cdependencies_out, __pyx_n_s_pydependencies_out, __pyx_n_s_numDependencies_out, __pyx_n_s_err, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__1359)) __PYX_ERR(0, 18842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1359);
  __Pyx_GIVEREF(__pyx_tuple__1359);
  __pyx_codeobj__696 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1359, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamGetCaptureInfo_v2, 18842, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__696)) __PYX_ERR(0, 18842, __pyx_L1_error)

  /* "cuda/cuda.pyx":18918
 * 
 * @cython.embedsignature(True)
 * def cuStreamUpdateCaptureDependencies(hStream not None : CUstream, dependencies : List[CUgraphNode], size_t numDependencies, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Update the set of dependencies in a capturing stream (11.3+)
 * 
 */
  __pyx_tuple__1360 = PyTuple_Pack(9, __pyx_n_s_hStream_2, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_flags_2, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1360)) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1360);
  __Pyx_GIVEREF(__pyx_tuple__1360);
  __pyx_codeobj__697 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1360, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamUpdateCaptureDependencie_2, 18918, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__697)) __PYX_ERR(0, 18918, __pyx_L1_error)

  /* "cuda/cuda.pyx":18974
 * 
 * @cython.embedsignature(True)
 * def cuStreamAttachMemAsync(hStream not None : CUstream, dptr not None : CUdeviceptr, size_t length, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Attach memory to a stream asynchronously.
 * 
 */
  __pyx_tuple__1361 = PyTuple_Pack(5, __pyx_n_s_hStream_2, __pyx_n_s_dptr_2, __pyx_n_s_length, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1361)) __PYX_ERR(0, 18974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1361);
  __Pyx_GIVEREF(__pyx_tuple__1361);
  __pyx_codeobj__699 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1361, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamAttachMemAsync, 18974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__699)) __PYX_ERR(0, 18974, __pyx_L1_error)

  /* "cuda/cuda.pyx":19076
 * 
 * @cython.embedsignature(True)
 * def cuStreamQuery(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Determine status of a compute stream.
 * 
 */
  __pyx_tuple__1362 = PyTuple_Pack(2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1362)) __PYX_ERR(0, 19076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1362);
  __Pyx_GIVEREF(__pyx_tuple__1362);
  __pyx_codeobj__700 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1362, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamQuery, 19076, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__700)) __PYX_ERR(0, 19076, __pyx_L1_error)

  /* "cuda/cuda.pyx":19115
 * 
 * @cython.embedsignature(True)
 * def cuStreamSynchronize(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Wait until a stream's tasks are completed.
 * 
 */
  __pyx_tuple__1363 = PyTuple_Pack(2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1363)) __PYX_ERR(0, 19115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1363);
  __Pyx_GIVEREF(__pyx_tuple__1363);
  __pyx_codeobj__701 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1363, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamSynchronize, 19115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__701)) __PYX_ERR(0, 19115, __pyx_L1_error)

  /* "cuda/cuda.pyx":19152
 * 
 * @cython.embedsignature(True)
 * def cuStreamDestroy(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Destroys a stream.
 * 
 */
  __pyx_tuple__1364 = PyTuple_Pack(2, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1364)) __PYX_ERR(0, 19152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1364);
  __Pyx_GIVEREF(__pyx_tuple__1364);
  __pyx_codeobj__702 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1364, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamDestroy, 19152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__702)) __PYX_ERR(0, 19152, __pyx_L1_error)

  /* "cuda/cuda.pyx":19192
 * 
 * @cython.embedsignature(True)
 * def cuStreamCopyAttributes(dst not None : CUstream, src not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source stream to destination stream.
 * 
 */
  __pyx_tuple__1365 = PyTuple_Pack(3, __pyx_n_s_dst_2, __pyx_n_s_src, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1365)) __PYX_ERR(0, 19192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1365);
  __Pyx_GIVEREF(__pyx_tuple__1365);
  __pyx_codeobj__703 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1365, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamCopyAttributes, 19192, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__703)) __PYX_ERR(0, 19192, __pyx_L1_error)

  /* "cuda/cuda.pyx":19217
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries stream attribute.
 * 
 */
  __pyx_tuple__1366 = PyTuple_Pack(5, __pyx_n_s_hStream_2, __pyx_n_s_attr, __pyx_n_s_cattr, __pyx_n_s_value_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1366)) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1366);
  __Pyx_GIVEREF(__pyx_tuple__1366);
  __pyx_codeobj__704 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1366, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamGetAttribute, 19217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__704)) __PYX_ERR(0, 19217, __pyx_L1_error)

  /* "cuda/cuda.pyx":19245
 * 
 * @cython.embedsignature(True)
 * def cuStreamSetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID, value : CUstreamAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets stream attribute.
 * 
 */
  __pyx_tuple__1367 = PyTuple_Pack(6, __pyx_n_s_hStream_2, __pyx_n_s_attr, __pyx_n_s_value, __pyx_n_s_cattr, __pyx_n_s_cvalue_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1367)) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1367);
  __Pyx_GIVEREF(__pyx_tuple__1367);
  __pyx_codeobj__705 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1367, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamSetAttribute, 19245, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__705)) __PYX_ERR(0, 19245, __pyx_L1_error)

  /* "cuda/cuda.pyx":19276
 * 
 * @cython.embedsignature(True)
 * def cuEventCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Creates an event.
 * 
 */
  __pyx_tuple__1368 = PyTuple_Pack(4, __pyx_n_s_Flags_2, __pyx_n_s_Flags_2, __pyx_n_s_phEvent, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1368)) __PYX_ERR(0, 19276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1368);
  __Pyx_GIVEREF(__pyx_tuple__1368);
  __pyx_codeobj__706 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1368, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventCreate, 19276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__706)) __PYX_ERR(0, 19276, __pyx_L1_error)

  /* "cuda/cuda.pyx":19325
 * 
 * @cython.embedsignature(True)
 * def cuEventRecord(hEvent not None : CUevent, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */
  __pyx_tuple__1369 = PyTuple_Pack(3, __pyx_n_s_hEvent, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1369)) __PYX_ERR(0, 19325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1369);
  __Pyx_GIVEREF(__pyx_tuple__1369);
  __pyx_codeobj__707 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1369, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventRecord, 19325, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__707)) __PYX_ERR(0, 19325, __pyx_L1_error)

  /* "cuda/cuda.pyx":19376
 * 
 * @cython.embedsignature(True)
 * def cuEventRecordWithFlags(hEvent not None : CUevent, hStream not None : CUstream, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */
  __pyx_tuple__1370 = PyTuple_Pack(4, __pyx_n_s_hEvent, __pyx_n_s_hStream_2, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1370)) __PYX_ERR(0, 19376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1370);
  __Pyx_GIVEREF(__pyx_tuple__1370);
  __pyx_codeobj__708 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1370, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventRecordWithFlags, 19376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__708)) __PYX_ERR(0, 19376, __pyx_L1_error)

  /* "cuda/cuda.pyx":19435
 * 
 * @cython.embedsignature(True)
 * def cuEventQuery(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Queries an event's status.
 * 
 */
  __pyx_tuple__1371 = PyTuple_Pack(2, __pyx_n_s_hEvent, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1371)) __PYX_ERR(0, 19435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1371);
  __Pyx_GIVEREF(__pyx_tuple__1371);
  __pyx_codeobj__709 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1371, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventQuery, 19435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__709)) __PYX_ERR(0, 19435, __pyx_L1_error)

  /* "cuda/cuda.pyx":19477
 * 
 * @cython.embedsignature(True)
 * def cuEventSynchronize(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Waits for an event to complete.
 * 
 */
  __pyx_tuple__1372 = PyTuple_Pack(2, __pyx_n_s_hEvent, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1372)) __PYX_ERR(0, 19477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1372);
  __Pyx_GIVEREF(__pyx_tuple__1372);
  __pyx_codeobj__710 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1372, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventSynchronize, 19477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__710)) __PYX_ERR(0, 19477, __pyx_L1_error)

  /* "cuda/cuda.pyx":19518
 * 
 * @cython.embedsignature(True)
 * def cuEventDestroy(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Destroys an event.
 * 
 */
  __pyx_tuple__1373 = PyTuple_Pack(2, __pyx_n_s_hEvent, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1373)) __PYX_ERR(0, 19518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1373);
  __Pyx_GIVEREF(__pyx_tuple__1373);
  __pyx_codeobj__711 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1373, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventDestroy, 19518, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__711)) __PYX_ERR(0, 19518, __pyx_L1_error)

  /* "cuda/cuda.pyx":19557
 * 
 * @cython.embedsignature(True)
 * def cuEventElapsedTime(hStart not None : CUevent, hEnd not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Computes the elapsed time between two events.
 * 
 */
  __pyx_tuple__1374 = PyTuple_Pack(4, __pyx_n_s_hStart, __pyx_n_s_hEnd, __pyx_n_s_pMilliseconds, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1374)) __PYX_ERR(0, 19557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1374);
  __Pyx_GIVEREF(__pyx_tuple__1374);
  __pyx_codeobj__712 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1374, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuEventElapsedTime, 19557, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__712)) __PYX_ERR(0, 19557, __pyx_L1_error)

  /* "cuda/cuda.pyx":19612
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalMemory(memHandleDesc : CUDA_EXTERNAL_MEMORY_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external memory object.
 * 
 */
  __pyx_tuple__1375 = PyTuple_Pack(4, __pyx_n_s_memHandleDesc, __pyx_n_s_extMem_out, __pyx_n_s_cmemHandleDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1375)) __PYX_ERR(0, 19612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1375);
  __Pyx_GIVEREF(__pyx_tuple__1375);
  __pyx_codeobj__713 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1375, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuImportExternalMemory, 19612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__713)) __PYX_ERR(0, 19612, __pyx_L1_error)

  /* "cuda/cuda.pyx":19768
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedBuffer(extMem not None : CUexternalMemory, bufferDesc : CUDA_EXTERNAL_MEMORY_BUFFER_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a buffer onto an imported memory object.
 * 
 */
  __pyx_tuple__1376 = PyTuple_Pack(5, __pyx_n_s_extMem, __pyx_n_s_bufferDesc, __pyx_n_s_devPtr_2, __pyx_n_s_cbufferDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1376)) __PYX_ERR(0, 19768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1376);
  __Pyx_GIVEREF(__pyx_tuple__1376);
  __pyx_codeobj__714 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1376, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuExternalMemoryGetMappedBuffer, 19768, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__714)) __PYX_ERR(0, 19768, __pyx_L1_error)

  /* "cuda/cuda.pyx":19829
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedMipmappedArray(extMem not None : CUexternalMemory, mipmapDesc : CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a CUDA mipmapped array onto an external memory object.
 * 
 */
  __pyx_tuple__1377 = PyTuple_Pack(5, __pyx_n_s_extMem, __pyx_n_s_mipmapDesc, __pyx_n_s_mipmap_2, __pyx_n_s_cmipmapDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1377)) __PYX_ERR(0, 19829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1377);
  __Pyx_GIVEREF(__pyx_tuple__1377);
  __pyx_codeobj__715 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1377, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuExternalMemoryGetMappedMipmapp, 19829, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__715)) __PYX_ERR(0, 19829, __pyx_L1_error)

  /* "cuda/cuda.pyx":19892
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalMemory(extMem not None : CUexternalMemory):             # <<<<<<<<<<<<<<
 *     """ Destroys an external memory object.
 * 
 */
  __pyx_tuple__1378 = PyTuple_Pack(2, __pyx_n_s_extMem, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1378)) __PYX_ERR(0, 19892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1378);
  __Pyx_GIVEREF(__pyx_tuple__1378);
  __pyx_codeobj__716 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1378, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDestroyExternalMemory, 19892, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__716)) __PYX_ERR(0, 19892, __pyx_L1_error)

  /* "cuda/cuda.pyx":19924
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalSemaphore(semHandleDesc : CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external semaphore.
 * 
 */
  __pyx_tuple__1379 = PyTuple_Pack(4, __pyx_n_s_semHandleDesc, __pyx_n_s_extSem_out, __pyx_n_s_csemHandleDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1379)) __PYX_ERR(0, 19924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1379);
  __Pyx_GIVEREF(__pyx_tuple__1379);
  __pyx_codeobj__717 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1379, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuImportExternalSemaphore, 19924, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__717)) __PYX_ERR(0, 19924, __pyx_L1_error)

  /* "cuda/cuda.pyx":20074
 * 
 * @cython.embedsignature(True)
 * def cuSignalExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Signals a set of external semaphore objects.
 * 
 */
  __pyx_tuple__1380 = PyTuple_Pack(11, __pyx_n_s_extSemArray_2, __pyx_n_s_paramsArray_2, __pyx_n_s_numExtSems_2, __pyx_n_s_stream, __pyx_n_s_cextSemArray, __pyx_n_s_idx, __pyx_n_s_cparamsArray, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1380)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1380);
  __Pyx_GIVEREF(__pyx_tuple__1380);
  __pyx_codeobj__718 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1380, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuSignalExternalSemaphoresAsync_2, 20074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__718)) __PYX_ERR(0, 20074, __pyx_L1_error)

  /* "cuda/cuda.pyx":20187
 * 
 * @cython.embedsignature(True)
 * def cuWaitExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Waits on a set of external semaphore objects.
 * 
 */
  __pyx_tuple__1381 = PyTuple_Pack(11, __pyx_n_s_extSemArray_2, __pyx_n_s_paramsArray_2, __pyx_n_s_numExtSems_2, __pyx_n_s_stream, __pyx_n_s_cextSemArray, __pyx_n_s_idx, __pyx_n_s_cparamsArray, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1381)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1381);
  __Pyx_GIVEREF(__pyx_tuple__1381);
  __pyx_codeobj__721 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1381, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuWaitExternalSemaphoresAsync, 20187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__721)) __PYX_ERR(0, 20187, __pyx_L1_error)

  /* "cuda/cuda.pyx":20308
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalSemaphore(extSem not None : CUexternalSemaphore):             # <<<<<<<<<<<<<<
 *     """ Destroys an external semaphore.
 * 
 */
  __pyx_tuple__1382 = PyTuple_Pack(2, __pyx_n_s_extSem, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1382)) __PYX_ERR(0, 20308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1382);
  __Pyx_GIVEREF(__pyx_tuple__1382);
  __pyx_codeobj__723 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1382, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDestroyExternalSemaphore, 20308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__723)) __PYX_ERR(0, 20308, __pyx_L1_error)

  /* "cuda/cuda.pyx":20339
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */
  __pyx_tuple__1383 = PyTuple_Pack(5, __pyx_n_s_stream, __pyx_n_s_addr, __pyx_n_s_value, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1383)) __PYX_ERR(0, 20339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1383);
  __Pyx_GIVEREF(__pyx_tuple__1383);
  __pyx_codeobj__724 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1383, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamWaitValue32, 20339, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__724)) __PYX_ERR(0, 20339, __pyx_L1_error)

  /* "cuda/cuda.pyx":20392
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */
  __pyx_tuple__1384 = PyTuple_Pack(5, __pyx_n_s_stream, __pyx_n_s_addr, __pyx_n_s_value, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1384)) __PYX_ERR(0, 20392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1384);
  __Pyx_GIVEREF(__pyx_tuple__1384);
  __pyx_codeobj__725 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1384, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamWaitValue64, 20392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__725)) __PYX_ERR(0, 20392, __pyx_L1_error)

  /* "cuda/cuda.pyx":20440
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */
  __pyx_tuple__1385 = PyTuple_Pack(5, __pyx_n_s_stream, __pyx_n_s_addr, __pyx_n_s_value, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1385)) __PYX_ERR(0, 20440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1385);
  __Pyx_GIVEREF(__pyx_tuple__1385);
  __pyx_codeobj__726 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1385, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamWriteValue32, 20440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__726)) __PYX_ERR(0, 20440, __pyx_L1_error)

  /* "cuda/cuda.pyx":20489
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */
  __pyx_tuple__1386 = PyTuple_Pack(5, __pyx_n_s_stream, __pyx_n_s_addr, __pyx_n_s_value, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1386)) __PYX_ERR(0, 20489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1386);
  __Pyx_GIVEREF(__pyx_tuple__1386);
  __pyx_codeobj__727 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1386, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamWriteValue64, 20489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__727)) __PYX_ERR(0, 20489, __pyx_L1_error)

  /* "cuda/cuda.pyx":20537
 * 
 * @cython.embedsignature(True)
 * def cuStreamBatchMemOp(stream not None : CUstream, unsigned int count, paramArray : List[CUstreamBatchMemOpParams], unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Batch operations to synchronize the stream via memory operations.
 * 
 */
  __pyx_tuple__1387 = PyTuple_Pack(9, __pyx_n_s_stream, __pyx_n_s_count, __pyx_n_s_paramArray, __pyx_n_s_flags_2, __pyx_n_s_cparamArray, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1387)) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1387);
  __Pyx_GIVEREF(__pyx_tuple__1387);
  __pyx_codeobj__728 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1387, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuStreamBatchMemOp, 20537, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__728)) __PYX_ERR(0, 20537, __pyx_L1_error)

  /* "cuda/cuda.pyx":20601
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetAttribute(attrib not None : CUfunction_attribute, hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns information about a function.
 * 
 */
  __pyx_tuple__1388 = PyTuple_Pack(5, __pyx_n_s_attrib, __pyx_n_s_hfunc, __pyx_n_s_pi, __pyx_n_s_cattrib, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1388)) __PYX_ERR(0, 20601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1388);
  __Pyx_GIVEREF(__pyx_tuple__1388);
  __pyx_codeobj__730 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1388, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncGetAttribute, 20601, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__730)) __PYX_ERR(0, 20601, __pyx_L1_error)

  /* "cuda/cuda.pyx":20669
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetAttribute(hfunc not None : CUfunction, attrib not None : CUfunction_attribute, int value):             # <<<<<<<<<<<<<<
 *     """ Sets information about a function.
 * 
 */
  __pyx_tuple__1389 = PyTuple_Pack(5, __pyx_n_s_hfunc, __pyx_n_s_attrib, __pyx_n_s_value, __pyx_n_s_cattrib, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1389)) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1389);
  __Pyx_GIVEREF(__pyx_tuple__1389);
  __pyx_codeobj__731 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1389, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncSetAttribute, 20669, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__731)) __PYX_ERR(0, 20669, __pyx_L1_error)

  /* "cuda/cuda.pyx":20730
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetCacheConfig(hfunc not None : CUfunction, config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for a device function.
 * 
 */
  __pyx_tuple__1390 = PyTuple_Pack(4, __pyx_n_s_hfunc, __pyx_n_s_config, __pyx_n_s_cconfig, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1390)) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1390);
  __Pyx_GIVEREF(__pyx_tuple__1390);
  __pyx_codeobj__732 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1390, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncSetCacheConfig, 20730, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__732)) __PYX_ERR(0, 20730, __pyx_L1_error)

  /* "cuda/cuda.pyx":20787
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedMemConfig(hfunc not None : CUfunction, config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for a device function.
 * 
 */
  __pyx_tuple__1391 = PyTuple_Pack(4, __pyx_n_s_hfunc, __pyx_n_s_config, __pyx_n_s_cconfig, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1391)) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1391);
  __Pyx_GIVEREF(__pyx_tuple__1391);
  __pyx_codeobj__733 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1391, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncSetSharedMemConfig, 20787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__733)) __PYX_ERR(0, 20787, __pyx_L1_error)

  /* "cuda/cuda.pyx":20853
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetModule(hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns a module handle.
 * 
 */
  __pyx_tuple__1392 = PyTuple_Pack(3, __pyx_n_s_hfunc, __pyx_n_s_hmod, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1392)) __PYX_ERR(0, 20853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1392);
  __Pyx_GIVEREF(__pyx_tuple__1392);
  __pyx_codeobj__734 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1392, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncGetModule, 20853, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__734)) __PYX_ERR(0, 20853, __pyx_L1_error)

  /* "cuda/cuda.pyx":20888
 * 
 * @cython.embedsignature(True)
 * def cuLaunchKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams, void_ptr extra):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_tuple__1393 = PyTuple_Pack(13, __pyx_n_s_f, __pyx_n_s_gridDimX_2, __pyx_n_s_gridDimY_2, __pyx_n_s_gridDimZ_2, __pyx_n_s_blockDimX_2, __pyx_n_s_blockDimY_2, __pyx_n_s_blockDimZ_2, __pyx_n_s_sharedMemBytes_2, __pyx_n_s_hStream_2, __pyx_n_s_kernelParams_2, __pyx_n_s_extra_2, __pyx_n_s_ckernelParams, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1393)) __PYX_ERR(0, 20888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1393);
  __Pyx_GIVEREF(__pyx_tuple__1393);
  __pyx_codeobj__735 = (PyObject*)__Pyx_PyCode_New(11, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1393, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunchKernel, 20888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__735)) __PYX_ERR(0, 20888, __pyx_L1_error)

  /* "cuda/cuda.pyx":21003
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function where thread blocks can cooperate and synchronize as they execute.
 * 
 */
  __pyx_tuple__1394 = PyTuple_Pack(12, __pyx_n_s_f, __pyx_n_s_gridDimX_2, __pyx_n_s_gridDimY_2, __pyx_n_s_gridDimZ_2, __pyx_n_s_blockDimX_2, __pyx_n_s_blockDimY_2, __pyx_n_s_blockDimZ_2, __pyx_n_s_sharedMemBytes_2, __pyx_n_s_hStream_2, __pyx_n_s_kernelParams_2, __pyx_n_s_ckernelParams, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1394)) __PYX_ERR(0, 21003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1394);
  __Pyx_GIVEREF(__pyx_tuple__1394);
  __pyx_codeobj__736 = (PyObject*)__Pyx_PyCode_New(10, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1394, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunchCooperativeKernel, 21003, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__736)) __PYX_ERR(0, 21003, __pyx_L1_error)

  /* "cuda/cuda.pyx":21102
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernelMultiDevice(launchParamsList : List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.
 * 
 */
  __pyx_tuple__1395 = PyTuple_Pack(8, __pyx_n_s_launchParamsList, __pyx_n_s_numDevices, __pyx_n_s_flags_2, __pyx_n_s_claunchParamsList, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1395)) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1395);
  __Pyx_GIVEREF(__pyx_tuple__1395);
  __pyx_codeobj__737 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1395, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunchCooperativeKernelMultiDe_2, 21102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__737)) __PYX_ERR(0, 21102, __pyx_L1_error)

  /* "cuda/cuda.pyx":21264
 * 
 * @cython.embedsignature(True)
 * def cuLaunchHostFunc(hStream not None : CUstream, fn not None : CUhostFn, userData):             # <<<<<<<<<<<<<<
 *     """ Enqueues a host function call in a stream.
 * 
 */
  __pyx_tuple__1396 = PyTuple_Pack(6, __pyx_n_s_hStream_2, __pyx_n_s_fn_2, __pyx_n_s_userData_2, __pyx_n_s_cuserData, __pyx_n_s_cuserData_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1396)) __PYX_ERR(0, 21264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1396);
  __Pyx_GIVEREF(__pyx_tuple__1396);
  __pyx_codeobj__739 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1396, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunchHostFunc, 21264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__739)) __PYX_ERR(0, 21264, __pyx_L1_error)

  /* "cuda/cuda.pyx":21338
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetBlockShape(hfunc not None : CUfunction, int x, int y, int z):             # <<<<<<<<<<<<<<
 *     """ Sets the block-dimensions for the function.
 * 
 */
  __pyx_tuple__1397 = PyTuple_Pack(5, __pyx_n_s_hfunc, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_z, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1397)) __PYX_ERR(0, 21338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1397);
  __Pyx_GIVEREF(__pyx_tuple__1397);
  __pyx_codeobj__740 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1397, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncSetBlockShape, 21338, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__740)) __PYX_ERR(0, 21338, __pyx_L1_error)

  /* "cuda/cuda.pyx":21387
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the dynamic shared-memory size for the function.
 * 
 */
  __pyx_tuple__1398 = PyTuple_Pack(3, __pyx_n_s_hfunc, __pyx_n_s_numbytes, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1398)) __PYX_ERR(0, 21387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1398);
  __Pyx_GIVEREF(__pyx_tuple__1398);
  __pyx_codeobj__741 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1398, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuFuncSetSharedSize, 21387, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__741)) __PYX_ERR(0, 21387, __pyx_L1_error)

  /* "cuda/cuda.pyx":21433
 * 
 * @cython.embedsignature(True)
 * def cuParamSetSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the parameter size for the function.
 * 
 */
  __pyx_tuple__1399 = PyTuple_Pack(3, __pyx_n_s_hfunc, __pyx_n_s_numbytes, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1399)) __PYX_ERR(0, 21433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1399);
  __Pyx_GIVEREF(__pyx_tuple__1399);
  __pyx_codeobj__742 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuParamSetSize, 21433, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__742)) __PYX_ERR(0, 21433, __pyx_L1_error)

  /* "cuda/cuda.pyx":21476
 * 
 * @cython.embedsignature(True)
 * def cuParamSeti(hfunc not None : CUfunction, int offset, unsigned int value):             # <<<<<<<<<<<<<<
 *     """ Adds an integer parameter to the function's argument list.
 * 
 */
  __pyx_tuple__1400 = PyTuple_Pack(4, __pyx_n_s_hfunc, __pyx_n_s_offset_2, __pyx_n_s_value, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1400)) __PYX_ERR(0, 21476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1400);
  __Pyx_GIVEREF(__pyx_tuple__1400);
  __pyx_codeobj__743 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1400, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuParamSeti, 21476, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__743)) __PYX_ERR(0, 21476, __pyx_L1_error)

  /* "cuda/cuda.pyx":21522
 * 
 * @cython.embedsignature(True)
 * def cuParamSetf(hfunc not None : CUfunction, int offset, float value):             # <<<<<<<<<<<<<<
 *     """ Adds a floating-point parameter to the function's argument list.
 * 
 */
  __pyx_tuple__1401 = PyTuple_Pack(4, __pyx_n_s_hfunc, __pyx_n_s_offset_2, __pyx_n_s_value, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1401)) __PYX_ERR(0, 21522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1401);
  __Pyx_GIVEREF(__pyx_tuple__1401);
  __pyx_codeobj__744 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1401, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuParamSetf, 21522, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__744)) __PYX_ERR(0, 21522, __pyx_L1_error)

  /* "cuda/cuda.pyx":21568
 * 
 * @cython.embedsignature(True)
 * def cuParamSetv(hfunc not None : CUfunction, int offset, ptr, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Adds arbitrary data to the function's argument list.
 * 
 */
  __pyx_tuple__1402 = PyTuple_Pack(7, __pyx_n_s_hfunc, __pyx_n_s_offset_2, __pyx_n_s_ptr_2, __pyx_n_s_numbytes, __pyx_n_s_cptr, __pyx_n_s_cptr_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1402)) __PYX_ERR(0, 21568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1402);
  __Pyx_GIVEREF(__pyx_tuple__1402);
  __pyx_codeobj__745 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1402, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuParamSetv, 21568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__745)) __PYX_ERR(0, 21568, __pyx_L1_error)

  /* "cuda/cuda.pyx":21618
 * 
 * @cython.embedsignature(True)
 * def cuLaunch(f not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_tuple__1403 = PyTuple_Pack(2, __pyx_n_s_f, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1403)) __PYX_ERR(0, 21618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1403);
  __Pyx_GIVEREF(__pyx_tuple__1403);
  __pyx_codeobj__746 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1403, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunch, 21618, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__746)) __PYX_ERR(0, 21618, __pyx_L1_error)

  /* "cuda/cuda.pyx":21676
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGrid(f not None : CUfunction, int grid_width, int grid_height):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_tuple__1404 = PyTuple_Pack(4, __pyx_n_s_f, __pyx_n_s_grid_width, __pyx_n_s_grid_height, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1404)) __PYX_ERR(0, 21676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1404);
  __Pyx_GIVEREF(__pyx_tuple__1404);
  __pyx_codeobj__747 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1404, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunchGrid, 21676, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__747)) __PYX_ERR(0, 21676, __pyx_L1_error)

  /* "cuda/cuda.pyx":21738
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGridAsync(f not None : CUfunction, int grid_width, int grid_height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_tuple__1405 = PyTuple_Pack(5, __pyx_n_s_f, __pyx_n_s_grid_width, __pyx_n_s_grid_height, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1405)) __PYX_ERR(0, 21738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1405);
  __Pyx_GIVEREF(__pyx_tuple__1405);
  __pyx_codeobj__748 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1405, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuLaunchGridAsync, 21738, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__748)) __PYX_ERR(0, 21738, __pyx_L1_error)

  /* "cuda/cuda.pyx":21808
 * 
 * @cython.embedsignature(True)
 * def cuParamSetTexRef(hfunc not None : CUfunction, int texunit, hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Adds a texture-reference to the function's argument list.
 * 
 */
  __pyx_tuple__1406 = PyTuple_Pack(4, __pyx_n_s_hfunc, __pyx_n_s_texunit, __pyx_n_s_hTexRef, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1406)) __PYX_ERR(0, 21808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1406);
  __Pyx_GIVEREF(__pyx_tuple__1406);
  __pyx_codeobj__749 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1406, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuParamSetTexRef, 21808, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__749)) __PYX_ERR(0, 21808, __pyx_L1_error)

  /* "cuda/cuda.pyx":21842
 * 
 * @cython.embedsignature(True)
 * def cuGraphCreate(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Creates a graph.
 * 
 */
  __pyx_tuple__1407 = PyTuple_Pack(4, __pyx_n_s_flags_2, __pyx_n_s_flags_2, __pyx_n_s_phGraph, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1407)) __PYX_ERR(0, 21842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1407);
  __Pyx_GIVEREF(__pyx_tuple__1407);
  __pyx_codeobj__750 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1407, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphCreate, 21842, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__750)) __PYX_ERR(0, 21842, __pyx_L1_error)

  /* "cuda/cuda.pyx":21883
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddKernelNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a kernel execution node and adds it to a graph.
 * 
 */
  __pyx_tuple__1408 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_nodeParams, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1408)) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1408);
  __Pyx_GIVEREF(__pyx_tuple__1408);
  __pyx_codeobj__751 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1408, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddKernelNode, 21883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__751)) __PYX_ERR(0, 21883, __pyx_L1_error)

  /* "cuda/cuda.pyx":22005
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a kernel node's parameters.
 * 
 */
  __pyx_tuple__1409 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1409)) __PYX_ERR(0, 22005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1409);
  __Pyx_GIVEREF(__pyx_tuple__1409);
  __pyx_codeobj__752 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1409, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphKernelNodeGetParams, 22005, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__752)) __PYX_ERR(0, 22005, __pyx_L1_error)

  /* "cuda/cuda.pyx":22044
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a kernel node's parameters.
 * 
 */
  __pyx_tuple__1410 = PyTuple_Pack(4, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1410)) __PYX_ERR(0, 22044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1410);
  __Pyx_GIVEREF(__pyx_tuple__1410);
  __pyx_codeobj__753 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1410, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphKernelNodeSetParams, 22044, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__753)) __PYX_ERR(0, 22044, __pyx_L1_error)

  /* "cuda/cuda.pyx":22077
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemcpyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memcpy node and adds it to a graph.
 * 
 */
  __pyx_tuple__1411 = PyTuple_Pack(12, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_copyParams, __pyx_n_s_ctx, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_ccopyParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1411)) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1411);
  __Pyx_GIVEREF(__pyx_tuple__1411);
  __pyx_codeobj__754 = (PyObject*)__Pyx_PyCode_New(5, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1411, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddMemcpyNode, 22077, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__754)) __PYX_ERR(0, 22077, __pyx_L1_error)

  /* "cuda/cuda.pyx":22157
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memcpy node's parameters.
 * 
 */
  __pyx_tuple__1412 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1412)) __PYX_ERR(0, 22157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1412);
  __Pyx_GIVEREF(__pyx_tuple__1412);
  __pyx_codeobj__755 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1412, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphMemcpyNodeGetParams, 22157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__755)) __PYX_ERR(0, 22157, __pyx_L1_error)

  /* "cuda/cuda.pyx":22188
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Sets a memcpy node's parameters.
 * 
 */
  __pyx_tuple__1413 = PyTuple_Pack(4, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1413)) __PYX_ERR(0, 22188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1413);
  __Pyx_GIVEREF(__pyx_tuple__1413);
  __pyx_codeobj__756 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1413, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphMemcpyNodeSetParams, 22188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__756)) __PYX_ERR(0, 22188, __pyx_L1_error)

  /* "cuda/cuda.pyx":22221
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemsetNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memset node and adds it to a graph.
 * 
 */
  __pyx_tuple__1414 = PyTuple_Pack(12, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_memsetParams, __pyx_n_s_ctx, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_cmemsetParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1414)) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1414);
  __Pyx_GIVEREF(__pyx_tuple__1414);
  __pyx_codeobj__757 = (PyObject*)__Pyx_PyCode_New(5, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1414, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddMemsetNode, 22221, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__757)) __PYX_ERR(0, 22221, __pyx_L1_error)

  /* "cuda/cuda.pyx":22292
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memset node's parameters.
 * 
 */
  __pyx_tuple__1415 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1415)) __PYX_ERR(0, 22292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1415);
  __Pyx_GIVEREF(__pyx_tuple__1415);
  __pyx_codeobj__758 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1415, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphMemsetNodeGetParams, 22292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__758)) __PYX_ERR(0, 22292, __pyx_L1_error)

  /* "cuda/cuda.pyx":22323
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMSET_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a memset node's parameters.
 * 
 */
  __pyx_tuple__1416 = PyTuple_Pack(4, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1416)) __PYX_ERR(0, 22323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1416);
  __Pyx_GIVEREF(__pyx_tuple__1416);
  __pyx_codeobj__759 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1416, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphMemsetNodeSetParams, 22323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__759)) __PYX_ERR(0, 22323, __pyx_L1_error)

  /* "cuda/cuda.pyx":22356
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddHostNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a host execution node and adds it to a graph.
 * 
 */
  __pyx_tuple__1417 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_nodeParams, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1417)) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1417);
  __Pyx_GIVEREF(__pyx_tuple__1417);
  __pyx_codeobj__760 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1417, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddHostNode, 22356, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__760)) __PYX_ERR(0, 22356, __pyx_L1_error)

  /* "cuda/cuda.pyx":22425
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a host node's parameters.
 * 
 */
  __pyx_tuple__1418 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1418)) __PYX_ERR(0, 22425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1418);
  __Pyx_GIVEREF(__pyx_tuple__1418);
  __pyx_codeobj__761 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1418, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphHostNodeGetParams, 22425, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__761)) __PYX_ERR(0, 22425, __pyx_L1_error)

  /* "cuda/cuda.pyx":22456
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a host node's parameters.
 * 
 */
  __pyx_tuple__1419 = PyTuple_Pack(4, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1419)) __PYX_ERR(0, 22456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1419);
  __Pyx_GIVEREF(__pyx_tuple__1419);
  __pyx_codeobj__762 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1419, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphHostNodeSetParams, 22456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__762)) __PYX_ERR(0, 22456, __pyx_L1_error)

  /* "cuda/cuda.pyx":22489
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddChildGraphNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Creates a child graph node and adds it to a graph.
 * 
 */
  __pyx_tuple__1420 = PyTuple_Pack(10, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_childGraph, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1420)) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1420);
  __Pyx_GIVEREF(__pyx_tuple__1420);
  __pyx_codeobj__763 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1420, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddChildGraphNode, 22489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__763)) __PYX_ERR(0, 22489, __pyx_L1_error)

  /* "cuda/cuda.pyx":22558
 * 
 * @cython.embedsignature(True)
 * def cuGraphChildGraphNodeGetGraph(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Gets a handle to the embedded graph of a child graph node.
 * 
 */
  __pyx_tuple__1421 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_phGraph, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1421)) __PYX_ERR(0, 22558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1421);
  __Pyx_GIVEREF(__pyx_tuple__1421);
  __pyx_codeobj__764 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1421, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphChildGraphNodeGetGraph, 22558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__764)) __PYX_ERR(0, 22558, __pyx_L1_error)

  /* "cuda/cuda.pyx":22593
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEmptyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Creates an empty node and adds it to a graph.
 * 
 */
  __pyx_tuple__1422 = PyTuple_Pack(9, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1422)) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1422);
  __Pyx_GIVEREF(__pyx_tuple__1422);
  __pyx_codeobj__765 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1422, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddEmptyNode, 22593, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__765)) __PYX_ERR(0, 22593, __pyx_L1_error)

  /* "cuda/cuda.pyx":22658
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventRecordNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event record node and adds it to a graph.
 * 
 */
  __pyx_tuple__1423 = PyTuple_Pack(10, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_event, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1423)) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1423);
  __Pyx_GIVEREF(__pyx_tuple__1423);
  __pyx_codeobj__766 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1423, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddEventRecordNode, 22658, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__766)) __PYX_ERR(0, 22658, __pyx_L1_error)

  /* "cuda/cuda.pyx":22726
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event record node.
 * 
 */
  __pyx_tuple__1424 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_event_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1424)) __PYX_ERR(0, 22726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1424);
  __Pyx_GIVEREF(__pyx_tuple__1424);
  __pyx_codeobj__767 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1424, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphEventRecordNodeGetEvent, 22726, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__767)) __PYX_ERR(0, 22726, __pyx_L1_error)

  /* "cuda/cuda.pyx":22759
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event record node's event.
 * 
 */
  __pyx_tuple__1425 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_event, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1425)) __PYX_ERR(0, 22759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1425);
  __Pyx_GIVEREF(__pyx_tuple__1425);
  __pyx_codeobj__768 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1425, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphEventRecordNodeSetEvent, 22759, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__768)) __PYX_ERR(0, 22759, __pyx_L1_error)

  /* "cuda/cuda.pyx":22793
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event wait node and adds it to a graph.
 * 
 */
  __pyx_tuple__1426 = PyTuple_Pack(10, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_event, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1426)) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1426);
  __Pyx_GIVEREF(__pyx_tuple__1426);
  __pyx_codeobj__769 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1426, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddEventWaitNode, 22793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__769)) __PYX_ERR(0, 22793, __pyx_L1_error)

  /* "cuda/cuda.pyx":22862
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event wait node.
 * 
 */
  __pyx_tuple__1427 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_event_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1427)) __PYX_ERR(0, 22862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1427);
  __Pyx_GIVEREF(__pyx_tuple__1427);
  __pyx_codeobj__770 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1427, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphEventWaitNodeGetEvent, 22862, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__770)) __PYX_ERR(0, 22862, __pyx_L1_error)

  /* "cuda/cuda.pyx":22895
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event wait node's event.
 * 
 */
  __pyx_tuple__1428 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_event, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1428)) __PYX_ERR(0, 22895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1428);
  __Pyx_GIVEREF(__pyx_tuple__1428);
  __pyx_codeobj__771 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1428, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphEventWaitNodeSetEvent, 22895, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__771)) __PYX_ERR(0, 22895, __pyx_L1_error)

  /* "cuda/cuda.pyx":22929
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresSignalNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore signal node and adds it to a graph.
 * 
 */
  __pyx_tuple__1429 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_nodeParams, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1429)) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1429);
  __Pyx_GIVEREF(__pyx_tuple__1429);
  __pyx_codeobj__772 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1429, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddExternalSemaphoresSign_2, 22929, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__772)) __PYX_ERR(0, 22929, __pyx_L1_error)

  /* "cuda/cuda.pyx":23005
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore signal node's parameters.
 * 
 */
  __pyx_tuple__1430 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_params_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1430)) __PYX_ERR(0, 23005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1430);
  __Pyx_GIVEREF(__pyx_tuple__1430);
  __pyx_codeobj__773 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1430, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExternalSemaphoresSignalN, 23005, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__773)) __PYX_ERR(0, 23005, __pyx_L1_error)

  /* "cuda/cuda.pyx":23044
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore signal node's parameters.
 * 
 */
  __pyx_tuple__1431 = PyTuple_Pack(4, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1431)) __PYX_ERR(0, 23044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1431);
  __Pyx_GIVEREF(__pyx_tuple__1431);
  __pyx_codeobj__774 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1431, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExternalSemaphoresSignalN_2, 23044, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__774)) __PYX_ERR(0, 23044, __pyx_L1_error)

  /* "cuda/cuda.pyx":23080
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore wait node and adds it to a graph.
 * 
 */
  __pyx_tuple__1432 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_nodeParams, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1432)) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1432);
  __Pyx_GIVEREF(__pyx_tuple__1432);
  __pyx_codeobj__775 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1432, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddExternalSemaphoresWait_2, 23080, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__775)) __PYX_ERR(0, 23080, __pyx_L1_error)

  /* "cuda/cuda.pyx":23156
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore wait node's parameters.
 * 
 */
  __pyx_tuple__1433 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_params_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1433)) __PYX_ERR(0, 23156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1433);
  __Pyx_GIVEREF(__pyx_tuple__1433);
  __pyx_codeobj__776 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1433, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExternalSemaphoresWaitNod, 23156, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__776)) __PYX_ERR(0, 23156, __pyx_L1_error)

  /* "cuda/cuda.pyx":23194
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore wait node's parameters.
 * 
 */
  __pyx_tuple__1434 = PyTuple_Pack(4, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1434)) __PYX_ERR(0, 23194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1434);
  __Pyx_GIVEREF(__pyx_tuple__1434);
  __pyx_codeobj__777 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1434, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExternalSemaphoresWaitNod_2, 23194, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__777)) __PYX_ERR(0, 23194, __pyx_L1_error)

  /* "cuda/cuda.pyx":23229
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemAllocNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an allocation node and adds it to a graph.
 * 
 */
  __pyx_tuple__1435 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_nodeParams, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1435)) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1435);
  __Pyx_GIVEREF(__pyx_tuple__1435);
  __pyx_codeobj__778 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1435, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddMemAllocNode, 23229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__778)) __PYX_ERR(0, 23229, __pyx_L1_error)

  /* "cuda/cuda.pyx":23332
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemAllocNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory alloc node's parameters.
 * 
 */
  __pyx_tuple__1436 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_params_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1436)) __PYX_ERR(0, 23332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1436);
  __Pyx_GIVEREF(__pyx_tuple__1436);
  __pyx_codeobj__779 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1436, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphMemAllocNodeGetParams, 23332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__779)) __PYX_ERR(0, 23332, __pyx_L1_error)

  /* "cuda/cuda.pyx":23365
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemFreeNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Creates a memory free node and adds it to a graph.
 * 
 */
  __pyx_tuple__1437 = PyTuple_Pack(10, __pyx_n_s_hGraph, __pyx_n_s_dependencies, __pyx_n_s_numDependencies, __pyx_n_s_dptr_2, __pyx_n_s_phGraphNode, __pyx_n_s_cdependencies, __pyx_n_s_idx, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1437)) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1437);
  __Pyx_GIVEREF(__pyx_tuple__1437);
  __pyx_codeobj__780 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1437, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddMemFreeNode, 23365, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__780)) __PYX_ERR(0, 23365, __pyx_L1_error)

  /* "cuda/cuda.pyx":23444
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemFreeNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory free node's parameters.
 * 
 */
  __pyx_tuple__1438 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_dptr_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1438)) __PYX_ERR(0, 23444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1438);
  __Pyx_GIVEREF(__pyx_tuple__1438);
  __pyx_codeobj__781 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1438, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphMemFreeNodeGetParams, 23444, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__781)) __PYX_ERR(0, 23444, __pyx_L1_error)

  /* "cuda/cuda.pyx":23474
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGraphMemTrim(device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Free unused memory that was cached on the specified device for use with graphs back to the OS.
 * 
 */
  __pyx_tuple__1439 = PyTuple_Pack(2, __pyx_n_s_device, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1439)) __PYX_ERR(0, 23474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1439);
  __Pyx_GIVEREF(__pyx_tuple__1439);
  __pyx_codeobj__782 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGraphMemTrim, 23474, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__782)) __PYX_ERR(0, 23474, __pyx_L1_error)

  /* "cuda/cuda.pyx":23505
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute):             # <<<<<<<<<<<<<<
 *     """ Query asynchronous allocation attributes related to graphs.
 * 
 */
  __pyx_tuple__1440 = PyTuple_Pack(6, __pyx_n_s_device, __pyx_n_s_attr, __pyx_n_s_cattr, __pyx_n_s_cvalue, __pyx_n_s_cvalue_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1440)) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1440);
  __Pyx_GIVEREF(__pyx_tuple__1440);
  __pyx_codeobj__783 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1440, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetGraphMemAttribute, 23505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__783)) __PYX_ERR(0, 23505, __pyx_L1_error)

  /* "cuda/cuda.pyx":23548
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Set asynchronous allocation attributes related to graphs.
 * 
 */
  __pyx_tuple__1441 = PyTuple_Pack(7, __pyx_n_s_device, __pyx_n_s_attr, __pyx_n_s_value, __pyx_n_s_cattr, __pyx_n_s_cvalue, __pyx_n_s_cvalue_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1441)) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1441);
  __Pyx_GIVEREF(__pyx_tuple__1441);
  __pyx_codeobj__784 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1441, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceSetGraphMemAttribute, 23548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__784)) __PYX_ERR(0, 23548, __pyx_L1_error)

  /* "cuda/cuda.pyx":23589
 * 
 * @cython.embedsignature(True)
 * def cuGraphClone(originalGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Clones a graph.
 * 
 */
  __pyx_tuple__1442 = PyTuple_Pack(3, __pyx_n_s_originalGraph, __pyx_n_s_phGraphClone, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1442)) __PYX_ERR(0, 23589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1442);
  __Pyx_GIVEREF(__pyx_tuple__1442);
  __pyx_codeobj__785 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1442, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphClone, 23589, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__785)) __PYX_ERR(0, 23589, __pyx_L1_error)

  /* "cuda/cuda.pyx":23624
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeFindInClone(hOriginalNode not None : CUgraphNode, hClonedGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Finds a cloned version of a node.
 * 
 */
  __pyx_tuple__1443 = PyTuple_Pack(4, __pyx_n_s_hOriginalNode, __pyx_n_s_hClonedGraph, __pyx_n_s_phNode, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1443)) __PYX_ERR(0, 23624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1443);
  __Pyx_GIVEREF(__pyx_tuple__1443);
  __pyx_codeobj__786 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1443, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphNodeFindInClone, 23624, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__786)) __PYX_ERR(0, 23624, __pyx_L1_error)

  /* "cuda/cuda.pyx":23660
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetType(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a node's type.
 * 
 */
  __pyx_tuple__1444 = PyTuple_Pack(3, __pyx_n_s_hNode, __pyx_n_s_typename, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1444)) __PYX_ERR(0, 23660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1444);
  __Pyx_GIVEREF(__pyx_tuple__1444);
  __pyx_codeobj__787 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1444, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphNodeGetType, 23660, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__787)) __PYX_ERR(0, 23660, __pyx_L1_error)

  /* "cuda/cuda.pyx":23699
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetNodes(hGraph not None : CUgraph, size_t numNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's nodes.
 * 
 */
  __pyx_tuple__1445 = PyTuple_Pack(7, __pyx_n_s_hGraph, __pyx_n_s_numNodes, __pyx_n_s_graph_length, __pyx_n_s_cnodes, __pyx_n_s_pynodes, __pyx_n_s_err, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__1445)) __PYX_ERR(0, 23699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1445);
  __Pyx_GIVEREF(__pyx_tuple__1445);
  __pyx_codeobj__788 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1445, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphGetNodes, 23699, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__788)) __PYX_ERR(0, 23699, __pyx_L1_error)

  /* "cuda/cuda.pyx":23750
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetRootNodes(hGraph not None : CUgraph, size_t numRootNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's root nodes.
 * 
 */
  __pyx_tuple__1446 = PyTuple_Pack(7, __pyx_n_s_hGraph, __pyx_n_s_numRootNodes, __pyx_n_s_graph_length, __pyx_n_s_crootNodes, __pyx_n_s_pyrootNodes, __pyx_n_s_err, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__1446)) __PYX_ERR(0, 23750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1446);
  __Pyx_GIVEREF(__pyx_tuple__1446);
  __pyx_codeobj__789 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1446, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphGetRootNodes, 23750, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__789)) __PYX_ERR(0, 23750, __pyx_L1_error)

  /* "cuda/cuda.pyx":23801
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetEdges(hGraph not None : CUgraph, size_t numEdges = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's dependency edges.
 * 
 */
  __pyx_tuple__1447 = PyTuple_Pack(10, __pyx_n_s_hGraph, __pyx_n_s_numEdges, __pyx_n_s_graph_length, __pyx_n_s_cfrom, __pyx_n_s_pyfrom, __pyx_n_s_cto, __pyx_n_s_pyto, __pyx_n_s_err, __pyx_n_s_idx, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__1447)) __PYX_ERR(0, 23801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1447);
  __Pyx_GIVEREF(__pyx_tuple__1447);
  __pyx_codeobj__790 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1447, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphGetEdges, 23801, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__790)) __PYX_ERR(0, 23801, __pyx_L1_error)

  /* "cuda/cuda.pyx":23866
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependencies(hNode not None : CUgraphNode, size_t numDependencies = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependencies.
 * 
 */
  __pyx_tuple__1448 = PyTuple_Pack(7, __pyx_n_s_hNode, __pyx_n_s_numDependencies, __pyx_n_s_graph_length, __pyx_n_s_cdependencies, __pyx_n_s_pydependencies, __pyx_n_s_err, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__1448)) __PYX_ERR(0, 23866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1448);
  __Pyx_GIVEREF(__pyx_tuple__1448);
  __pyx_codeobj__791 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1448, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphNodeGetDependencies, 23866, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__791)) __PYX_ERR(0, 23866, __pyx_L1_error)

  /* "cuda/cuda.pyx":23918
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependentNodes(hNode not None : CUgraphNode, size_t numDependentNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependent nodes.
 * 
 */
  __pyx_tuple__1449 = PyTuple_Pack(7, __pyx_n_s_hNode, __pyx_n_s_numDependentNodes, __pyx_n_s_graph_length, __pyx_n_s_cdependentNodes, __pyx_n_s_pydependentNodes, __pyx_n_s_err, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__1449)) __PYX_ERR(0, 23918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1449);
  __Pyx_GIVEREF(__pyx_tuple__1449);
  __pyx_codeobj__792 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1449, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphNodeGetDependentNodes, 23918, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__792)) __PYX_ERR(0, 23918, __pyx_L1_error)

  /* "cuda/cuda.pyx":23970
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Adds dependency edges to a graph.
 * 
 */
  __pyx_tuple__1450 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_from, __pyx_n_s_to, __pyx_n_s_numDependencies, __pyx_n_s_cfrom, __pyx_n_s_idx, __pyx_n_s_cto, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1450)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1450);
  __Pyx_GIVEREF(__pyx_tuple__1450);
  __pyx_codeobj__793 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1450, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphAddDependencies, 23970, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__793)) __PYX_ERR(0, 23970, __pyx_L1_error)

  /* "cuda/cuda.pyx":24038
 * 
 * @cython.embedsignature(True)
 * def cuGraphRemoveDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Removes dependency edges from a graph.
 * 
 */
  __pyx_tuple__1451 = PyTuple_Pack(11, __pyx_n_s_hGraph, __pyx_n_s_from, __pyx_n_s_to, __pyx_n_s_numDependencies, __pyx_n_s_cfrom, __pyx_n_s_idx, __pyx_n_s_cto, __pyx_n_s_err, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__1451)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1451);
  __Pyx_GIVEREF(__pyx_tuple__1451);
  __pyx_codeobj__796 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1451, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphRemoveDependencies, 24038, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__796)) __PYX_ERR(0, 24038, __pyx_L1_error)

  /* "cuda/cuda.pyx":24110
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroyNode(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Remove a node from the graph.
 * 
 */
  __pyx_tuple__1452 = PyTuple_Pack(2, __pyx_n_s_hNode, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1452)) __PYX_ERR(0, 24110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1452);
  __Pyx_GIVEREF(__pyx_tuple__1452);
  __pyx_codeobj__797 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1452, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphDestroyNode, 24110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__797)) __PYX_ERR(0, 24110, __pyx_L1_error)

  /* "cuda/cuda.pyx":24145
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiate(hGraph not None : CUgraph, char* logBuffer, size_t bufferSize):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */
  __pyx_tuple__1453 = PyTuple_Pack(6, __pyx_n_s_hGraph, __pyx_n_s_logBuffer, __pyx_n_s_bufferSize, __pyx_n_s_phGraphExec, __pyx_n_s_phErrorNode, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1453)) __PYX_ERR(0, 24145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1453);
  __Pyx_GIVEREF(__pyx_tuple__1453);
  __pyx_codeobj__798 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1453, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphInstantiate, 24145, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__798)) __PYX_ERR(0, 24145, __pyx_L1_error)

  /* "cuda/cuda.pyx":24195
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiateWithFlags(hGraph not None : CUgraph, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */
  __pyx_tuple__1454 = PyTuple_Pack(4, __pyx_n_s_hGraph, __pyx_n_s_flags_2, __pyx_n_s_phGraphExec, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1454)) __PYX_ERR(0, 24195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1454);
  __Pyx_GIVEREF(__pyx_tuple__1454);
  __pyx_codeobj__799 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1454, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphInstantiateWithFlags, 24195, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__799)) __PYX_ERR(0, 24195, __pyx_L1_error)

  /* "cuda/cuda.pyx":24246
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecKernelNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a kernel node in the given graphExec.
 * 
 */
  __pyx_tuple__1455 = PyTuple_Pack(5, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1455)) __PYX_ERR(0, 24246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1455);
  __Pyx_GIVEREF(__pyx_tuple__1455);
  __pyx_codeobj__800 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1455, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecKernelNodeSetParams, 24246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__800)) __PYX_ERR(0, 24246, __pyx_L1_error)

  /* "cuda/cuda.pyx":24299
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemcpyNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memcpy node in the given graphExec.
 * 
 */
  __pyx_tuple__1456 = PyTuple_Pack(6, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_copyParams, __pyx_n_s_ctx, __pyx_n_s_ccopyParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1456)) __PYX_ERR(0, 24299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1456);
  __Pyx_GIVEREF(__pyx_tuple__1456);
  __pyx_codeobj__801 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1456, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecMemcpyNodeSetParams, 24299, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__801)) __PYX_ERR(0, 24299, __pyx_L1_error)

  /* "cuda/cuda.pyx":24360
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemsetNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memset node in the given graphExec.
 * 
 */
  __pyx_tuple__1457 = PyTuple_Pack(6, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_memsetParams, __pyx_n_s_ctx, __pyx_n_s_cmemsetParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1457)) __PYX_ERR(0, 24360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1457);
  __Pyx_GIVEREF(__pyx_tuple__1457);
  __pyx_codeobj__802 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1457, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecMemsetNodeSetParams, 24360, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__802)) __PYX_ERR(0, 24360, __pyx_L1_error)

  /* "cuda/cuda.pyx":24421
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecHostNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a host node in the given graphExec.
 * 
 */
  __pyx_tuple__1458 = PyTuple_Pack(5, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1458)) __PYX_ERR(0, 24421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1458);
  __Pyx_GIVEREF(__pyx_tuple__1458);
  __pyx_codeobj__803 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1458, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecHostNodeSetParams, 24421, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__803)) __PYX_ERR(0, 24421, __pyx_L1_error)

  /* "cuda/cuda.pyx":24470
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecChildGraphNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Updates node parameters in the child graph node in the given graphExec.
 * 
 */
  __pyx_tuple__1459 = PyTuple_Pack(4, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_childGraph, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1459)) __PYX_ERR(0, 24470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1459);
  __Pyx_GIVEREF(__pyx_tuple__1459);
  __pyx_codeobj__804 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1459, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecChildGraphNodeSetPara, 24470, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__804)) __PYX_ERR(0, 24470, __pyx_L1_error)

  /* "cuda/cuda.pyx":24525
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventRecordNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event record node in the given graphExec.
 * 
 */
  __pyx_tuple__1460 = PyTuple_Pack(4, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_event, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1460)) __PYX_ERR(0, 24525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1460);
  __Pyx_GIVEREF(__pyx_tuple__1460);
  __pyx_codeobj__805 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1460, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecEventRecordNodeSetEve, 24525, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__805)) __PYX_ERR(0, 24525, __pyx_L1_error)

  /* "cuda/cuda.pyx":24577
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventWaitNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event wait node in the given graphExec.
 * 
 */
  __pyx_tuple__1461 = PyTuple_Pack(4, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_event, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1461)) __PYX_ERR(0, 24577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1461);
  __Pyx_GIVEREF(__pyx_tuple__1461);
  __pyx_codeobj__806 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1461, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecEventWaitNodeSetEvent, 24577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__806)) __PYX_ERR(0, 24577, __pyx_L1_error)

  /* "cuda/cuda.pyx":24629
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore signal node in the given graphExec.
 * 
 */
  __pyx_tuple__1462 = PyTuple_Pack(5, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1462)) __PYX_ERR(0, 24629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1462);
  __Pyx_GIVEREF(__pyx_tuple__1462);
  __pyx_codeobj__807 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1462, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecExternalSemaphoresSig, 24629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__807)) __PYX_ERR(0, 24629, __pyx_L1_error)

  /* "cuda/cuda.pyx":24685
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore wait node in the given graphExec.
 * 
 */
  __pyx_tuple__1463 = PyTuple_Pack(5, __pyx_n_s_hGraphExec, __pyx_n_s_hNode, __pyx_n_s_nodeParams, __pyx_n_s_cnodeParams_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1463)) __PYX_ERR(0, 24685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1463);
  __Pyx_GIVEREF(__pyx_tuple__1463);
  __pyx_codeobj__808 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1463, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecExternalSemaphoresWai, 24685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__808)) __PYX_ERR(0, 24685, __pyx_L1_error)

  /* "cuda/cuda.pyx":24741
 * 
 * @cython.embedsignature(True)
 * def cuGraphUpload(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Uploads an executable graph in a stream.
 * 
 */
  __pyx_tuple__1464 = PyTuple_Pack(3, __pyx_n_s_hGraphExec, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1464)) __PYX_ERR(0, 24741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1464);
  __Pyx_GIVEREF(__pyx_tuple__1464);
  __pyx_codeobj__809 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1464, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphUpload, 24741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__809)) __PYX_ERR(0, 24741, __pyx_L1_error)

  /* "cuda/cuda.pyx":24777
 * 
 * @cython.embedsignature(True)
 * def cuGraphLaunch(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches an executable graph in a stream.
 * 
 */
  __pyx_tuple__1465 = PyTuple_Pack(3, __pyx_n_s_hGraphExec, __pyx_n_s_hStream_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1465)) __PYX_ERR(0, 24777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1465);
  __Pyx_GIVEREF(__pyx_tuple__1465);
  __pyx_codeobj__810 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1465, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphLaunch, 24777, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__810)) __PYX_ERR(0, 24777, __pyx_L1_error)

  /* "cuda/cuda.pyx":24818
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecDestroy(hGraphExec not None : CUgraphExec):             # <<<<<<<<<<<<<<
 *     """ Destroys an executable graph.
 * 
 */
  __pyx_tuple__1466 = PyTuple_Pack(2, __pyx_n_s_hGraphExec, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1466)) __PYX_ERR(0, 24818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1466);
  __Pyx_GIVEREF(__pyx_tuple__1466);
  __pyx_codeobj__811 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1466, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecDestroy, 24818, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__811)) __PYX_ERR(0, 24818, __pyx_L1_error)

  /* "cuda/cuda.pyx":24850
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroy(hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Destroys a graph.
 * 
 */
  __pyx_tuple__1467 = PyTuple_Pack(2, __pyx_n_s_hGraph, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1467)) __PYX_ERR(0, 24850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1467);
  __Pyx_GIVEREF(__pyx_tuple__1467);
  __pyx_codeobj__812 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1467, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphDestroy, 24850, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__812)) __PYX_ERR(0, 24850, __pyx_L1_error)

  /* "cuda/cuda.pyx":24878
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecUpdate(hGraphExec not None : CUgraphExec, hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Check whether an executable graph can be updated with a graph and perform the update if possible.
 * 
 */
  __pyx_tuple__1468 = PyTuple_Pack(5, __pyx_n_s_hGraphExec, __pyx_n_s_hGraph, __pyx_n_s_hErrorNode_out, __pyx_n_s_updateResult_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1468)) __PYX_ERR(0, 24878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1468);
  __Pyx_GIVEREF(__pyx_tuple__1468);
  __pyx_codeobj__813 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1468, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphExecUpdate, 24878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__813)) __PYX_ERR(0, 24878, __pyx_L1_error)

  /* "cuda/cuda.pyx":24970
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeCopyAttributes(dst not None : CUgraphNode, src not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source node to destination node.
 * 
 */
  __pyx_tuple__1469 = PyTuple_Pack(3, __pyx_n_s_dst_2, __pyx_n_s_src, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1469)) __PYX_ERR(0, 24970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1469);
  __Pyx_GIVEREF(__pyx_tuple__1469);
  __pyx_codeobj__814 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1469, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphKernelNodeCopyAttributes, 24970, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__814)) __PYX_ERR(0, 24970, __pyx_L1_error)

  /* "cuda/cuda.pyx":24995
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries node attribute.
 * 
 */
  __pyx_tuple__1470 = PyTuple_Pack(5, __pyx_n_s_hNode, __pyx_n_s_attr, __pyx_n_s_cattr, __pyx_n_s_value_out, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1470)) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1470);
  __Pyx_GIVEREF(__pyx_tuple__1470);
  __pyx_codeobj__815 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1470, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphKernelNodeGetAttribute, 24995, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__815)) __PYX_ERR(0, 24995, __pyx_L1_error)

  /* "cuda/cuda.pyx":25023
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID, value : CUkernelNodeAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets node attribute.
 * 
 */
  __pyx_tuple__1471 = PyTuple_Pack(6, __pyx_n_s_hNode, __pyx_n_s_attr, __pyx_n_s_value, __pyx_n_s_cattr, __pyx_n_s_cvalue_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1471)) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1471);
  __Pyx_GIVEREF(__pyx_tuple__1471);
  __pyx_codeobj__816 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1471, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphKernelNodeSetAttribute, 25023, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__816)) __PYX_ERR(0, 25023, __pyx_L1_error)

  /* "cuda/cuda.pyx":25053
 * 
 * @cython.embedsignature(True)
 * def cuGraphDebugDotPrint(hGraph not None : CUgraph, char* path, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a DOT file describing graph structure.
 * 
 */
  __pyx_tuple__1472 = PyTuple_Pack(4, __pyx_n_s_hGraph, __pyx_n_s_path, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1472)) __PYX_ERR(0, 25053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1472);
  __Pyx_GIVEREF(__pyx_tuple__1472);
  __pyx_codeobj__817 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1472, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphDebugDotPrint, 25053, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__817)) __PYX_ERR(0, 25053, __pyx_L1_error)

  /* "cuda/cuda.pyx":25085
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectCreate(ptr, destroy not None : CUhostFn, unsigned int initialRefcount, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Create a user object.
 * 
 */
  __pyx_tuple__1473 = PyTuple_Pack(8, __pyx_n_s_ptr_2, __pyx_n_s_destroy, __pyx_n_s_initialRefcount, __pyx_n_s_flags_2, __pyx_n_s_object_out, __pyx_n_s_cptr, __pyx_n_s_cptr_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1473)) __PYX_ERR(0, 25085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1473);
  __Pyx_GIVEREF(__pyx_tuple__1473);
  __pyx_codeobj__818 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1473, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuUserObjectCreate, 25085, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__818)) __PYX_ERR(0, 25085, __pyx_L1_error)

  /* "cuda/cuda.pyx":25138
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRetain(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object.
 * 
 */
  __pyx_tuple__1474 = PyTuple_Pack(3, __pyx_n_s_object, __pyx_n_s_count, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1474)) __PYX_ERR(0, 25138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1474);
  __Pyx_GIVEREF(__pyx_tuple__1474);
  __pyx_codeobj__819 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1474, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuUserObjectRetain, 25138, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__819)) __PYX_ERR(0, 25138, __pyx_L1_error)

  /* "cuda/cuda.pyx":25175
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRelease(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a reference to a user object.
 * 
 */
  __pyx_tuple__1475 = PyTuple_Pack(3, __pyx_n_s_object, __pyx_n_s_count, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1475)) __PYX_ERR(0, 25175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1475);
  __Pyx_GIVEREF(__pyx_tuple__1475);
  __pyx_codeobj__820 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1475, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuUserObjectRelease, 25175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__820)) __PYX_ERR(0, 25175, __pyx_L1_error)

  /* "cuda/cuda.pyx":25215
 * 
 * @cython.embedsignature(True)
 * def cuGraphRetainUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object from a graph.
 * 
 */
  __pyx_tuple__1476 = PyTuple_Pack(5, __pyx_n_s_graph, __pyx_n_s_object, __pyx_n_s_count, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1476)) __PYX_ERR(0, 25215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1476);
  __Pyx_GIVEREF(__pyx_tuple__1476);
  __pyx_codeobj__821 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphRetainUserObject, 25215, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__821)) __PYX_ERR(0, 25215, __pyx_L1_error)

  /* "cuda/cuda.pyx":25258
 * 
 * @cython.embedsignature(True)
 * def cuGraphReleaseUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a user object reference from a graph.
 * 
 */
  __pyx_tuple__1477 = PyTuple_Pack(4, __pyx_n_s_graph, __pyx_n_s_object, __pyx_n_s_count, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1477)) __PYX_ERR(0, 25258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1477);
  __Pyx_GIVEREF(__pyx_tuple__1477);
  __pyx_codeobj__822 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1477, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphReleaseUserObject, 25258, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__822)) __PYX_ERR(0, 25258, __pyx_L1_error)

  /* "cuda/cuda.pyx":25296
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessor(func not None : CUfunction, int blockSize, size_t dynamicSMemSize):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */
  __pyx_tuple__1478 = PyTuple_Pack(5, __pyx_n_s_func_2, __pyx_n_s_blockSize, __pyx_n_s_dynamicSMemSize, __pyx_n_s_numBlocks, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1478)) __PYX_ERR(0, 25296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1478);
  __Pyx_GIVEREF(__pyx_tuple__1478);
  __pyx_codeobj__823 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1478, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuOccupancyMaxActiveBlocksPerMul, 25296, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__823)) __PYX_ERR(0, 25296, __pyx_L1_error)

  /* "cuda/cuda.pyx":25332
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(func not None : CUfunction, int blockSize, size_t dynamicSMemSize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */
  __pyx_tuple__1479 = PyTuple_Pack(6, __pyx_n_s_func_2, __pyx_n_s_blockSize, __pyx_n_s_dynamicSMemSize, __pyx_n_s_flags_2, __pyx_n_s_numBlocks, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1479)) __PYX_ERR(0, 25332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1479);
  __Pyx_GIVEREF(__pyx_tuple__1479);
  __pyx_codeobj__824 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1479, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuOccupancyMaxActiveBlocksPerMul_2, 25332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__824)) __PYX_ERR(0, 25332, __pyx_L1_error)

  /* "cuda/cuda.pyx":25385
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSize(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */
  __pyx_tuple__1480 = PyTuple_Pack(7, __pyx_n_s_func_2, __pyx_n_s_blockSizeToDynamicSMemSize, __pyx_n_s_dynamicSMemSize, __pyx_n_s_blockSizeLimit, __pyx_n_s_minGridSize, __pyx_n_s_blockSize, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1480)) __PYX_ERR(0, 25385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1480);
  __Pyx_GIVEREF(__pyx_tuple__1480);
  __pyx_codeobj__825 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1480, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuOccupancyMaxPotentialBlockSize, 25385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__825)) __PYX_ERR(0, 25385, __pyx_L1_error)

  /* "cuda/cuda.pyx":25446
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSizeWithFlags(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */
  __pyx_tuple__1481 = PyTuple_Pack(8, __pyx_n_s_func_2, __pyx_n_s_blockSizeToDynamicSMemSize, __pyx_n_s_dynamicSMemSize, __pyx_n_s_blockSizeLimit, __pyx_n_s_flags_2, __pyx_n_s_minGridSize, __pyx_n_s_blockSize, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1481)) __PYX_ERR(0, 25446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1481);
  __Pyx_GIVEREF(__pyx_tuple__1481);
  __pyx_codeobj__826 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1481, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuOccupancyMaxPotentialBlockSize_2, 25446, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__826)) __PYX_ERR(0, 25446, __pyx_L1_error)

  /* "cuda/cuda.pyx":25502
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyAvailableDynamicSMemPerBlock(func not None : CUfunction, int numBlocks, int blockSize):             # <<<<<<<<<<<<<<
 *     """ Returns dynamic shared memory available per block when launching `numBlocks` blocks on SM.
 * 
 */
  __pyx_tuple__1482 = PyTuple_Pack(5, __pyx_n_s_func_2, __pyx_n_s_numBlocks, __pyx_n_s_blockSize, __pyx_n_s_dynamicSmemSize, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1482)) __PYX_ERR(0, 25502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1482);
  __Pyx_GIVEREF(__pyx_tuple__1482);
  __pyx_codeobj__827 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1482, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuOccupancyAvailableDynamicSMemP, 25502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__827)) __PYX_ERR(0, 25502, __pyx_L1_error)

  /* "cuda/cuda.pyx":25534
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetArray(hTexRef not None : CUtexref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds an array as a texture reference.
 * 
 */
  __pyx_tuple__1483 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_hArray_2, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1483)) __PYX_ERR(0, 25534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1483);
  __Pyx_GIVEREF(__pyx_tuple__1483);
  __pyx_codeobj__828 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1483, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetArray, 25534, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__828)) __PYX_ERR(0, 25534, __pyx_L1_error)

  /* "cuda/cuda.pyx":25585
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmappedArray(hTexRef not None : CUtexref, hMipmappedArray not None : CUmipmappedArray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds a mipmapped array to a texture reference.
 * 
 */
  __pyx_tuple__1484 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_hMipmappedArray_2, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1484)) __PYX_ERR(0, 25585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1484);
  __Pyx_GIVEREF(__pyx_tuple__1484);
  __pyx_codeobj__829 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1484, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetMipmappedArray, 25585, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__829)) __PYX_ERR(0, 25585, __pyx_L1_error)

  /* "cuda/cuda.pyx":25636
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress(hTexRef not None : CUtexref, dptr not None : CUdeviceptr, size_t numbytes):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a texture reference.
 * 
 */
  __pyx_tuple__1485 = PyTuple_Pack(5, __pyx_n_s_hTexRef, __pyx_n_s_dptr_2, __pyx_n_s_numbytes, __pyx_n_s_ByteOffset, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1485)) __PYX_ERR(0, 25636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1485);
  __Pyx_GIVEREF(__pyx_tuple__1485);
  __pyx_codeobj__830 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1485, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetAddress, 25636, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__830)) __PYX_ERR(0, 25636, __pyx_L1_error)

  /* "cuda/cuda.pyx":25704
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress2D(hTexRef not None : CUtexref, desc : CUDA_ARRAY_DESCRIPTOR, dptr not None : CUdeviceptr, size_t Pitch):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a 2D texture reference.
 * 
 */
  __pyx_tuple__1486 = PyTuple_Pack(6, __pyx_n_s_hTexRef, __pyx_n_s_desc, __pyx_n_s_dptr_2, __pyx_n_s_Pitch, __pyx_n_s_cdesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1486)) __PYX_ERR(0, 25704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1486);
  __Pyx_GIVEREF(__pyx_tuple__1486);
  __pyx_codeobj__831 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1486, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetAddress2D, 25704, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__831)) __PYX_ERR(0, 25704, __pyx_L1_error)

  /* "cuda/cuda.pyx":25781
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFormat(hTexRef not None : CUtexref, fmt not None : CUarray_format, int NumPackedComponents):             # <<<<<<<<<<<<<<
 *     """ Sets the format for a texture reference.
 * 
 */
  __pyx_tuple__1487 = PyTuple_Pack(5, __pyx_n_s_hTexRef, __pyx_n_s_fmt, __pyx_n_s_NumPackedComponents, __pyx_n_s_cfmt, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1487)) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1487);
  __Pyx_GIVEREF(__pyx_tuple__1487);
  __pyx_codeobj__832 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1487, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetFormat, 25781, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__832)) __PYX_ERR(0, 25781, __pyx_L1_error)

  /* "cuda/cuda.pyx":25837
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddressMode(hTexRef not None : CUtexref, int dim, am not None : CUaddress_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the addressing mode for a texture reference.
 * 
 */
  __pyx_tuple__1488 = PyTuple_Pack(5, __pyx_n_s_hTexRef, __pyx_n_s_dim, __pyx_n_s_am, __pyx_n_s_cam, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1488)) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1488);
  __Pyx_GIVEREF(__pyx_tuple__1488);
  __pyx_codeobj__833 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1488, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetAddressMode, 25837, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__833)) __PYX_ERR(0, 25837, __pyx_L1_error)

  /* "cuda/cuda.pyx":25898
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the filtering mode for a texture reference.
 * 
 */
  __pyx_tuple__1489 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_fm, __pyx_n_s_cfm, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1489)) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1489);
  __Pyx_GIVEREF(__pyx_tuple__1489);
  __pyx_codeobj__834 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1489, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetFilterMode, 25898, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__834)) __PYX_ERR(0, 25898, __pyx_L1_error)

  /* "cuda/cuda.pyx":25952
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap filtering mode for a texture reference.
 * 
 */
  __pyx_tuple__1490 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_fm, __pyx_n_s_cfm, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1490)) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1490);
  __Pyx_GIVEREF(__pyx_tuple__1490);
  __pyx_codeobj__835 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetMipmapFilterMode, 25952, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__835)) __PYX_ERR(0, 25952, __pyx_L1_error)

  /* "cuda/cuda.pyx":26006
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelBias(hTexRef not None : CUtexref, float bias):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap level bias for a texture reference.
 * 
 */
  __pyx_tuple__1491 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_bias, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1491)) __PYX_ERR(0, 26006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1491);
  __Pyx_GIVEREF(__pyx_tuple__1491);
  __pyx_codeobj__836 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetMipmapLevelBias, 26006, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__836)) __PYX_ERR(0, 26006, __pyx_L1_error)

  /* "cuda/cuda.pyx":26056
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelClamp(hTexRef not None : CUtexref, float minMipmapLevelClamp, float maxMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap min/max mipmap level clamps for a texture reference.
 * 
 */
  __pyx_tuple__1492 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_minMipmapLevelClamp_2, __pyx_n_s_maxMipmapLevelClamp_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1492)) __PYX_ERR(0, 26056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1492);
  __Pyx_GIVEREF(__pyx_tuple__1492);
  __pyx_codeobj__837 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1492, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetMipmapLevelClamp, 26056, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__837)) __PYX_ERR(0, 26056, __pyx_L1_error)

  /* "cuda/cuda.pyx":26108
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMaxAnisotropy(hTexRef not None : CUtexref, unsigned int maxAniso):             # <<<<<<<<<<<<<<
 *     """ Sets the maximum anisotropy for a texture reference.
 * 
 */
  __pyx_tuple__1493 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_maxAniso, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1493)) __PYX_ERR(0, 26108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1493);
  __Pyx_GIVEREF(__pyx_tuple__1493);
  __pyx_codeobj__838 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1493, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetMaxAnisotropy, 26108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__838)) __PYX_ERR(0, 26108, __pyx_L1_error)

  /* "cuda/cuda.pyx":26158
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetBorderColor(hTexRef not None : CUtexref, float pBorderColor):             # <<<<<<<<<<<<<<
 *     """ Sets the border color for a texture reference.
 * 
 */
  __pyx_tuple__1494 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pBorderColor, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1494)) __PYX_ERR(0, 26158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1494);
  __Pyx_GIVEREF(__pyx_tuple__1494);
  __pyx_codeobj__839 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1494, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetBorderColor, 26158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__839)) __PYX_ERR(0, 26158, __pyx_L1_error)

  /* "cuda/cuda.pyx":26206
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFlags(hTexRef not None : CUtexref, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the flags for a texture reference.
 * 
 */
  __pyx_tuple__1495 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1495)) __PYX_ERR(0, 26206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1495);
  __Pyx_GIVEREF(__pyx_tuple__1495);
  __pyx_codeobj__840 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1495, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefSetFlags, 26206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__840)) __PYX_ERR(0, 26206, __pyx_L1_error)

  /* "cuda/cuda.pyx":26268
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddress(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the address associated with a texture reference.
 * 
 */
  __pyx_tuple__1496 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pdptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1496)) __PYX_ERR(0, 26268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1496);
  __Pyx_GIVEREF(__pyx_tuple__1496);
  __pyx_codeobj__841 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1496, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetAddress, 26268, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__841)) __PYX_ERR(0, 26268, __pyx_L1_error)

  /* "cuda/cuda.pyx":26313
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the array bound to a texture reference.
 * 
 */
  __pyx_tuple__1497 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_phArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1497)) __PYX_ERR(0, 26313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1497);
  __Pyx_GIVEREF(__pyx_tuple__1497);
  __pyx_codeobj__842 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1497, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetArray, 26313, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__842)) __PYX_ERR(0, 26313, __pyx_L1_error)

  /* "cuda/cuda.pyx":26358
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmappedArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmapped array bound to a texture reference.
 * 
 */
  __pyx_tuple__1498 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_phMipmappedArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1498)) __PYX_ERR(0, 26358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1498);
  __Pyx_GIVEREF(__pyx_tuple__1498);
  __pyx_codeobj__843 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1498, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetMipmappedArray, 26358, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__843)) __PYX_ERR(0, 26358, __pyx_L1_error)

  /* "cuda/cuda.pyx":26403
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddressMode(hTexRef not None : CUtexref, int dim):             # <<<<<<<<<<<<<<
 *     """ Gets the addressing mode used by a texture reference.
 * 
 */
  __pyx_tuple__1499 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_dim, __pyx_n_s_pam, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1499)) __PYX_ERR(0, 26403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1499);
  __Pyx_GIVEREF(__pyx_tuple__1499);
  __pyx_codeobj__844 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1499, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetAddressMode, 26403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__844)) __PYX_ERR(0, 26403, __pyx_L1_error)

  /* "cuda/cuda.pyx":26450
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the filter-mode used by a texture reference.
 * 
 */
  __pyx_tuple__1500 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pfm, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1500)) __PYX_ERR(0, 26450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1500);
  __Pyx_GIVEREF(__pyx_tuple__1500);
  __pyx_codeobj__845 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1500, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetFilterMode, 26450, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__845)) __PYX_ERR(0, 26450, __pyx_L1_error)

  /* "cuda/cuda.pyx":26494
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFormat(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the format used by a texture reference.
 * 
 */
  __pyx_tuple__1501 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_pFormat, __pyx_n_s_pNumChannels, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1501)) __PYX_ERR(0, 26494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1501);
  __Pyx_GIVEREF(__pyx_tuple__1501);
  __pyx_codeobj__846 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1501, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetFormat, 26494, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__846)) __PYX_ERR(0, 26494, __pyx_L1_error)

  /* "cuda/cuda.pyx":26542
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap filtering mode for a texture reference.
 * 
 */
  __pyx_tuple__1502 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pfm, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1502)) __PYX_ERR(0, 26542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1502);
  __Pyx_GIVEREF(__pyx_tuple__1502);
  __pyx_codeobj__847 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1502, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetMipmapFilterMode, 26542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__847)) __PYX_ERR(0, 26542, __pyx_L1_error)

  /* "cuda/cuda.pyx":26586
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelBias(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap level bias for a texture reference.
 * 
 */
  __pyx_tuple__1503 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pbias, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1503)) __PYX_ERR(0, 26586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1503);
  __Pyx_GIVEREF(__pyx_tuple__1503);
  __pyx_codeobj__848 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1503, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetMipmapLevelBias, 26586, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__848)) __PYX_ERR(0, 26586, __pyx_L1_error)

  /* "cuda/cuda.pyx":26631
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelClamp(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the min/max mipmap level clamps for a texture reference.
 * 
 */
  __pyx_tuple__1504 = PyTuple_Pack(4, __pyx_n_s_hTexRef, __pyx_n_s_pminMipmapLevelClamp, __pyx_n_s_pmaxMipmapLevelClamp, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1504)) __PYX_ERR(0, 26631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1504);
  __Pyx_GIVEREF(__pyx_tuple__1504);
  __pyx_codeobj__849 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1504, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetMipmapLevelClamp, 26631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__849)) __PYX_ERR(0, 26631, __pyx_L1_error)

  /* "cuda/cuda.pyx":26679
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMaxAnisotropy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the maximum anisotropy for a texture reference.
 * 
 */
  __pyx_tuple__1505 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pmaxAniso, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1505)) __PYX_ERR(0, 26679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1505);
  __Pyx_GIVEREF(__pyx_tuple__1505);
  __pyx_codeobj__850 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1505, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetMaxAnisotropy, 26679, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__850)) __PYX_ERR(0, 26679, __pyx_L1_error)

  /* "cuda/cuda.pyx":26723
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetBorderColor(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the border color used by a texture reference.
 * 
 */
  __pyx_tuple__1506 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pBorderColor, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1506)) __PYX_ERR(0, 26723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1506);
  __Pyx_GIVEREF(__pyx_tuple__1506);
  __pyx_codeobj__851 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1506, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetBorderColor, 26723, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__851)) __PYX_ERR(0, 26723, __pyx_L1_error)

  /* "cuda/cuda.pyx":26760
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFlags(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the flags used by a texture reference.
 * 
 */
  __pyx_tuple__1507 = PyTuple_Pack(3, __pyx_n_s_hTexRef, __pyx_n_s_pFlags, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1507)) __PYX_ERR(0, 26760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1507);
  __Pyx_GIVEREF(__pyx_tuple__1507);
  __pyx_codeobj__852 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1507, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefGetFlags, 26760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__852)) __PYX_ERR(0, 26760, __pyx_L1_error)

  /* "cuda/cuda.pyx":26803
 * 
 * @cython.embedsignature(True)
 * def cuTexRefCreate():             # <<<<<<<<<<<<<<
 *     """ Creates a texture reference.
 * 
 */
  __pyx_tuple__1508 = PyTuple_Pack(2, __pyx_n_s_pTexRef, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1508)) __PYX_ERR(0, 26803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1508);
  __Pyx_GIVEREF(__pyx_tuple__1508);
  __pyx_codeobj__853 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1508, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefCreate, 26803, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__853)) __PYX_ERR(0, 26803, __pyx_L1_error)

  /* "cuda/cuda.pyx":26835
 * 
 * @cython.embedsignature(True)
 * def cuTexRefDestroy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture reference.
 * 
 */
  __pyx_tuple__1509 = PyTuple_Pack(2, __pyx_n_s_hTexRef, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1509)) __PYX_ERR(0, 26835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1509);
  __Pyx_GIVEREF(__pyx_tuple__1509);
  __pyx_codeobj__854 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1509, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexRefDestroy, 26835, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__854)) __PYX_ERR(0, 26835, __pyx_L1_error)

  /* "cuda/cuda.pyx":26866
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefSetArray(hSurfRef not None : CUsurfref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the CUDA array for a surface reference.
 * 
 */
  __pyx_tuple__1510 = PyTuple_Pack(4, __pyx_n_s_hSurfRef, __pyx_n_s_hArray_2, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1510)) __PYX_ERR(0, 26866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1510);
  __Pyx_GIVEREF(__pyx_tuple__1510);
  __pyx_codeobj__855 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1510, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuSurfRefSetArray, 26866, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__855)) __PYX_ERR(0, 26866, __pyx_L1_error)

  /* "cuda/cuda.pyx":26907
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefGetArray(hSurfRef not None : CUsurfref):             # <<<<<<<<<<<<<<
 *     """ Passes back the CUDA array bound to a surface reference.
 * 
 */
  __pyx_tuple__1511 = PyTuple_Pack(3, __pyx_n_s_hSurfRef, __pyx_n_s_phArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1511)) __PYX_ERR(0, 26907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1511);
  __Pyx_GIVEREF(__pyx_tuple__1511);
  __pyx_codeobj__856 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1511, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuSurfRefGetArray, 26907, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__856)) __PYX_ERR(0, 26907, __pyx_L1_error)

  /* "cuda/cuda.pyx":26942
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectCreate(pResDesc : CUDA_RESOURCE_DESC, pTexDesc : CUDA_TEXTURE_DESC, pResViewDesc : CUDA_RESOURCE_VIEW_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a texture object.
 * 
 */
  __pyx_tuple__1512 = PyTuple_Pack(8, __pyx_n_s_pResDesc, __pyx_n_s_pTexDesc, __pyx_n_s_pResViewDesc, __pyx_n_s_pTexObject, __pyx_n_s_cpResDesc_ptr, __pyx_n_s_cpTexDesc_ptr, __pyx_n_s_cpResViewDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1512)) __PYX_ERR(0, 26942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1512);
  __Pyx_GIVEREF(__pyx_tuple__1512);
  __pyx_codeobj__857 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1512, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexObjectCreate, 26942, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__857)) __PYX_ERR(0, 26942, __pyx_L1_error)

  /* "cuda/cuda.pyx":27124
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectDestroy(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture object.
 * 
 */
  __pyx_tuple__1513 = PyTuple_Pack(2, __pyx_n_s_texObject, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1513)) __PYX_ERR(0, 27124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1513);
  __Pyx_GIVEREF(__pyx_tuple__1513);
  __pyx_codeobj__858 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1513, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexObjectDestroy, 27124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__858)) __PYX_ERR(0, 27124, __pyx_L1_error)

  /* "cuda/cuda.pyx":27154
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource descriptor.
 * 
 */
  __pyx_tuple__1514 = PyTuple_Pack(3, __pyx_n_s_texObject, __pyx_n_s_pResDesc, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1514)) __PYX_ERR(0, 27154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1514);
  __Pyx_GIVEREF(__pyx_tuple__1514);
  __pyx_codeobj__859 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1514, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexObjectGetResourceDesc, 27154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__859)) __PYX_ERR(0, 27154, __pyx_L1_error)

  /* "cuda/cuda.pyx":27186
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetTextureDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's texture descriptor.
 * 
 */
  __pyx_tuple__1515 = PyTuple_Pack(3, __pyx_n_s_texObject, __pyx_n_s_pTexDesc, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1515)) __PYX_ERR(0, 27186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1515);
  __Pyx_GIVEREF(__pyx_tuple__1515);
  __pyx_codeobj__860 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1515, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexObjectGetTextureDesc, 27186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__860)) __PYX_ERR(0, 27186, __pyx_L1_error)

  /* "cuda/cuda.pyx":27218
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceViewDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource view descriptor.
 * 
 */
  __pyx_tuple__1516 = PyTuple_Pack(3, __pyx_n_s_texObject, __pyx_n_s_pResViewDesc, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1516)) __PYX_ERR(0, 27218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1516);
  __Pyx_GIVEREF(__pyx_tuple__1516);
  __pyx_codeobj__861 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1516, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuTexObjectGetResourceViewDesc, 27218, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__861)) __PYX_ERR(0, 27218, __pyx_L1_error)

  /* "cuda/cuda.pyx":27251
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectCreate(pResDesc : CUDA_RESOURCE_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a surface object.
 * 
 */
  __pyx_tuple__1517 = PyTuple_Pack(4, __pyx_n_s_pResDesc, __pyx_n_s_pSurfObject, __pyx_n_s_cpResDesc_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1517)) __PYX_ERR(0, 27251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1517);
  __Pyx_GIVEREF(__pyx_tuple__1517);
  __pyx_codeobj__862 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1517, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuSurfObjectCreate, 27251, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__862)) __PYX_ERR(0, 27251, __pyx_L1_error)

  /* "cuda/cuda.pyx":27291
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectDestroy(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a surface object.
 * 
 */
  __pyx_tuple__1518 = PyTuple_Pack(2, __pyx_n_s_surfObject, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1518)) __PYX_ERR(0, 27291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1518);
  __Pyx_GIVEREF(__pyx_tuple__1518);
  __pyx_codeobj__863 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1518, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuSurfObjectDestroy, 27291, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__863)) __PYX_ERR(0, 27291, __pyx_L1_error)

  /* "cuda/cuda.pyx":27321
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectGetResourceDesc(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Returns a surface object's resource descriptor.
 * 
 */
  __pyx_tuple__1519 = PyTuple_Pack(3, __pyx_n_s_surfObject, __pyx_n_s_pResDesc, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1519)) __PYX_ERR(0, 27321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1519);
  __Pyx_GIVEREF(__pyx_tuple__1519);
  __pyx_codeobj__864 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1519, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuSurfObjectGetResourceDesc, 27321, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__864)) __PYX_ERR(0, 27321, __pyx_L1_error)

  /* "cuda/cuda.pyx":27353
 * 
 * @cython.embedsignature(True)
 * def cuDeviceCanAccessPeer(dev not None : CUdevice, peerDev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries if a device may directly access a peer device's memory.
 * 
 */
  __pyx_tuple__1520 = PyTuple_Pack(4, __pyx_n_s_dev, __pyx_n_s_peerDev, __pyx_n_s_canAccessPeer, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1520)) __PYX_ERR(0, 27353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1520);
  __Pyx_GIVEREF(__pyx_tuple__1520);
  __pyx_codeobj__865 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1520, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceCanAccessPeer, 27353, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__865)) __PYX_ERR(0, 27353, __pyx_L1_error)

  /* "cuda/cuda.pyx":27392
 * 
 * @cython.embedsignature(True)
 * def cuCtxEnablePeerAccess(peerContext not None : CUcontext, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Enables direct access to memory allocations in a peer context.
 * 
 */
  __pyx_tuple__1521 = PyTuple_Pack(3, __pyx_n_s_peerContext, __pyx_n_s_Flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1521)) __PYX_ERR(0, 27392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1521);
  __Pyx_GIVEREF(__pyx_tuple__1521);
  __pyx_codeobj__866 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxEnablePeerAccess, 27392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__866)) __PYX_ERR(0, 27392, __pyx_L1_error)

  /* "cuda/cuda.pyx":27458
 * 
 * @cython.embedsignature(True)
 * def cuCtxDisablePeerAccess(peerContext not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Disables direct access to memory allocations in a peer context and unregisters any registered allocations.
 * 
 */
  __pyx_tuple__1522 = PyTuple_Pack(2, __pyx_n_s_peerContext, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1522)) __PYX_ERR(0, 27458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1522);
  __Pyx_GIVEREF(__pyx_tuple__1522);
  __pyx_codeobj__867 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1522, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuCtxDisablePeerAccess, 27458, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__867)) __PYX_ERR(0, 27458, __pyx_L1_error)

  /* "cuda/cuda.pyx":27493
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetP2PAttribute(attrib not None : CUdevice_P2PAttribute, srcDevice not None : CUdevice, dstDevice not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries attributes of the link between two devices.
 * 
 */
  __pyx_tuple__1523 = PyTuple_Pack(6, __pyx_n_s_attrib, __pyx_n_s_srcDevice_2, __pyx_n_s_dstDevice_2, __pyx_n_s_value, __pyx_n_s_cattrib, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1523)) __PYX_ERR(0, 27493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1523);
  __Pyx_GIVEREF(__pyx_tuple__1523);
  __pyx_codeobj__868 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1523, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuDeviceGetP2PAttribute, 27493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__868)) __PYX_ERR(0, 27493, __pyx_L1_error)

  /* "cuda/cuda.pyx":27546
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnregisterResource(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Unregisters a graphics resource for access by CUDA.
 * 
 */
  __pyx_tuple__1524 = PyTuple_Pack(2, __pyx_n_s_resource_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1524)) __PYX_ERR(0, 27546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1524);
  __Pyx_GIVEREF(__pyx_tuple__1524);
  __pyx_codeobj__869 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1524, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsUnregisterResource, 27546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__869)) __PYX_ERR(0, 27546, __pyx_L1_error)

  /* "cuda/cuda.pyx":27579
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsSubResourceGetMappedArray(resource not None : CUgraphicsResource, unsigned int arrayIndex, unsigned int mipLevel):             # <<<<<<<<<<<<<<
 *     """ Get an array through which to access a subresource of a mapped graphics resource.
 * 
 */
  __pyx_tuple__1525 = PyTuple_Pack(5, __pyx_n_s_resource_2, __pyx_n_s_arrayIndex, __pyx_n_s_mipLevel, __pyx_n_s_pArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1525)) __PYX_ERR(0, 27579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1525);
  __Pyx_GIVEREF(__pyx_tuple__1525);
  __pyx_codeobj__870 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1525, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsSubResourceGetMappedAr, 27579, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__870)) __PYX_ERR(0, 27579, __pyx_L1_error)

  /* "cuda/cuda.pyx":27630
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedMipmappedArray(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a mipmapped array through which to access a mapped graphics resource.
 * 
 */
  __pyx_tuple__1526 = PyTuple_Pack(3, __pyx_n_s_resource_2, __pyx_n_s_pMipmappedArray, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1526)) __PYX_ERR(0, 27630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1526);
  __Pyx_GIVEREF(__pyx_tuple__1526);
  __pyx_codeobj__871 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1526, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsResourceGetMappedMipma, 27630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__871)) __PYX_ERR(0, 27630, __pyx_L1_error)

  /* "cuda/cuda.pyx":27670
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedPointer(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a device pointer through which to access a mapped graphics resource.
 * 
 */
  __pyx_tuple__1527 = PyTuple_Pack(4, __pyx_n_s_resource_2, __pyx_n_s_pDevPtr, __pyx_n_s_pSize, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1527)) __PYX_ERR(0, 27670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1527);
  __Pyx_GIVEREF(__pyx_tuple__1527);
  __pyx_codeobj__872 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1527, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsResourceGetMappedPoint, 27670, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__872)) __PYX_ERR(0, 27670, __pyx_L1_error)

  /* "cuda/cuda.pyx":27704
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceSetMapFlags(resource not None : CUgraphicsResource, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set usage flags for mapping a graphics resource.
 * 
 */
  __pyx_tuple__1528 = PyTuple_Pack(3, __pyx_n_s_resource_2, __pyx_n_s_flags_2, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1528)) __PYX_ERR(0, 27704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1528);
  __Pyx_GIVEREF(__pyx_tuple__1528);
  __pyx_codeobj__873 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1528, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsResourceSetMapFlags, 27704, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__873)) __PYX_ERR(0, 27704, __pyx_L1_error)

  /* "cuda/cuda.pyx":27755
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsMapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Map graphics resources for access by CUDA.
 * 
 */
  __pyx_tuple__1529 = PyTuple_Pack(5, __pyx_n_s_count, __pyx_n_s_resources, __pyx_n_s_hStream_2, __pyx_n_s_cresources_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1529)) __PYX_ERR(0, 27755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1529);
  __Pyx_GIVEREF(__pyx_tuple__1529);
  __pyx_codeobj__874 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1529, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsMapResources, 27755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__874)) __PYX_ERR(0, 27755, __pyx_L1_error)

  /* "cuda/cuda.pyx":27808
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnmapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Unmap graphics resources.
 * 
 */
  __pyx_tuple__1530 = PyTuple_Pack(5, __pyx_n_s_count, __pyx_n_s_resources, __pyx_n_s_hStream_2, __pyx_n_s_cresources_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1530)) __PYX_ERR(0, 27808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1530);
  __Pyx_GIVEREF(__pyx_tuple__1530);
  __pyx_codeobj__875 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1530, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGraphicsUnmapResources, 27808, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__875)) __PYX_ERR(0, 27808, __pyx_L1_error)

  /* "cuda/cuda.pyx":27857
 * 
 * @cython.embedsignature(True)
 * def cuGetProcAddress(char* symbol, int cudaVersion, flags not None : cuuint64_t):             # <<<<<<<<<<<<<<
 *     """ Returns the requested driver API function pointer.
 * 
 */
  __pyx_tuple__1531 = PyTuple_Pack(5, __pyx_n_s_symbol, __pyx_n_s_cudaVersion, __pyx_n_s_flags_2, __pyx_n_s_pfn, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1531)) __PYX_ERR(0, 27857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1531);
  __Pyx_GIVEREF(__pyx_tuple__1531);
  __pyx_codeobj__876 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1531, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGetProcAddress, 27857, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__876)) __PYX_ERR(0, 27857, __pyx_L1_error)

  /* "cuda/cuda.pyx":27927
 * 
 * @cython.embedsignature(True)
 * def cuGetExportTable(pExportTableId : CUuuid):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_tuple__1532 = PyTuple_Pack(4, __pyx_n_s_pExportTableId, __pyx_n_s_ppExportTable, __pyx_n_s_cpExportTableId_ptr, __pyx_n_s_err); if (unlikely(!__pyx_tuple__1532)) __PYX_ERR(0, 27927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1532);
  __Pyx_GIVEREF(__pyx_tuple__1532);
  __pyx_codeobj__877 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1532, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_cuGetExportTable, 27927, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__877)) __PYX_ERR(0, 27927, __pyx_L1_error)

  /* "cuda/cuda.pyx":27943
 * 
 * @cython.embedsignature(True)
 * def sizeof(objType):             # <<<<<<<<<<<<<<
 *     """ Returns the size of provided CUDA Python structure in bytes
 * 
 */
  __pyx_tuple__1533 = PyTuple_Pack(1, __pyx_n_s_objType); if (unlikely(!__pyx_tuple__1533)) __PYX_ERR(0, 27943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__1533);
  __Pyx_GIVEREF(__pyx_tuple__1533);
  __pyx_codeobj__878 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__1533, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cuda_cuda_pyx, __pyx_n_s_sizeof, 27943, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__878)) __PYX_ERR(0, 27943, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_127 = PyInt_FromLong(127); if (unlikely(!__pyx_int_127)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUcontext) < 0) __PYX_ERR(0, 1033, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUcontext.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUcontext.tp_dictoffset && __pyx_type_4cuda_4cuda_CUcontext.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUcontext.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUcontext_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUcontext) < 0) __PYX_ERR(0, 1033, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUcontext) < 0) __PYX_ERR(0, 1033, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUcontext = &__pyx_type_4cuda_4cuda_CUcontext;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmodule) < 0) __PYX_ERR(0, 1067, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmodule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmodule.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmodule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmodule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmodule_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUmodule) < 0) __PYX_ERR(0, 1067, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmodule) < 0) __PYX_ERR(0, 1067, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmodule = &__pyx_type_4cuda_4cuda_CUmodule;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUfunction) < 0) __PYX_ERR(0, 1101, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUfunction.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUfunction.tp_dictoffset && __pyx_type_4cuda_4cuda_CUfunction.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUfunction.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUfunction_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUfunction) < 0) __PYX_ERR(0, 1101, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUfunction) < 0) __PYX_ERR(0, 1101, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUfunction = &__pyx_type_4cuda_4cuda_CUfunction;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUarray) < 0) __PYX_ERR(0, 1135, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUarray.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUarray.tp_dictoffset && __pyx_type_4cuda_4cuda_CUarray.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUarray.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarray_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUarray) < 0) __PYX_ERR(0, 1135, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUarray) < 0) __PYX_ERR(0, 1135, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUarray = &__pyx_type_4cuda_4cuda_CUarray;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmipmappedArray) < 0) __PYX_ERR(0, 1169, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmipmappedArray.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmipmappedArray.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmipmappedArray.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmipmappedArray.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmipmappedArray_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUmipmappedArray) < 0) __PYX_ERR(0, 1169, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmipmappedArray) < 0) __PYX_ERR(0, 1169, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmipmappedArray = &__pyx_type_4cuda_4cuda_CUmipmappedArray;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUtexref) < 0) __PYX_ERR(0, 1203, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUtexref.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUtexref.tp_dictoffset && __pyx_type_4cuda_4cuda_CUtexref.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUtexref.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUtexref_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUtexref) < 0) __PYX_ERR(0, 1203, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUtexref) < 0) __PYX_ERR(0, 1203, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUtexref = &__pyx_type_4cuda_4cuda_CUtexref;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUsurfref) < 0) __PYX_ERR(0, 1237, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUsurfref.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUsurfref.tp_dictoffset && __pyx_type_4cuda_4cuda_CUsurfref.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUsurfref.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUsurfref_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUsurfref) < 0) __PYX_ERR(0, 1237, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUsurfref) < 0) __PYX_ERR(0, 1237, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUsurfref = &__pyx_type_4cuda_4cuda_CUsurfref;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUevent) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUevent.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUevent.tp_dictoffset && __pyx_type_4cuda_4cuda_CUevent.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUevent.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUevent_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUevent) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUevent) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUevent = &__pyx_type_4cuda_4cuda_CUevent;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstream) < 0) __PYX_ERR(0, 1305, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstream.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstream.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstream.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstream.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstream_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUstream) < 0) __PYX_ERR(0, 1305, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstream) < 0) __PYX_ERR(0, 1305, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstream = &__pyx_type_4cuda_4cuda_CUstream;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUgraphicsResource) < 0) __PYX_ERR(0, 1339, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUgraphicsResource.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUgraphicsResource.tp_dictoffset && __pyx_type_4cuda_4cuda_CUgraphicsResource.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUgraphicsResource.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUgraphicsResource_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUgraphicsResource) < 0) __PYX_ERR(0, 1339, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUgraphicsResource) < 0) __PYX_ERR(0, 1339, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUgraphicsResource = &__pyx_type_4cuda_4cuda_CUgraphicsResource;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexternalMemory) < 0) __PYX_ERR(0, 1373, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexternalMemory.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexternalMemory.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexternalMemory.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexternalMemory.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexternalMemory_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUexternalMemory) < 0) __PYX_ERR(0, 1373, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUexternalMemory) < 0) __PYX_ERR(0, 1373, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexternalMemory = &__pyx_type_4cuda_4cuda_CUexternalMemory;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexternalSemaphore) < 0) __PYX_ERR(0, 1407, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexternalSemaphore.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexternalSemaphore.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexternalSemaphore.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexternalSemaphore.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexternalSemaphore_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUexternalSemaphore) < 0) __PYX_ERR(0, 1407, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUexternalSemaphore) < 0) __PYX_ERR(0, 1407, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexternalSemaphore = &__pyx_type_4cuda_4cuda_CUexternalSemaphore;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUgraph) < 0) __PYX_ERR(0, 1441, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUgraph.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUgraph.tp_dictoffset && __pyx_type_4cuda_4cuda_CUgraph.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUgraph.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUgraph_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUgraph) < 0) __PYX_ERR(0, 1441, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUgraph) < 0) __PYX_ERR(0, 1441, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUgraph = &__pyx_type_4cuda_4cuda_CUgraph;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUgraphNode) < 0) __PYX_ERR(0, 1475, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUgraphNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUgraphNode.tp_dictoffset && __pyx_type_4cuda_4cuda_CUgraphNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUgraphNode.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUgraphNode_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUgraphNode) < 0) __PYX_ERR(0, 1475, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUgraphNode) < 0) __PYX_ERR(0, 1475, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUgraphNode = &__pyx_type_4cuda_4cuda_CUgraphNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUgraphExec) < 0) __PYX_ERR(0, 1509, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUgraphExec.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUgraphExec.tp_dictoffset && __pyx_type_4cuda_4cuda_CUgraphExec.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUgraphExec.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUgraphExec_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUgraphExec) < 0) __PYX_ERR(0, 1509, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUgraphExec) < 0) __PYX_ERR(0, 1509, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUgraphExec = &__pyx_type_4cuda_4cuda_CUgraphExec;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemoryPool) < 0) __PYX_ERR(0, 1543, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemoryPool.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemoryPool.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemoryPool.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemoryPool.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemoryPool_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemoryPool) < 0) __PYX_ERR(0, 1543, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemoryPool) < 0) __PYX_ERR(0, 1543, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemoryPool = &__pyx_type_4cuda_4cuda_CUmemoryPool;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUuserObject) < 0) __PYX_ERR(0, 1577, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUuserObject.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUuserObject.tp_dictoffset && __pyx_type_4cuda_4cuda_CUuserObject.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUuserObject.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUuserObject_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUuserObject) < 0) __PYX_ERR(0, 1577, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUuserObject) < 0) __PYX_ERR(0, 1577, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUuserObject = &__pyx_type_4cuda_4cuda_CUuserObject;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUlinkState) < 0) __PYX_ERR(0, 1611, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUlinkState.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUlinkState.tp_dictoffset && __pyx_type_4cuda_4cuda_CUlinkState.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUlinkState.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUlinkState_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUlinkState) < 0) __PYX_ERR(0, 1611, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUlinkState) < 0) __PYX_ERR(0, 1611, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUlinkState = &__pyx_type_4cuda_4cuda_CUlinkState;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUhostFn) < 0) __PYX_ERR(0, 1645, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUhostFn.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUhostFn.tp_dictoffset && __pyx_type_4cuda_4cuda_CUhostFn.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUhostFn.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUhostFn_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUhostFn) < 0) __PYX_ERR(0, 1645, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUhostFn) < 0) __PYX_ERR(0, 1645, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUhostFn = &__pyx_type_4cuda_4cuda_CUhostFn;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamCallback) < 0) __PYX_ERR(0, 1679, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamCallback.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamCallback.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamCallback.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamCallback.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamCallback_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamCallback) < 0) __PYX_ERR(0, 1679, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstreamCallback) < 0) __PYX_ERR(0, 1679, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamCallback = &__pyx_type_4cuda_4cuda_CUstreamCallback;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUoccupancyB2DSize) < 0) __PYX_ERR(0, 1713, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUoccupancyB2DSize.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUoccupancyB2DSize.tp_dictoffset && __pyx_type_4cuda_4cuda_CUoccupancyB2DSize.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUoccupancyB2DSize.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUoccupancyB2DSize_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUoccupancyB2DSize) < 0) __PYX_ERR(0, 1713, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUoccupancyB2DSize) < 0) __PYX_ERR(0, 1713, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize = &__pyx_type_4cuda_4cuda_CUoccupancyB2DSize;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUuuid_st) < 0) __PYX_ERR(0, 1747, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUuuid_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUuuid_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUuuid_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUuuid_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUuuid_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUuuid_st) < 0) __PYX_ERR(0, 1747, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUuuid_st) < 0) __PYX_ERR(0, 1747, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUuuid_st = &__pyx_type_4cuda_4cuda_CUuuid_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUipcEventHandle_st) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUipcEventHandle_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUipcEventHandle_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUipcEventHandle_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUipcEventHandle_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUipcEventHandle_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUipcEventHandle_st) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUipcEventHandle_st) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUipcEventHandle_st = &__pyx_type_4cuda_4cuda_CUipcEventHandle_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUipcMemHandle_st) < 0) __PYX_ERR(0, 1842, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUipcMemHandle_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUipcMemHandle_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUipcMemHandle_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUipcMemHandle_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUipcMemHandle_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUipcMemHandle_st) < 0) __PYX_ERR(0, 1842, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUipcMemHandle_st) < 0) __PYX_ERR(0, 1842, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUipcMemHandle_st = &__pyx_type_4cuda_4cuda_CUipcMemHandle_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st) < 0) __PYX_ERR(0, 1894, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamMemOpWaitValueParams_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st) < 0) __PYX_ERR(0, 1894, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st) < 0) __PYX_ERR(0, 1894, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st = &__pyx_type_4cuda_4cuda_CUstreamMemOpWaitValueParams_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st) < 0) __PYX_ERR(0, 1983, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamMemOpWriteValueParams_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st) < 0) __PYX_ERR(0, 1983, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st) < 0) __PYX_ERR(0, 1983, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st = &__pyx_type_4cuda_4cuda_CUstreamMemOpWriteValueParams_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st) < 0) __PYX_ERR(0, 2072, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamMemOpFlushRemoteWritesPa, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st) < 0) __PYX_ERR(0, 2072, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st) < 0) __PYX_ERR(0, 2072, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st = &__pyx_type_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union) < 0) __PYX_ERR(0, 2129, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamBatchMemOpParams_union, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union) < 0) __PYX_ERR(0, 2129, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union) < 0) __PYX_ERR(0, 2129, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union = &__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdevprop_st) < 0) __PYX_ERR(0, 2231, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdevprop_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdevprop_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdevprop_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdevprop_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdevprop_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUdevprop_st) < 0) __PYX_ERR(0, 2231, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUdevprop_st) < 0) __PYX_ERR(0, 2231, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdevprop_st = &__pyx_type_4cuda_4cuda_CUdevprop_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st) < 0) __PYX_ERR(0, 2369, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUaccessPolicyWindow_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st) < 0) __PYX_ERR(0, 2369, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st) < 0) __PYX_ERR(0, 2369, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st = &__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2469, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2469, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2469, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2606, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2606, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2606, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2704, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_HOST_NODE_PARAMS_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2704, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st) < 0) __PYX_ERR(0, 2704, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union) < 0) __PYX_ERR(0, 2762, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union.tp_dictoffset && __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUkernelNodeAttrValue_union, (PyObject *)&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union) < 0) __PYX_ERR(0, 2762, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union) < 0) __PYX_ERR(0, 2762, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union = &__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamAttrValue_union) < 0) __PYX_ERR(0, 2823, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamAttrValue_union.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamAttrValue_union.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamAttrValue_union.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamAttrValue_union.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamAttrValue_union, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamAttrValue_union) < 0) __PYX_ERR(0, 2823, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUstreamAttrValue_union) < 0) __PYX_ERR(0, 2823, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union = &__pyx_type_4cuda_4cuda_CUstreamAttrValue_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st) < 0) __PYX_ERR(0, 2884, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinitySmCount_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st) < 0) __PYX_ERR(0, 2884, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st) < 0) __PYX_ERR(0, 2884, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st = &__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u) < 0) __PYX_ERR(0, 2932, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinityParam_v1_CUexecAf, (PyObject *)&__pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u) < 0) __PYX_ERR(0, 2932, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u) < 0) __PYX_ERR(0, 2932, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u = &__pyx_type_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexecAffinityParam_st) < 0) __PYX_ERR(0, 2972, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexecAffinityParam_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexecAffinityParam_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexecAffinityParam_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexecAffinityParam_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinityParam_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUexecAffinityParam_st) < 0) __PYX_ERR(0, 2972, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUexecAffinityParam_st) < 0) __PYX_ERR(0, 2972, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st = &__pyx_type_4cuda_4cuda_CUexecAffinityParam_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st) < 0) __PYX_ERR(0, 3034, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY2D_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st) < 0) __PYX_ERR(0, 3034, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st) < 0) __PYX_ERR(0, 3034, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st) < 0) __PYX_ERR(0, 3235, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY3D_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st) < 0) __PYX_ERR(0, 3235, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st) < 0) __PYX_ERR(0, 3235, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st) < 0) __PYX_ERR(0, 3527, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY3D_PEER_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st) < 0) __PYX_ERR(0, 3527, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st) < 0) __PYX_ERR(0, 3527, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st) < 0) __PYX_ERR(0, 3822, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st) < 0) __PYX_ERR(0, 3822, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st) < 0) __PYX_ERR(0, 3822, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st = &__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st) < 0) __PYX_ERR(0, 3900, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st) < 0) __PYX_ERR(0, 3900, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st) < 0) __PYX_ERR(0, 3900, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st = &__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s) < 0) __PYX_ERR(0, 3998, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s) < 0) __PYX_ERR(0, 3998, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s) < 0) __PYX_ERR(0, 3998, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s = &__pyx_type_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st) < 0) __PYX_ERR(0, 4054, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st) < 0) __PYX_ERR(0, 4054, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st) < 0) __PYX_ERR(0, 4054, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st = &__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s) < 0) __PYX_ERR(0, 4147, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s) < 0) __PYX_ERR(0, 4147, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s) < 0) __PYX_ERR(0, 4147, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s = &__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s) < 0) __PYX_ERR(0, 4183, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_2, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s) < 0) __PYX_ERR(0, 4183, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s) < 0) __PYX_ERR(0, 4183, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s = &__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s) < 0) __PYX_ERR(0, 4219, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_3, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s) < 0) __PYX_ERR(0, 4219, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s) < 0) __PYX_ERR(0, 4219, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s = &__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s) < 0) __PYX_ERR(0, 4285, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_4, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s) < 0) __PYX_ERR(0, 4285, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s) < 0) __PYX_ERR(0, 4285, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s = &__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s) < 0) __PYX_ERR(0, 4371, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_5, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s) < 0) __PYX_ERR(0, 4371, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s) < 0) __PYX_ERR(0, 4371, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s = &__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u) < 0) __PYX_ERR(0, 4407, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_6, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u) < 0) __PYX_ERR(0, 4407, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u) < 0) __PYX_ERR(0, 4407, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u = &__pyx_type_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st) < 0) __PYX_ERR(0, 4507, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st) < 0) __PYX_ERR(0, 4507, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st) < 0) __PYX_ERR(0, 4507, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st) < 0) __PYX_ERR(0, 4579, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_TEXTURE_DESC_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st) < 0) __PYX_ERR(0, 4579, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st) < 0) __PYX_ERR(0, 4579, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st) < 0) __PYX_ERR(0, 4716, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st) < 0) __PYX_ERR(0, 4716, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st) < 0) __PYX_ERR(0, 4716, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) < 0) __PYX_ERR(0, 4844, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) < 0) __PYX_ERR(0, 4844, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) < 0) __PYX_ERR(0, 4844, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st = &__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st) < 0) __PYX_ERR(0, 4902, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_LAUNCH_PARAMS_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st) < 0) __PYX_ERR(0, 4902, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st) < 0) __PYX_ERR(0, 4902, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s) < 0) __PYX_ERR(0, 5041, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s) < 0) __PYX_ERR(0, 5041, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s) < 0) __PYX_ERR(0, 5041, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u) < 0) __PYX_ERR(0, 5087, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_2, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u) < 0) __PYX_ERR(0, 5087, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u) < 0) __PYX_ERR(0, 5087, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st) < 0) __PYX_ERR(0, 5147, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st) < 0) __PYX_ERR(0, 5147, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st) < 0) __PYX_ERR(0, 5147, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st) < 0) __PYX_ERR(0, 5239, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st) < 0) __PYX_ERR(0, 5239, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st) < 0) __PYX_ERR(0, 5239, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) < 0) __PYX_ERR(0, 5317, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) < 0) __PYX_ERR(0, 5317, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) < 0) __PYX_ERR(0, 5317, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s) < 0) __PYX_ERR(0, 5400, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s) < 0) __PYX_ERR(0, 5400, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s) < 0) __PYX_ERR(0, 5400, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u) < 0) __PYX_ERR(0, 5446, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_2, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u) < 0) __PYX_ERR(0, 5446, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u) < 0) __PYX_ERR(0, 5446, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) < 0) __PYX_ERR(0, 5506, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) < 0) __PYX_ERR(0, 5506, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) < 0) __PYX_ERR(0, 5506, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s) < 0) __PYX_ERR(0, 5588, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s) < 0) __PYX_ERR(0, 5588, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s) < 0) __PYX_ERR(0, 5588, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u) < 0) __PYX_ERR(0, 5624, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_2, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u) < 0) __PYX_ERR(0, 5624, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u) < 0) __PYX_ERR(0, 5624, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s) < 0) __PYX_ERR(0, 5670, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_3, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s) < 0) __PYX_ERR(0, 5670, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s) < 0) __PYX_ERR(0, 5670, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s) < 0) __PYX_ERR(0, 5706, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_4, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s) < 0) __PYX_ERR(0, 5706, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s) < 0) __PYX_ERR(0, 5706, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) < 0) __PYX_ERR(0, 5786, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) < 0) __PYX_ERR(0, 5786, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) < 0) __PYX_ERR(0, 5786, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s) < 0) __PYX_ERR(0, 5865, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s) < 0) __PYX_ERR(0, 5865, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s) < 0) __PYX_ERR(0, 5865, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u) < 0) __PYX_ERR(0, 5901, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_2, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u) < 0) __PYX_ERR(0, 5901, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u) < 0) __PYX_ERR(0, 5901, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s) < 0) __PYX_ERR(0, 5947, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_3, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s) < 0) __PYX_ERR(0, 5947, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s) < 0) __PYX_ERR(0, 5947, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s) < 0) __PYX_ERR(0, 5993, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_4, (PyObject *)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s) < 0) __PYX_ERR(0, 5993, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s) < 0) __PYX_ERR(0, 5993, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s = &__pyx_type_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) < 0) __PYX_ERR(0, 6073, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) < 0) __PYX_ERR(0, 6073, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) < 0) __PYX_ERR(0, 6073, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st) < 0) __PYX_ERR(0, 6152, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st) < 0) __PYX_ERR(0, 6152, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st) < 0) __PYX_ERR(0, 6152, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st) < 0) __PYX_ERR(0, 6250, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st) < 0) __PYX_ERR(0, 6250, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st) < 0) __PYX_ERR(0, 6250, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u) < 0) __PYX_ERR(0, 6348, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf, (PyObject *)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u) < 0) __PYX_ERR(0, 6348, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u) < 0) __PYX_ERR(0, 6348, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u = &__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s) < 0) __PYX_ERR(0, 6395, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_2, (PyObject *)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s) < 0) __PYX_ERR(0, 6395, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s) < 0) __PYX_ERR(0, 6395, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s = &__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s) < 0) __PYX_ERR(0, 6501, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_3, (PyObject *)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s) < 0) __PYX_ERR(0, 6501, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s) < 0) __PYX_ERR(0, 6501, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s = &__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u) < 0) __PYX_ERR(0, 6557, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_4, (PyObject *)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u) < 0) __PYX_ERR(0, 6557, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u) < 0) __PYX_ERR(0, 6557, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u = &__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u) < 0) __PYX_ERR(0, 6612, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.tp_dictoffset && __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_5, (PyObject *)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u) < 0) __PYX_ERR(0, 6612, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u) < 0) __PYX_ERR(0, 6612, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u = &__pyx_type_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUarrayMapInfo_st) < 0) __PYX_ERR(0, 6648, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUarrayMapInfo_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUarrayMapInfo_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUarrayMapInfo_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUarrayMapInfo_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUarrayMapInfo_st) < 0) __PYX_ERR(0, 6648, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUarrayMapInfo_st) < 0) __PYX_ERR(0, 6648, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st = &__pyx_type_4cuda_4cuda_CUarrayMapInfo_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemLocation_st) < 0) __PYX_ERR(0, 6811, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemLocation_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemLocation_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemLocation_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemLocation_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemLocation_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemLocation_st) < 0) __PYX_ERR(0, 6811, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemLocation_st) < 0) __PYX_ERR(0, 6811, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemLocation_st = &__pyx_type_4cuda_4cuda_CUmemLocation_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s) < 0) __PYX_ERR(0, 6869, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.tp_dictoffset && __pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAllocationProp_v1_CUmemAll, (PyObject *)&__pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s) < 0) __PYX_ERR(0, 6869, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s) < 0) __PYX_ERR(0, 6869, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s = &__pyx_type_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemAllocationProp_st) < 0) __PYX_ERR(0, 6937, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemAllocationProp_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemAllocationProp_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemAllocationProp_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemAllocationProp_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAllocationProp_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemAllocationProp_st) < 0) __PYX_ERR(0, 6937, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemAllocationProp_st) < 0) __PYX_ERR(0, 6937, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st = &__pyx_type_4cuda_4cuda_CUmemAllocationProp_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemAccessDesc_st) < 0) __PYX_ERR(0, 7038, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemAccessDesc_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemAccessDesc_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemAccessDesc_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemAccessDesc_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAccessDesc_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemAccessDesc_st) < 0) __PYX_ERR(0, 7038, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemAccessDesc_st) < 0) __PYX_ERR(0, 7038, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st = &__pyx_type_4cuda_4cuda_CUmemAccessDesc_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemPoolProps_st) < 0) __PYX_ERR(0, 7100, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemPoolProps_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemPoolProps_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemPoolProps_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemPoolProps_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemPoolProps_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemPoolProps_st) < 0) __PYX_ERR(0, 7100, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemPoolProps_st) < 0) __PYX_ERR(0, 7100, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemPoolProps_st = &__pyx_type_4cuda_4cuda_CUmemPoolProps_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st) < 0) __PYX_ERR(0, 7199, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemPoolPtrExportData_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st) < 0) __PYX_ERR(0, 7199, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st) < 0) __PYX_ERR(0, 7199, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st = &__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st) < 0) __PYX_ERR(0, 7249, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st) < 0) __PYX_ERR(0, 7249, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st) < 0) __PYX_ERR(0, 7249, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st = &__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st;
  __pyx_type_4cuda_4cuda_CUuuid.tp_base = __pyx_ptype_4cuda_4cuda_CUuuid_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUuuid) < 0) __PYX_ERR(2, 2072, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUuuid.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUuuid.tp_dictoffset && __pyx_type_4cuda_4cuda_CUuuid.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUuuid.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUuuid, (PyObject *)&__pyx_type_4cuda_4cuda_CUuuid) < 0) __PYX_ERR(2, 2072, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUuuid = &__pyx_type_4cuda_4cuda_CUuuid;
  __pyx_type_4cuda_4cuda_CUipcEventHandle_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUipcEventHandle_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUipcEventHandle_v1) < 0) __PYX_ERR(2, 2088, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUipcEventHandle_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUipcEventHandle_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUipcEventHandle_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUipcEventHandle_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUipcEventHandle_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUipcEventHandle_v1) < 0) __PYX_ERR(2, 2088, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUipcEventHandle_v1 = &__pyx_type_4cuda_4cuda_CUipcEventHandle_v1;
  __pyx_type_4cuda_4cuda_CUipcEventHandle.tp_base = __pyx_ptype_4cuda_4cuda_CUipcEventHandle_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUipcEventHandle) < 0) __PYX_ERR(2, 2105, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUipcEventHandle.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUipcEventHandle.tp_dictoffset && __pyx_type_4cuda_4cuda_CUipcEventHandle.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUipcEventHandle.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUipcEventHandle, (PyObject *)&__pyx_type_4cuda_4cuda_CUipcEventHandle) < 0) __PYX_ERR(2, 2105, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUipcEventHandle = &__pyx_type_4cuda_4cuda_CUipcEventHandle;
  __pyx_type_4cuda_4cuda_CUipcMemHandle_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUipcMemHandle_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUipcMemHandle_v1) < 0) __PYX_ERR(2, 2122, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUipcMemHandle_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUipcMemHandle_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUipcMemHandle_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUipcMemHandle_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUipcMemHandle_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUipcMemHandle_v1) < 0) __PYX_ERR(2, 2122, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUipcMemHandle_v1 = &__pyx_type_4cuda_4cuda_CUipcMemHandle_v1;
  __pyx_type_4cuda_4cuda_CUipcMemHandle.tp_base = __pyx_ptype_4cuda_4cuda_CUipcMemHandle_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUipcMemHandle) < 0) __PYX_ERR(2, 2139, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUipcMemHandle.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUipcMemHandle.tp_dictoffset && __pyx_type_4cuda_4cuda_CUipcMemHandle.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUipcMemHandle.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUipcMemHandle, (PyObject *)&__pyx_type_4cuda_4cuda_CUipcMemHandle) < 0) __PYX_ERR(2, 2139, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUipcMemHandle = &__pyx_type_4cuda_4cuda_CUipcMemHandle;
  __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1) < 0) __PYX_ERR(2, 2156, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamBatchMemOpParams_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1) < 0) __PYX_ERR(2, 2156, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_v1 = &__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams_v1;
  __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams.tp_base = __pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams) < 0) __PYX_ERR(2, 2180, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamBatchMemOpParams, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams) < 0) __PYX_ERR(2, 2180, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams = &__pyx_type_4cuda_4cuda_CUstreamBatchMemOpParams;
  __pyx_type_4cuda_4cuda_CUdevprop_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUdevprop_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdevprop_v1) < 0) __PYX_ERR(2, 2204, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdevprop_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdevprop_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdevprop_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdevprop_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdevprop_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUdevprop_v1) < 0) __PYX_ERR(2, 2204, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdevprop_v1 = &__pyx_type_4cuda_4cuda_CUdevprop_v1;
  __pyx_type_4cuda_4cuda_CUdevprop.tp_base = __pyx_ptype_4cuda_4cuda_CUdevprop_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdevprop) < 0) __PYX_ERR(2, 2239, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdevprop.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdevprop.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdevprop.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdevprop.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdevprop, (PyObject *)&__pyx_type_4cuda_4cuda_CUdevprop) < 0) __PYX_ERR(2, 2239, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdevprop = &__pyx_type_4cuda_4cuda_CUdevprop;
  __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1) < 0) __PYX_ERR(2, 2274, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUaccessPolicyWindow_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1) < 0) __PYX_ERR(2, 2274, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_v1 = &__pyx_type_4cuda_4cuda_CUaccessPolicyWindow_v1;
  __pyx_type_4cuda_4cuda_CUaccessPolicyWindow.tp_base = __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow) < 0) __PYX_ERR(2, 2311, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUaccessPolicyWindow.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUaccessPolicyWindow.tp_dictoffset && __pyx_type_4cuda_4cuda_CUaccessPolicyWindow.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUaccessPolicyWindow.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUaccessPolicyWindow, (PyObject *)&__pyx_type_4cuda_4cuda_CUaccessPolicyWindow) < 0) __PYX_ERR(2, 2311, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow = &__pyx_type_4cuda_4cuda_CUaccessPolicyWindow;
  __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 2348, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_KERNEL_NODE_PARAMS_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 2348, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS) < 0) __PYX_ERR(2, 2383, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_KERNEL_NODE_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS) < 0) __PYX_ERR(2, 2383, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS;
  __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 2418, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMSET_NODE_PARAMS_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 2418, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS) < 0) __PYX_ERR(2, 2445, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMSET_NODE_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS) < 0) __PYX_ERR(2, 2445, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS;
  __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 2472, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_HOST_NODE_PARAMS_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 2472, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS) < 0) __PYX_ERR(2, 2491, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_HOST_NODE_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS) < 0) __PYX_ERR(2, 2491, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_HOST_NODE_PARAMS;
  __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1) < 0) __PYX_ERR(2, 2510, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUkernelNodeAttrValue_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1) < 0) __PYX_ERR(2, 2510, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_v1 = &__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue_v1;
  __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue.tp_base = __pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue) < 0) __PYX_ERR(2, 2528, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue.tp_dictoffset && __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUkernelNodeAttrValue.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUkernelNodeAttrValue, (PyObject *)&__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue) < 0) __PYX_ERR(2, 2528, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue = &__pyx_type_4cuda_4cuda_CUkernelNodeAttrValue;
  __pyx_type_4cuda_4cuda_CUstreamAttrValue_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamAttrValue_v1) < 0) __PYX_ERR(2, 2546, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamAttrValue_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamAttrValue_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamAttrValue_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamAttrValue_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamAttrValue_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamAttrValue_v1) < 0) __PYX_ERR(2, 2546, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamAttrValue_v1 = &__pyx_type_4cuda_4cuda_CUstreamAttrValue_v1;
  __pyx_type_4cuda_4cuda_CUstreamAttrValue.tp_base = __pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUstreamAttrValue) < 0) __PYX_ERR(2, 2564, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUstreamAttrValue.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUstreamAttrValue.tp_dictoffset && __pyx_type_4cuda_4cuda_CUstreamAttrValue.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUstreamAttrValue.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUstreamAttrValue, (PyObject *)&__pyx_type_4cuda_4cuda_CUstreamAttrValue) < 0) __PYX_ERR(2, 2564, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUstreamAttrValue = &__pyx_type_4cuda_4cuda_CUstreamAttrValue;
  __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1) < 0) __PYX_ERR(2, 2582, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinitySmCount_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1) < 0) __PYX_ERR(2, 2582, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_v1 = &__pyx_type_4cuda_4cuda_CUexecAffinitySmCount_v1;
  __pyx_type_4cuda_4cuda_CUexecAffinitySmCount.tp_base = __pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount) < 0) __PYX_ERR(2, 2599, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexecAffinitySmCount.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexecAffinitySmCount.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexecAffinitySmCount.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexecAffinitySmCount.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinitySmCount, (PyObject *)&__pyx_type_4cuda_4cuda_CUexecAffinitySmCount) < 0) __PYX_ERR(2, 2599, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount = &__pyx_type_4cuda_4cuda_CUexecAffinitySmCount;
  __pyx_type_4cuda_4cuda_CUexecAffinityParam_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexecAffinityParam_v1) < 0) __PYX_ERR(2, 2616, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexecAffinityParam_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexecAffinityParam_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexecAffinityParam_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexecAffinityParam_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinityParam_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUexecAffinityParam_v1) < 0) __PYX_ERR(2, 2616, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexecAffinityParam_v1 = &__pyx_type_4cuda_4cuda_CUexecAffinityParam_v1;
  __pyx_type_4cuda_4cuda_CUexecAffinityParam.tp_base = __pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUexecAffinityParam) < 0) __PYX_ERR(2, 2635, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUexecAffinityParam.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUexecAffinityParam.tp_dictoffset && __pyx_type_4cuda_4cuda_CUexecAffinityParam.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUexecAffinityParam.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUexecAffinityParam, (PyObject *)&__pyx_type_4cuda_4cuda_CUexecAffinityParam) < 0) __PYX_ERR(2, 2635, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUexecAffinityParam = &__pyx_type_4cuda_4cuda_CUexecAffinityParam;
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2) < 0) __PYX_ERR(2, 2654, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY2D_v2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2) < 0) __PYX_ERR(2, 2654, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_v2 = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D_v2;
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D) < 0) __PYX_ERR(2, 2701, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY2D.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY2D, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D) < 0) __PYX_ERR(2, 2701, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY2D;
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2) < 0) __PYX_ERR(2, 2748, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY3D_v2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2) < 0) __PYX_ERR(2, 2748, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_v2 = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_v2;
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D) < 0) __PYX_ERR(2, 2814, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY3D, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D) < 0) __PYX_ERR(2, 2814, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D;
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1) < 0) __PYX_ERR(2, 2880, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY3D_PEER_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1) < 0) __PYX_ERR(2, 2880, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1 = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER_v1;
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER) < 0) __PYX_ERR(2, 2947, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEMCPY3D_PEER, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER) < 0) __PYX_ERR(2, 2947, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER = &__pyx_type_4cuda_4cuda_CUDA_MEMCPY3D_PEER;
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2) < 0) __PYX_ERR(2, 3014, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_DESCRIPTOR_v2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2) < 0) __PYX_ERR(2, 3014, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2 = &__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_v2;
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR) < 0) __PYX_ERR(2, 3037, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_DESCRIPTOR, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR) < 0) __PYX_ERR(2, 3037, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR = &__pyx_type_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR;
  __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2) < 0) __PYX_ERR(2, 3060, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_v2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2) < 0) __PYX_ERR(2, 3060, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2 = &__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_v2;
  __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR) < 0) __PYX_ERR(2, 3087, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR) < 0) __PYX_ERR(2, 3087, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR = &__pyx_type_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR;
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1) < 0) __PYX_ERR(2, 3114, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1) < 0) __PYX_ERR(2, 3114, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1 = &__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_v1;
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES) < 0) __PYX_ERR(2, 3140, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES) < 0) __PYX_ERR(2, 3140, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES = &__pyx_type_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES;
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1) < 0) __PYX_ERR(2, 3166, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1) < 0) __PYX_ERR(2, 3166, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC) < 0) __PYX_ERR(2, 3187, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_DESC, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC) < 0) __PYX_ERR(2, 3187, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC = &__pyx_type_4cuda_4cuda_CUDA_RESOURCE_DESC;
  __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1) < 0) __PYX_ERR(2, 3208, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_TEXTURE_DESC_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1) < 0) __PYX_ERR(2, 3208, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC) < 0) __PYX_ERR(2, 3243, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_TEXTURE_DESC, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC) < 0) __PYX_ERR(2, 3243, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC = &__pyx_type_4cuda_4cuda_CUDA_TEXTURE_DESC;
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1) < 0) __PYX_ERR(2, 3278, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_VIEW_DESC_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1) < 0) __PYX_ERR(2, 3278, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC) < 0) __PYX_ERR(2, 3311, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_RESOURCE_VIEW_DESC, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC) < 0) __PYX_ERR(2, 3311, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC = &__pyx_type_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC;
  __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1) < 0) __PYX_ERR(2, 3344, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1) < 0) __PYX_ERR(2, 3344, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 = &__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1;
  __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS) < 0) __PYX_ERR(2, 3363, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS) < 0) __PYX_ERR(2, 3363, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS = &__pyx_type_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS;
  __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1) < 0) __PYX_ERR(2, 3382, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_LAUNCH_PARAMS_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1) < 0) __PYX_ERR(2, 3382, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS) < 0) __PYX_ERR(2, 3417, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_LAUNCH_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS) < 0) __PYX_ERR(2, 3417, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_LAUNCH_PARAMS;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1) < 0) __PYX_ERR(2, 3452, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1) < 0) __PYX_ERR(2, 3452, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC) < 0) __PYX_ERR(2, 3477, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC) < 0) __PYX_ERR(2, 3477, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1) < 0) __PYX_ERR(2, 3502, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1) < 0) __PYX_ERR(2, 3502, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC) < 0) __PYX_ERR(2, 3525, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC) < 0) __PYX_ERR(2, 3525, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1) < 0) __PYX_ERR(2, 3548, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1) < 0) __PYX_ERR(2, 3548, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC) < 0) __PYX_ERR(2, 3572, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC) < 0) __PYX_ERR(2, 3572, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1) < 0) __PYX_ERR(2, 3596, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1) < 0) __PYX_ERR(2, 3596, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC) < 0) __PYX_ERR(2, 3619, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC) < 0) __PYX_ERR(2, 3619, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1) < 0) __PYX_ERR(2, 3642, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1) < 0) __PYX_ERR(2, 3642, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS) < 0) __PYX_ERR(2, 3670, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS) < 0) __PYX_ERR(2, 3670, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1) < 0) __PYX_ERR(2, 3698, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1) < 0) __PYX_ERR(2, 3698, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS) < 0) __PYX_ERR(2, 3726, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS) < 0) __PYX_ERR(2, 3726, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS;
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 3754, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 3754, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS) < 0) __PYX_ERR(2, 3776, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS) < 0) __PYX_ERR(2, 3776, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS;
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 3798, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1) < 0) __PYX_ERR(2, 3798, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 = &__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1;
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS) < 0) __PYX_ERR(2, 3820, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS) < 0) __PYX_ERR(2, 3820, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS;
  __pyx_type_4cuda_4cuda_CUarrayMapInfo_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUarrayMapInfo_v1) < 0) __PYX_ERR(2, 3842, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUarrayMapInfo_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUarrayMapInfo_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUarrayMapInfo_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUarrayMapInfo_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUarrayMapInfo_v1) < 0) __PYX_ERR(2, 3842, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUarrayMapInfo_v1 = &__pyx_type_4cuda_4cuda_CUarrayMapInfo_v1;
  __pyx_type_4cuda_4cuda_CUarrayMapInfo.tp_base = __pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUarrayMapInfo) < 0) __PYX_ERR(2, 3880, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUarrayMapInfo.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUarrayMapInfo.tp_dictoffset && __pyx_type_4cuda_4cuda_CUarrayMapInfo.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUarrayMapInfo.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUarrayMapInfo, (PyObject *)&__pyx_type_4cuda_4cuda_CUarrayMapInfo) < 0) __PYX_ERR(2, 3880, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUarrayMapInfo = &__pyx_type_4cuda_4cuda_CUarrayMapInfo;
  __pyx_type_4cuda_4cuda_CUmemLocation_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUmemLocation_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemLocation_v1) < 0) __PYX_ERR(2, 3918, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemLocation_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemLocation_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemLocation_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemLocation_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemLocation_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemLocation_v1) < 0) __PYX_ERR(2, 3918, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemLocation_v1 = &__pyx_type_4cuda_4cuda_CUmemLocation_v1;
  __pyx_type_4cuda_4cuda_CUmemLocation.tp_base = __pyx_ptype_4cuda_4cuda_CUmemLocation_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemLocation) < 0) __PYX_ERR(2, 3937, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemLocation.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemLocation.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemLocation.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemLocation.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemLocation, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemLocation) < 0) __PYX_ERR(2, 3937, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemLocation = &__pyx_type_4cuda_4cuda_CUmemLocation;
  __pyx_type_4cuda_4cuda_CUmemAllocationProp_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemAllocationProp_v1) < 0) __PYX_ERR(2, 3956, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemAllocationProp_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemAllocationProp_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemAllocationProp_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemAllocationProp_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAllocationProp_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemAllocationProp_v1) < 0) __PYX_ERR(2, 3956, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemAllocationProp_v1 = &__pyx_type_4cuda_4cuda_CUmemAllocationProp_v1;
  __pyx_type_4cuda_4cuda_CUmemAllocationProp.tp_base = __pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemAllocationProp) < 0) __PYX_ERR(2, 3985, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemAllocationProp.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemAllocationProp.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemAllocationProp.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemAllocationProp.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAllocationProp, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemAllocationProp) < 0) __PYX_ERR(2, 3985, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemAllocationProp = &__pyx_type_4cuda_4cuda_CUmemAllocationProp;
  __pyx_type_4cuda_4cuda_CUmemAccessDesc_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemAccessDesc_v1) < 0) __PYX_ERR(2, 4014, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemAccessDesc_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemAccessDesc_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemAccessDesc_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemAccessDesc_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAccessDesc_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemAccessDesc_v1) < 0) __PYX_ERR(2, 4014, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemAccessDesc_v1 = &__pyx_type_4cuda_4cuda_CUmemAccessDesc_v1;
  __pyx_type_4cuda_4cuda_CUmemAccessDesc.tp_base = __pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemAccessDesc) < 0) __PYX_ERR(2, 4033, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemAccessDesc.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemAccessDesc.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemAccessDesc.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemAccessDesc.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemAccessDesc, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemAccessDesc) < 0) __PYX_ERR(2, 4033, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemAccessDesc = &__pyx_type_4cuda_4cuda_CUmemAccessDesc;
  __pyx_type_4cuda_4cuda_CUmemPoolProps_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUmemPoolProps_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemPoolProps_v1) < 0) __PYX_ERR(2, 4052, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemPoolProps_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemPoolProps_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemPoolProps_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemPoolProps_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemPoolProps_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemPoolProps_v1) < 0) __PYX_ERR(2, 4052, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemPoolProps_v1 = &__pyx_type_4cuda_4cuda_CUmemPoolProps_v1;
  __pyx_type_4cuda_4cuda_CUmemPoolProps.tp_base = __pyx_ptype_4cuda_4cuda_CUmemPoolProps_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemPoolProps) < 0) __PYX_ERR(2, 4082, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemPoolProps.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemPoolProps.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemPoolProps.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemPoolProps.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemPoolProps, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemPoolProps) < 0) __PYX_ERR(2, 4082, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemPoolProps = &__pyx_type_4cuda_4cuda_CUmemPoolProps;
  __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1.tp_base = __pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1) < 0) __PYX_ERR(2, 4112, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemPoolPtrExportData_v1, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1) < 0) __PYX_ERR(2, 4112, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_v1 = &__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData_v1;
  __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData.tp_base = __pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData) < 0) __PYX_ERR(2, 4129, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemPoolPtrExportData.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemPoolPtrExportData, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData) < 0) __PYX_ERR(2, 4129, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData = &__pyx_type_4cuda_4cuda_CUmemPoolPtrExportData;
  __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS.tp_base = __pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS) < 0) __PYX_ERR(2, 4146, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS.tp_dictoffset && __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS, (PyObject *)&__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS) < 0) __PYX_ERR(2, 4146, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS = &__pyx_type_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_cuuint32_t) < 0) __PYX_ERR(0, 7360, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_cuuint32_t.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_cuuint32_t.tp_dictoffset && __pyx_type_4cuda_4cuda_cuuint32_t.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_cuuint32_t.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_cuuint32_t_2, (PyObject *)&__pyx_type_4cuda_4cuda_cuuint32_t) < 0) __PYX_ERR(0, 7360, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_cuuint32_t) < 0) __PYX_ERR(0, 7360, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_cuuint32_t = &__pyx_type_4cuda_4cuda_cuuint32_t;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_cuuint64_t) < 0) __PYX_ERR(0, 7391, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_cuuint64_t.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_cuuint64_t.tp_dictoffset && __pyx_type_4cuda_4cuda_cuuint64_t.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_cuuint64_t.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_cuuint64_t_2, (PyObject *)&__pyx_type_4cuda_4cuda_cuuint64_t) < 0) __PYX_ERR(0, 7391, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_cuuint64_t) < 0) __PYX_ERR(0, 7391, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_cuuint64_t = &__pyx_type_4cuda_4cuda_cuuint64_t;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdeviceptr_v2) < 0) __PYX_ERR(0, 7422, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdeviceptr_v2.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdeviceptr_v2.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdeviceptr_v2.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdeviceptr_v2.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdeviceptr_v2_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUdeviceptr_v2) < 0) __PYX_ERR(0, 7422, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUdeviceptr_v2) < 0) __PYX_ERR(0, 7422, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdeviceptr_v2 = &__pyx_type_4cuda_4cuda_CUdeviceptr_v2;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdeviceptr) < 0) __PYX_ERR(0, 7453, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdeviceptr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdeviceptr.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdeviceptr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdeviceptr.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdeviceptr_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUdeviceptr) < 0) __PYX_ERR(0, 7453, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUdeviceptr) < 0) __PYX_ERR(0, 7453, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdeviceptr = &__pyx_type_4cuda_4cuda_CUdeviceptr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdevice_v1) < 0) __PYX_ERR(0, 7484, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdevice_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdevice_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdevice_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdevice_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdevice_v1_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUdevice_v1) < 0) __PYX_ERR(0, 7484, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUdevice_v1) < 0) __PYX_ERR(0, 7484, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdevice_v1 = &__pyx_type_4cuda_4cuda_CUdevice_v1;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUdevice) < 0) __PYX_ERR(0, 7515, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUdevice.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUdevice.tp_dictoffset && __pyx_type_4cuda_4cuda_CUdevice.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUdevice.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUdevice_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUdevice) < 0) __PYX_ERR(0, 7515, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUdevice) < 0) __PYX_ERR(0, 7515, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUdevice = &__pyx_type_4cuda_4cuda_CUdevice;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUtexObject_v1) < 0) __PYX_ERR(0, 7546, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUtexObject_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUtexObject_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUtexObject_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUtexObject_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUtexObject_v1_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUtexObject_v1) < 0) __PYX_ERR(0, 7546, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUtexObject_v1) < 0) __PYX_ERR(0, 7546, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUtexObject_v1 = &__pyx_type_4cuda_4cuda_CUtexObject_v1;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUtexObject) < 0) __PYX_ERR(0, 7577, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUtexObject.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUtexObject.tp_dictoffset && __pyx_type_4cuda_4cuda_CUtexObject.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUtexObject.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUtexObject_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUtexObject) < 0) __PYX_ERR(0, 7577, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUtexObject) < 0) __PYX_ERR(0, 7577, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUtexObject = &__pyx_type_4cuda_4cuda_CUtexObject;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUsurfObject_v1) < 0) __PYX_ERR(0, 7608, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUsurfObject_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUsurfObject_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUsurfObject_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUsurfObject_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUsurfObject_v1_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUsurfObject_v1) < 0) __PYX_ERR(0, 7608, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUsurfObject_v1) < 0) __PYX_ERR(0, 7608, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUsurfObject_v1 = &__pyx_type_4cuda_4cuda_CUsurfObject_v1;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUsurfObject) < 0) __PYX_ERR(0, 7639, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUsurfObject.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUsurfObject.tp_dictoffset && __pyx_type_4cuda_4cuda_CUsurfObject.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUsurfObject.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUsurfObject_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUsurfObject) < 0) __PYX_ERR(0, 7639, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUsurfObject) < 0) __PYX_ERR(0, 7639, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUsurfObject = &__pyx_type_4cuda_4cuda_CUsurfObject;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1) < 0) __PYX_ERR(0, 7670, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemGenericAllocationHandle_v1_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1) < 0) __PYX_ERR(0, 7670, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1) < 0) __PYX_ERR(0, 7670, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle_v1 = &__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle_v1;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle) < 0) __PYX_ERR(0, 7701, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle.tp_dictoffset && __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CUmemGenericAllocationHandle_2, (PyObject *)&__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle) < 0) __PYX_ERR(0, 7701, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle) < 0) __PYX_ERR(0, 7701, __pyx_L1_error)
  __pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle = &__pyx_type_4cuda_4cuda_CUmemGenericAllocationHandle;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3) < 0) __PYX_ERR(0, 9112, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3 = &__pyx_type_4cuda_4cuda___pyx_scope_struct__cuCtxCreate_v3;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 9224, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_1_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_1_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx) < 0) __PYX_ERR(0, 10284, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx = &__pyx_type_4cuda_4cuda___pyx_scope_struct_2_cuModuleLoadDataEx;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(0, 10337, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_3_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_3_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate) < 0) __PYX_ERR(0, 10618, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate = &__pyx_type_4cuda_4cuda___pyx_scope_struct_4_cuLinkCreate;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr) < 0) __PYX_ERR(0, 10667, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_5_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_5_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData) < 0) __PYX_ERR(0, 10682, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData = &__pyx_type_4cuda_4cuda___pyx_scope_struct_6_cuLinkAddData;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr) < 0) __PYX_ERR(0, 10735, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_7_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_7_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile) < 0) __PYX_ERR(0, 10749, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile = &__pyx_type_4cuda_4cuda___pyx_scope_struct_8_cuLinkAddFile;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr) < 0) __PYX_ERR(0, 10801, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_9_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_9_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync) < 0) __PYX_ERR(0, 16437, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync = &__pyx_type_4cuda_4cuda___pyx_scope_struct_10_cuMemMapArrayAsync;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr) < 0) __PYX_ERR(0, 16579, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_11_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_11_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess) < 0) __PYX_ERR(0, 16639, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess = &__pyx_type_4cuda_4cuda___pyx_scope_struct_12_cuMemSetAccess;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr) < 0) __PYX_ERR(0, 16676, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_13_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_13_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess) < 0) __PYX_ERR(0, 17201, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess = &__pyx_type_4cuda_4cuda___pyx_scope_struct_14_cuMemPoolSetAccess;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr) < 0) __PYX_ERR(0, 17232, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_15_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_15_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes) < 0) __PYX_ERR(0, 18047, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes = &__pyx_type_4cuda_4cuda___pyx_scope_struct_16_cuMemRangeGetAttributes;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr) < 0) __PYX_ERR(0, 18099, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_17_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_17_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr) < 0) __PYX_ERR(0, 18101, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_18_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_18_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes) < 0) __PYX_ERR(0, 18171, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes = &__pyx_type_4cuda_4cuda___pyx_scope_struct_19_cuPointerGetAttributes;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr) < 0) __PYX_ERR(0, 18220, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_20_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_20_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies) < 0) __PYX_ERR(0, 18918, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies = &__pyx_type_4cuda_4cuda___pyx_scope_struct_21_cuStreamUpdateCaptureDependencies;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr) < 0) __PYX_ERR(0, 18956, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_22_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_22_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync) < 0) __PYX_ERR(0, 20074, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync = &__pyx_type_4cuda_4cuda___pyx_scope_struct_23_cuSignalExternalSemaphoresAsync;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr) < 0) __PYX_ERR(0, 20155, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_24_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_24_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr) < 0) __PYX_ERR(0, 20158, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_25_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_25_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync) < 0) __PYX_ERR(0, 20187, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync = &__pyx_type_4cuda_4cuda___pyx_scope_struct_26_cuWaitExternalSemaphoresAsync;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr) < 0) __PYX_ERR(0, 20276, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_27_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_27_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr) < 0) __PYX_ERR(0, 20279, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_28_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_28_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp) < 0) __PYX_ERR(0, 20537, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp = &__pyx_type_4cuda_4cuda___pyx_scope_struct_29_cuStreamBatchMemOp;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr) < 0) __PYX_ERR(0, 20584, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_30_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_30_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice) < 0) __PYX_ERR(0, 21102, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice = &__pyx_type_4cuda_4cuda___pyx_scope_struct_31_cuLaunchCooperativeKernelMultiDevice;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr) < 0) __PYX_ERR(0, 21247, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_32_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_32_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode) < 0) __PYX_ERR(0, 21883, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_33_cuGraphAddKernelNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr) < 0) __PYX_ERR(0, 21985, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_34_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_34_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode) < 0) __PYX_ERR(0, 22077, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_35_cuGraphAddMemcpyNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr) < 0) __PYX_ERR(0, 22137, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_36_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_36_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode) < 0) __PYX_ERR(0, 22221, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_37_cuGraphAddMemsetNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr) < 0) __PYX_ERR(0, 22272, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_38_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_38_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode) < 0) __PYX_ERR(0, 22356, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_39_cuGraphAddHostNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr) < 0) __PYX_ERR(0, 22405, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_40_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_40_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode) < 0) __PYX_ERR(0, 22489, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_41_cuGraphAddChildGraphNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr) < 0) __PYX_ERR(0, 22539, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_42_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_42_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode) < 0) __PYX_ERR(0, 22593, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_43_cuGraphAddEmptyNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr) < 0) __PYX_ERR(0, 22639, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_44_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_44_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode) < 0) __PYX_ERR(0, 22658, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_45_cuGraphAddEventRecordNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr) < 0) __PYX_ERR(0, 22707, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_46_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_46_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode) < 0) __PYX_ERR(0, 22793, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_47_cuGraphAddEventWaitNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr) < 0) __PYX_ERR(0, 22843, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_48_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_48_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode) < 0) __PYX_ERR(0, 22929, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_49_cuGraphAddExternalSemaphoresSignalNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr) < 0) __PYX_ERR(0, 22985, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_50_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_50_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode) < 0) __PYX_ERR(0, 23080, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_51_cuGraphAddExternalSemaphoresWaitNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr) < 0) __PYX_ERR(0, 23136, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_52_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_52_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode) < 0) __PYX_ERR(0, 23229, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_53_cuGraphAddMemAllocNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr) < 0) __PYX_ERR(0, 23312, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_54_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_54_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode) < 0) __PYX_ERR(0, 23365, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode = &__pyx_type_4cuda_4cuda___pyx_scope_struct_55_cuGraphAddMemFreeNode;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr) < 0) __PYX_ERR(0, 23425, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_56_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_56_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies) < 0) __PYX_ERR(0, 23970, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies = &__pyx_type_4cuda_4cuda___pyx_scope_struct_57_cuGraphAddDependencies;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr) < 0) __PYX_ERR(0, 24007, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_58_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_58_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr) < 0) __PYX_ERR(0, 24010, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_59_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_59_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies) < 0) __PYX_ERR(0, 24038, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies = &__pyx_type_4cuda_4cuda___pyx_scope_struct_60_cuGraphRemoveDependencies;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr) < 0) __PYX_ERR(0, 24079, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_61_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_61_genexpr;
  if (PyType_Ready(&__pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr) < 0) __PYX_ERR(0, 24082, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr.tp_dictoffset && __pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4cuda_4cuda___pyx_scope_struct_62_genexpr = &__pyx_type_4cuda_4cuda___pyx_scope_struct_62_genexpr;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule("cuda._lib.utils"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperKernelParams", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperKernelParams), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperKernelParams) __PYX_ERR(3, 12, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperInputVoidPtr", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperInputVoidPtr), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperInputVoidPtr) __PYX_ERR(3, 20, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_HelperCUmemPool_attribute = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperCUmemPool_attribute", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmemPool_attribute), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperCUmemPool_attribute) __PYX_ERR(3, 25, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_HelperCUmem_range_attribute = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperCUmem_range_attribute", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperCUmem_range_attribute), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperCUmem_range_attribute) __PYX_ERR(3, 34, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_HelperCUpointer_attribute = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperCUpointer_attribute", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperCUpointer_attribute), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperCUpointer_attribute) __PYX_ERR(3, 43, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_HelperCUgraphMem_attribute = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperCUgraphMem_attribute", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperCUgraphMem_attribute), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperCUgraphMem_attribute) __PYX_ERR(3, 59, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "HelperCUjit_option", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_HelperCUjit_option), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_HelperCUjit_option) __PYX_ERR(3, 67, __pyx_L1_error)
  __pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper = __Pyx_ImportType(__pyx_t_1, "cuda._lib.utils", "InputVoidPtrPtrHelper", sizeof(struct __pyx_obj_4cuda_4_lib_5utils_InputVoidPtrPtrHelper), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4cuda_4_lib_5utils_InputVoidPtrPtrHelper) __PYX_ERR(3, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __pyx_t_1 = PyImport_ImportModule("cuda.ccuda"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGetErrorString", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGetErrorString, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUresult, char const **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGetErrorName", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGetErrorName, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUresult, char const **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuInit", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuInit, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDriverGetVersion", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDriverGetVersion, "__pyx_t_4cuda_5ccuda_CUresult (int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGet", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGet, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetCount", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetCount, "__pyx_t_4cuda_5ccuda_CUresult (int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetName", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetName, "__pyx_t_4cuda_5ccuda_CUresult (char *, int, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetUuid", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetUuid, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUuuid *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetUuid_v2", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetUuid_v2, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUuuid *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetLuid", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetLuid, "__pyx_t_4cuda_5ccuda_CUresult (char *, unsigned int *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceTotalMem", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceTotalMem, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetTexture1DLinearMaxWidth", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetTexture1DLinearMaxWidth, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, __pyx_t_4cuda_5ccuda_CUarray_format, unsigned int, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUdevice_attribute, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetNvSciSyncAttributes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetNvSciSyncAttributes, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUdevice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceSetMemPool", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceSetMemPool, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUmemoryPool)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetMemPool", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetMemPool, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetDefaultMemPool", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetDefaultMemPool, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFlushGPUDirectRDMAWrites", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFlushGPUDirectRDMAWrites, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget, __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetProperties", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetProperties, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevprop *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceComputeCapability", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceComputeCapability, "__pyx_t_4cuda_5ccuda_CUresult (int *, int *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDevicePrimaryCtxRetain", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxRetain, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext *, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDevicePrimaryCtxRelease", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxRelease, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDevicePrimaryCtxSetFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxSetFlags, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDevicePrimaryCtxGetState", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxGetState, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice, unsigned int *, int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDevicePrimaryCtxReset", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDevicePrimaryCtxReset, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetExecAffinitySupport", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetExecAffinitySupport, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUexecAffinityType, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext *, unsigned int, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxCreate_v3", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxCreate_v3, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext *, __pyx_t_4cuda_5ccuda_CUexecAffinityParam *, int, unsigned int, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxPushCurrent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxPushCurrent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxPopCurrent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxPopCurrent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxSetCurrent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxSetCurrent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetCurrent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetCurrent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetDevice", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetDevice, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetFlags, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxSynchronize", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxSynchronize, "__pyx_t_4cuda_5ccuda_CUresult (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxSetLimit", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxSetLimit, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUlimit, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetLimit", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetLimit, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, __pyx_t_4cuda_5ccuda_CUlimit)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetCacheConfig", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetCacheConfig, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunc_cache *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxSetCacheConfig", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxSetCacheConfig, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunc_cache)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetSharedMemConfig", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetSharedMemConfig, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUsharedconfig *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxSetSharedMemConfig", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxSetSharedMemConfig, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUsharedconfig)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetApiVersion", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetApiVersion, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext, unsigned int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetStreamPriorityRange", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetStreamPriorityRange, "__pyx_t_4cuda_5ccuda_CUresult (int *, int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxResetPersistingL2Cache", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxResetPersistingL2Cache, "__pyx_t_4cuda_5ccuda_CUresult (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxGetExecAffinity", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxGetExecAffinity, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexecAffinityParam *, __pyx_t_4cuda_5ccuda_CUexecAffinityType)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxAttach", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxAttach, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxDetach", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxDetach, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleLoad", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleLoad, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmodule *, char const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleLoadData", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleLoadData, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmodule *, void const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleLoadDataEx", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleLoadDataEx, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmodule *, void const *, unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleLoadFatBinary", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleLoadFatBinary, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmodule *, void const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleUnload", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleUnload, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmodule)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleGetFunction", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleGetFunction, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction *, __pyx_t_4cuda_5ccuda_CUmodule, char const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleGetGlobal", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleGetGlobal, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, __pyx_t_4cuda_5ccuda_CUmodule, char const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleGetTexRef", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleGetTexRef, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref *, __pyx_t_4cuda_5ccuda_CUmodule, char const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuModuleGetSurfRef", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuModuleGetSurfRef, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUsurfref *, __pyx_t_4cuda_5ccuda_CUmodule, char const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLinkCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLinkCreate, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **, __pyx_t_4cuda_5ccuda_CUlinkState *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLinkAddData", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLinkAddData, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUlinkState, __pyx_t_4cuda_5ccuda_CUjitInputType, void *, size_t, char const *, unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLinkAddFile", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLinkAddFile, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUlinkState, __pyx_t_4cuda_5ccuda_CUjitInputType, char const *, unsigned int, __pyx_t_4cuda_5ccuda_CUjit_option *, void **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLinkComplete", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLinkComplete, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUlinkState, void **, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLinkDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLinkDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUlinkState)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemGetInfo", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemGetInfo, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAlloc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAlloc, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAllocPitch", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAllocPitch, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, size_t, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemFree", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemFree, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemGetAddressRange", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemGetAddressRange, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAllocHost", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAllocHost, "__pyx_t_4cuda_5ccuda_CUresult (void **, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemFreeHost", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemFreeHost, "__pyx_t_4cuda_5ccuda_CUresult (void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemHostAlloc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemHostAlloc, "__pyx_t_4cuda_5ccuda_CUresult (void **, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemHostGetDevicePointer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemHostGetDevicePointer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, void *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemHostGetFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemHostGetFlags, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int *, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAllocManaged", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAllocManaged, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetByPCIBusId", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetByPCIBusId, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice *, char const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetPCIBusId", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetPCIBusId, "__pyx_t_4cuda_5ccuda_CUresult (char *, int, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuIpcGetEventHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuIpcGetEventHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUipcEventHandle *, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuIpcOpenEventHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuIpcOpenEventHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent *, __pyx_t_4cuda_5ccuda_CUipcEventHandle)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuIpcGetMemHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuIpcGetMemHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUipcMemHandle *, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuIpcOpenMemHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuIpcOpenMemHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUipcMemHandle, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuIpcCloseMemHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuIpcCloseMemHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemHostRegister", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemHostRegister, "__pyx_t_4cuda_5ccuda_CUresult (void *, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemHostUnregister", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemHostUnregister, "__pyx_t_4cuda_5ccuda_CUresult (void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyPeer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyPeer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyHtoD", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyHtoD, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, void const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyDtoH", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyDtoH, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyDtoD", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyDtoD, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyDtoA", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyDtoA, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyAtoD", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyAtoD, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyHtoA", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyHtoA, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray, size_t, void const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyAtoH", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyAtoH, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyAtoA", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyAtoA, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray, size_t, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy2D", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy2D, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy2DUnaligned", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy2DUnaligned, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy3D", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy3D, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy3DPeer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy3DPeer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyPeerAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyPeerAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUcontext, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyHtoDAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyHtoDAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, void const *, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyDtoHAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyDtoHAsync, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyDtoDAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyDtoDAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyHtoAAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyHtoAAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray, size_t, void const *, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpyAtoHAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpyAtoHAsync, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUarray, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy2DAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy2DAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY2D const *, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy3DAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy3DAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemcpy3DPeerAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemcpy3DPeerAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D_PEER const *, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD8", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD8, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned char, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD16", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD16, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned short, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD32", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD32, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned int, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD2D8", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD2D8, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned char, size_t, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD2D16", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD2D16, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned short, size_t, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD2D32", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD2D32, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned int, size_t, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD8Async", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD8Async, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned char, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD16Async", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD16Async, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned short, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD32Async", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD32Async, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned int, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD2D8Async", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD2D8Async, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned char, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD2D16Async", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD2D16Async, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned short, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemsetD2D32Async", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemsetD2D32Async, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned int, size_t, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArrayCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArrayCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArrayGetDescriptor", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArrayGetDescriptor, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR *, __pyx_t_4cuda_5ccuda_CUarray)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArrayGetSparseProperties", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArrayGetSparseProperties, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES *, __pyx_t_4cuda_5ccuda_CUarray)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMipmappedArrayGetSparseProperties", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMipmappedArrayGetSparseProperties, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_ARRAY_SPARSE_PROPERTIES *, __pyx_t_4cuda_5ccuda_CUmipmappedArray)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArrayGetPlane", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArrayGetPlane, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUarray, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArrayDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArrayDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArray3DCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArray3DCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuArray3DGetDescriptor", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuArray3DGetDescriptor, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR *, __pyx_t_4cuda_5ccuda_CUarray)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMipmappedArrayCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMipmappedArrayCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUDA_ARRAY3D_DESCRIPTOR const *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMipmappedArrayGetLevel", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMipmappedArrayGetLevel, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUmipmappedArray, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMipmappedArrayDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMipmappedArrayDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmipmappedArray)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAddressReserve", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAddressReserve, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAddressFree", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAddressFree, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *, size_t, __pyx_t_4cuda_5ccuda_CUmemAllocationProp const *, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemRelease", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemRelease, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemMap", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemMap, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, size_t, __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemMapArrayAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemMapArrayAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarrayMapInfo *, unsigned int, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemUnmap", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemUnmap, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemSetAccess", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemSetAccess, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUmemAccessDesc const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemGetAccess", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemGetAccess, "__pyx_t_4cuda_5ccuda_CUresult (unsigned PY_LONG_LONG *, __pyx_t_4cuda_5ccuda_CUmemLocation const *, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemExportToShareableHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemExportToShareableHandle, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemImportFromShareableHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemImportFromShareableHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *, void *, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemGetAllocationGranularity", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemGetAllocationGranularity, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, __pyx_t_4cuda_5ccuda_CUmemAllocationProp const *, __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemGetAllocationPropertiesFromHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemGetAllocationPropertiesFromHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemAllocationProp *, __pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemRetainAllocationHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemRetainAllocationHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemGenericAllocationHandle *, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemFreeAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemFreeAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAllocAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAllocAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolTrimTo", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolTrimTo, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolSetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolSetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemPool_attribute, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemPool_attribute, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolSetAccess", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolSetAccess, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemAccessDesc const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolGetAccess", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolGetAccess, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemAccess_flags *, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemLocation *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool *, __pyx_t_4cuda_5ccuda_CUmemPoolProps const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAllocFromPoolAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAllocFromPoolAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolExportToShareableHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolExportToShareableHandle, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolImportFromShareableHandle", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolImportFromShareableHandle, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemoryPool *, void *, __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolExportPointer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolExportPointer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData *, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPoolImportPointer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPoolImportPointer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUmemoryPool, __pyx_t_4cuda_5ccuda_CUmemPoolPtrExportData *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuPointerGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuPointerGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (void *, __pyx_t_4cuda_5ccuda_CUpointer_attribute, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemPrefetchAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemPrefetchAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemAdvise", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemAdvise, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, __pyx_t_4cuda_5ccuda_CUmem_advise, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemRangeGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemRangeGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (void *, size_t, __pyx_t_4cuda_5ccuda_CUmem_range_attribute, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuMemRangeGetAttributes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuMemRangeGetAttributes, "__pyx_t_4cuda_5ccuda_CUresult (void **, size_t *, __pyx_t_4cuda_5ccuda_CUmem_range_attribute *, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuPointerSetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuPointerSetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (void const *, __pyx_t_4cuda_5ccuda_CUpointer_attribute, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuPointerGetAttributes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuPointerGetAttributes, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int, __pyx_t_4cuda_5ccuda_CUpointer_attribute *, void **, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamCreateWithPriority", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamCreateWithPriority, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream *, unsigned int, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamGetPriority", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamGetPriority, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamGetFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamGetFlags, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, unsigned int *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamGetCtx", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamGetCtx, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUcontext *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamWaitEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamWaitEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUevent, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamAddCallback", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamAddCallback, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCallback, void *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamBeginCapture", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamBeginCapture, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureMode)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuThreadExchangeStreamCaptureMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuThreadExchangeStreamCaptureMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstreamCaptureMode *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamEndCapture", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamEndCapture, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUgraph *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamIsCapturing", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamIsCapturing, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamGetCaptureInfo", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamGetCaptureInfo, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus *, __pyx_t_4cuda_5ccuda_cuuint64_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamGetCaptureInfo_v2", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamGetCaptureInfo_v2, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus *, __pyx_t_4cuda_5ccuda_cuuint64_t *, __pyx_t_4cuda_5ccuda_CUgraph *, __pyx_t_4cuda_5ccuda_CUgraphNode const **, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamUpdateCaptureDependencies", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamUpdateCaptureDependencies, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamAttachMemAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamAttachMemAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamQuery", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamQuery, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamSynchronize", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamSynchronize, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamCopyAttributes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamCopyAttributes, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamAttrID, __pyx_t_4cuda_5ccuda_CUstreamAttrValue *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamSetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamSetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUstreamAttrID, __pyx_t_4cuda_5ccuda_CUstreamAttrValue const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventRecord", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventRecord, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventRecordWithFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventRecordWithFlags, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent, __pyx_t_4cuda_5ccuda_CUstream, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventQuery", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventQuery, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventSynchronize", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventSynchronize, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuEventElapsedTime", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuEventElapsedTime, "__pyx_t_4cuda_5ccuda_CUresult (float *, __pyx_t_4cuda_5ccuda_CUevent, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuImportExternalMemory", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuImportExternalMemory, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexternalMemory *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuExternalMemoryGetMappedBuffer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuExternalMemoryGetMappedBuffer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUexternalMemory, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuExternalMemoryGetMappedMipmappedArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuExternalMemoryGetMappedMipmappedArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUexternalMemory, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDestroyExternalMemory", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDestroyExternalMemory, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexternalMemory)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuImportExternalSemaphore", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuImportExternalSemaphore, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexternalSemaphore *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuSignalExternalSemaphoresAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuSignalExternalSemaphoresAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexternalSemaphore const *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS const *, unsigned int, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuWaitExternalSemaphoresAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuWaitExternalSemaphoresAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexternalSemaphore const *, __pyx_t_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS const *, unsigned int, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDestroyExternalSemaphore", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDestroyExternalSemaphore, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUexternalSemaphore)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamWaitValue32", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamWaitValue32, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint32_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamWaitValue64", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamWaitValue64, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint64_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamWriteValue32", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamWriteValue32, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint32_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamWriteValue64", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamWriteValue64, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUdeviceptr, __pyx_t_4cuda_5ccuda_cuuint64_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuStreamBatchMemOp", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuStreamBatchMemOp, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, unsigned int, __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpParams *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUfunction_attribute, __pyx_t_4cuda_5ccuda_CUfunction)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncSetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncSetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUfunction_attribute, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncSetCacheConfig", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncSetCacheConfig, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUfunc_cache)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncSetSharedMemConfig", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncSetSharedMemConfig, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUsharedconfig)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncGetModule", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncGetModule, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmodule *, __pyx_t_4cuda_5ccuda_CUfunction)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunchKernel", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunchKernel, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, __pyx_t_4cuda_5ccuda_CUstream, void **, void **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunchCooperativeKernel", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunchCooperativeKernel, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, __pyx_t_4cuda_5ccuda_CUstream, void **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunchCooperativeKernelMultiDevice", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunchCooperativeKernelMultiDevice, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_LAUNCH_PARAMS *, unsigned int, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunchHostFunc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunchHostFunc, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUstream, __pyx_t_4cuda_5ccuda_CUhostFn, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncSetBlockShape", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncSetBlockShape, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, int, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuFuncSetSharedSize", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuFuncSetSharedSize, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuParamSetSize", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuParamSetSize, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuParamSeti", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuParamSeti, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuParamSetf", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuParamSetf, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, float)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuParamSetv", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuParamSetv, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, void *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunch", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunch, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunchGrid", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunchGrid, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuLaunchGridAsync", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuLaunchGridAsync, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, int, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuParamSetTexRef", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuParamSetTexRef, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfunction, int, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddKernelNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddKernelNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphKernelNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphKernelNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphKernelNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphKernelNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddMemcpyNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddMemcpyNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *, __pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphMemcpyNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphMemcpyNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphMemcpyNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphMemcpyNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddMemsetNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddMemsetNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS const *, __pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphMemsetNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphMemsetNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphMemsetNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphMemsetNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddHostNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddHostNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphHostNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphHostNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphHostNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphHostNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddChildGraphNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddChildGraphNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUgraph)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphChildGraphNodeGetGraph", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphChildGraphNodeGetGraph, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraph *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddEmptyNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddEmptyNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddEventRecordNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddEventRecordNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphEventRecordNodeGetEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphEventRecordNodeGetEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphEventRecordNodeSetEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphEventRecordNodeSetEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddEventWaitNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddEventWaitNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphEventWaitNodeGetEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphEventWaitNodeGetEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphEventWaitNodeSetEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphEventWaitNodeSetEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddExternalSemaphoresSignalNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddExternalSemaphoresSignalNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExternalSemaphoresSignalNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresSignalNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExternalSemaphoresSignalNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresSignalNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddExternalSemaphoresWaitNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddExternalSemaphoresWaitNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExternalSemaphoresWaitNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresWaitNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExternalSemaphoresWaitNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExternalSemaphoresWaitNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddMemAllocNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddMemAllocNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphMemAllocNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphMemAllocNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEM_ALLOC_NODE_PARAMS *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddMemFreeNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddMemFreeNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t, __pyx_t_4cuda_5ccuda_CUdeviceptr)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphMemFreeNodeGetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphMemFreeNodeGetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUdeviceptr *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGraphMemTrim", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGraphMemTrim, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetGraphMemAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetGraphMemAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUgraphMem_attribute, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceSetGraphMemAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceSetGraphMemAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUgraphMem_attribute, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphClone", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphClone, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph *, __pyx_t_4cuda_5ccuda_CUgraph)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphNodeFindInClone", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphNodeFindInClone, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraph)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphNodeGetType", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphNodeGetType, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNodeType *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphGetNodes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphGetNodes, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphGetRootNodes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphGetRootNodes, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphGetEdges", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphGetEdges, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphNodeGetDependencies", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphNodeGetDependencies, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphNodeGetDependentNodes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphNodeGetDependentNodes, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNode *, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphAddDependencies", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphAddDependencies, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphRemoveDependencies", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphRemoveDependencies, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode const *, __pyx_t_4cuda_5ccuda_CUgraphNode const *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphDestroyNode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphDestroyNode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphInstantiate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphInstantiate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec *, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, char *, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphInstantiateWithFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphInstantiateWithFlags, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec *, __pyx_t_4cuda_5ccuda_CUgraph, unsigned PY_LONG_LONG)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecKernelNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecKernelNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_KERNEL_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecMemcpyNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecMemcpyNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMCPY3D const *, __pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecMemsetNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecMemsetNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_MEMSET_NODE_PARAMS const *, __pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecHostNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecHostNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_HOST_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecChildGraphNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecChildGraphNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraph)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecEventRecordNodeSetEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecEventRecordNodeSetEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecEventWaitNodeSetEvent", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecEventWaitNodeSetEvent, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUevent)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecExternalSemaphoresSignalNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecExternalSemaphoresSignalNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecExternalSemaphoresWaitNodeSetParams", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecExternalSemaphoresWaitNodeSetParams, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphUpload", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphUpload, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphLaunch", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphLaunch, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphExecUpdate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphExecUpdate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphExec, __pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUgraphNode *, __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphKernelNodeCopyAttributes", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphKernelNodeCopyAttributes, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUgraphNode)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphKernelNodeGetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphKernelNodeGetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphKernelNodeSetAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphKernelNodeSetAttribute, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphNode, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID, __pyx_t_4cuda_5ccuda_CUkernelNodeAttrValue const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphDebugDotPrint", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphDebugDotPrint, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, char const *, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuUserObjectCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuUserObjectCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUuserObject *, void *, __pyx_t_4cuda_5ccuda_CUhostFn, unsigned int, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuUserObjectRetain", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuUserObjectRetain, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUuserObject, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuUserObjectRelease", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuUserObjectRelease, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUuserObject, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphRetainUserObject", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphRetainUserObject, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUuserObject, unsigned int, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphReleaseUserObject", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphReleaseUserObject, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraph, __pyx_t_4cuda_5ccuda_CUuserObject, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuOccupancyMaxActiveBlocksPerMultiprocessor", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuOccupancyMaxActiveBlocksPerMultiprocessor, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUfunction, int, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUfunction, int, size_t, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuOccupancyMaxPotentialBlockSize", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuOccupancyMaxPotentialBlockSize, "__pyx_t_4cuda_5ccuda_CUresult (int *, int *, __pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUoccupancyB2DSize, size_t, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuOccupancyMaxPotentialBlockSizeWithFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuOccupancyMaxPotentialBlockSizeWithFlags, "__pyx_t_4cuda_5ccuda_CUresult (int *, int *, __pyx_t_4cuda_5ccuda_CUfunction, __pyx_t_4cuda_5ccuda_CUoccupancyB2DSize, size_t, int, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuOccupancyAvailableDynamicSMemPerBlock", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuOccupancyAvailableDynamicSMemPerBlock, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, __pyx_t_4cuda_5ccuda_CUfunction, int, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUarray, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetMipmappedArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetMipmappedArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUmipmappedArray, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetAddress", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetAddress, "__pyx_t_4cuda_5ccuda_CUresult (size_t *, __pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetAddress2D", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetAddress2D, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUDA_ARRAY_DESCRIPTOR const *, __pyx_t_4cuda_5ccuda_CUdeviceptr, size_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetFormat", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetFormat, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUarray_format, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetAddressMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetAddressMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, int, __pyx_t_4cuda_5ccuda_CUaddress_mode)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetFilterMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetFilterMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUfilter_mode)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetMipmapFilterMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetMipmapFilterMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, __pyx_t_4cuda_5ccuda_CUfilter_mode)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetMipmapLevelBias", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetMipmapLevelBias, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, float)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetMipmapLevelClamp", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetMipmapLevelClamp, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, float, float)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetMaxAnisotropy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetMaxAnisotropy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetBorderColor", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetBorderColor, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, float *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefSetFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefSetFlags, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetAddress", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetAddress, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetMipmappedArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetMipmappedArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetAddressMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetAddressMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUaddress_mode *, __pyx_t_4cuda_5ccuda_CUtexref, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetFilterMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetFilterMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfilter_mode *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetFormat", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetFormat, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray_format *, int *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetMipmapFilterMode", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetMipmapFilterMode, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUfilter_mode *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetMipmapLevelBias", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetMipmapLevelBias, "__pyx_t_4cuda_5ccuda_CUresult (float *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetMipmapLevelClamp", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetMipmapLevelClamp, "__pyx_t_4cuda_5ccuda_CUresult (float *, float *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetMaxAnisotropy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetMaxAnisotropy, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetBorderColor", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetBorderColor, "__pyx_t_4cuda_5ccuda_CUresult (float *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefGetFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefGetFlags, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int *, __pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexRefDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexRefDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuSurfRefSetArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuSurfRefSetArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUsurfref, __pyx_t_4cuda_5ccuda_CUarray, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuSurfRefGetArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuSurfRefGetArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUsurfref)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexObjectCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexObjectCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexObject *, __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC const *, __pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC const *, __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexObjectDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexObjectDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUtexObject)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexObjectGetResourceDesc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexObjectGetResourceDesc, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC *, __pyx_t_4cuda_5ccuda_CUtexObject)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexObjectGetTextureDesc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexObjectGetTextureDesc, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_TEXTURE_DESC *, __pyx_t_4cuda_5ccuda_CUtexObject)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuTexObjectGetResourceViewDesc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuTexObjectGetResourceViewDesc, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_VIEW_DESC *, __pyx_t_4cuda_5ccuda_CUtexObject)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuSurfObjectCreate", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuSurfObjectCreate, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUsurfObject *, __pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuSurfObjectDestroy", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuSurfObjectDestroy, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUsurfObject)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuSurfObjectGetResourceDesc", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuSurfObjectGetResourceDesc, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUDA_RESOURCE_DESC *, __pyx_t_4cuda_5ccuda_CUsurfObject)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceCanAccessPeer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceCanAccessPeer, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxEnablePeerAccess", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxEnablePeerAccess, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuCtxDisablePeerAccess", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuCtxDisablePeerAccess, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUcontext)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuDeviceGetP2PAttribute", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuDeviceGetP2PAttribute, "__pyx_t_4cuda_5ccuda_CUresult (int *, __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute, __pyx_t_4cuda_5ccuda_CUdevice, __pyx_t_4cuda_5ccuda_CUdevice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsUnregisterResource", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsUnregisterResource, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphicsResource)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsSubResourceGetMappedArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsSubResourceGetMappedArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUarray *, __pyx_t_4cuda_5ccuda_CUgraphicsResource, unsigned int, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsResourceGetMappedMipmappedArray", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsResourceGetMappedMipmappedArray, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUmipmappedArray *, __pyx_t_4cuda_5ccuda_CUgraphicsResource)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsResourceGetMappedPointer", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsResourceGetMappedPointer, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUdeviceptr *, size_t *, __pyx_t_4cuda_5ccuda_CUgraphicsResource)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsResourceSetMapFlags", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsResourceSetMapFlags, "__pyx_t_4cuda_5ccuda_CUresult (__pyx_t_4cuda_5ccuda_CUgraphicsResource, unsigned int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsMapResources", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsMapResources, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int, __pyx_t_4cuda_5ccuda_CUgraphicsResource *, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGraphicsUnmapResources", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGraphicsUnmapResources, "__pyx_t_4cuda_5ccuda_CUresult (unsigned int, __pyx_t_4cuda_5ccuda_CUgraphicsResource *, __pyx_t_4cuda_5ccuda_CUstream)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGetProcAddress", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGetProcAddress, "__pyx_t_4cuda_5ccuda_CUresult (char const *, void **, int, __pyx_t_4cuda_5ccuda_cuuint64_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "cuGetExportTable", (void (**)(void))&__pyx_f_4cuda_5ccuda_cuGetExportTable, "__pyx_t_4cuda_5ccuda_CUresult (void const **, __pyx_t_4cuda_5ccuda_CUuuid const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}


#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initcuda(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initcuda(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_cuda(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_cuda(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_cuda(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'cuda' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_cuda(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  PyEval_InitThreads();
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("cuda", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_b);
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_cython_runtime);
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_cuda__cuda) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_3, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "cuda.cuda")) {
      if (unlikely(PyDict_SetItemString(modules, "cuda.cuda", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  (void)__Pyx_modinit_function_export_code();
  if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_cuda(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));

  /* "cuda/cuda.pyx":8
 * # this software and related documentation outside the terms of the EULA
 * # is strictly prohibited.
 * from typing import List, Tuple, Any             # <<<<<<<<<<<<<<
 * from enum import Enum
 * import cython
 */
  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_List);
  __Pyx_GIVEREF(__pyx_n_s_List);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_List);
  __Pyx_INCREF(__pyx_n_s_Tuple);
  __Pyx_GIVEREF(__pyx_n_s_Tuple);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_Tuple);
  __Pyx_INCREF(__pyx_n_s_Any);
  __Pyx_GIVEREF(__pyx_n_s_Any);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_Any);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_typing, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_List, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Tuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Tuple, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Any, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9
 * # is strictly prohibited.
 * from typing import List, Tuple, Any
 * from enum import Enum             # <<<<<<<<<<<<<<
 * import cython
 * import ctypes
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Enum);
  __Pyx_GIVEREF(__pyx_n_s_Enum);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Enum);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_enum, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Enum, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":11
 * from enum import Enum
 * import cython
 * import ctypes             # <<<<<<<<<<<<<<
 * from libc.stdlib cimport calloc, free
 * from libc.string cimport memcpy
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_ctypes, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ctypes, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":42
 * ctypedef unsigned long long void_ptr
 * 
 * CUDA_VERSION = ccuda.CUDA_VERSION             # <<<<<<<<<<<<<<
 * CU_IPC_HANDLE_SIZE = ccuda.CU_IPC_HANDLE_SIZE
 * CU_STREAM_LEGACY = ccuda.CU_STREAM_LEGACY
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_VERSION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_VERSION, __pyx_t_1) < 0) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":43
 * 
 * CUDA_VERSION = ccuda.CUDA_VERSION
 * CU_IPC_HANDLE_SIZE = ccuda.CU_IPC_HANDLE_SIZE             # <<<<<<<<<<<<<<
 * CU_STREAM_LEGACY = ccuda.CU_STREAM_LEGACY
 * CU_STREAM_PER_THREAD = ccuda.CU_STREAM_PER_THREAD
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_IPC_HANDLE_SIZE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_IPC_HANDLE_SIZE, __pyx_t_1) < 0) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":44
 * CUDA_VERSION = ccuda.CUDA_VERSION
 * CU_IPC_HANDLE_SIZE = ccuda.CU_IPC_HANDLE_SIZE
 * CU_STREAM_LEGACY = ccuda.CU_STREAM_LEGACY             # <<<<<<<<<<<<<<
 * CU_STREAM_PER_THREAD = ccuda.CU_STREAM_PER_THREAD
 * CU_MEMHOSTALLOC_PORTABLE = ccuda.CU_MEMHOSTALLOC_PORTABLE
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_STREAM_LEGACY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_STREAM_LEGACY, __pyx_t_1) < 0) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":45
 * CU_IPC_HANDLE_SIZE = ccuda.CU_IPC_HANDLE_SIZE
 * CU_STREAM_LEGACY = ccuda.CU_STREAM_LEGACY
 * CU_STREAM_PER_THREAD = ccuda.CU_STREAM_PER_THREAD             # <<<<<<<<<<<<<<
 * CU_MEMHOSTALLOC_PORTABLE = ccuda.CU_MEMHOSTALLOC_PORTABLE
 * CU_MEMHOSTALLOC_DEVICEMAP = ccuda.CU_MEMHOSTALLOC_DEVICEMAP
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_STREAM_PER_THREAD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_STREAM_PER_THREAD, __pyx_t_1) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":46
 * CU_STREAM_LEGACY = ccuda.CU_STREAM_LEGACY
 * CU_STREAM_PER_THREAD = ccuda.CU_STREAM_PER_THREAD
 * CU_MEMHOSTALLOC_PORTABLE = ccuda.CU_MEMHOSTALLOC_PORTABLE             # <<<<<<<<<<<<<<
 * CU_MEMHOSTALLOC_DEVICEMAP = ccuda.CU_MEMHOSTALLOC_DEVICEMAP
 * CU_MEMHOSTALLOC_WRITECOMBINED = ccuda.CU_MEMHOSTALLOC_WRITECOMBINED
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTALLOC_PORTABLE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTALLOC_PORTABLE, __pyx_t_1) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":47
 * CU_STREAM_PER_THREAD = ccuda.CU_STREAM_PER_THREAD
 * CU_MEMHOSTALLOC_PORTABLE = ccuda.CU_MEMHOSTALLOC_PORTABLE
 * CU_MEMHOSTALLOC_DEVICEMAP = ccuda.CU_MEMHOSTALLOC_DEVICEMAP             # <<<<<<<<<<<<<<
 * CU_MEMHOSTALLOC_WRITECOMBINED = ccuda.CU_MEMHOSTALLOC_WRITECOMBINED
 * CU_MEMHOSTREGISTER_PORTABLE = ccuda.CU_MEMHOSTREGISTER_PORTABLE
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTALLOC_DEVICEMAP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTALLOC_DEVICEMAP, __pyx_t_1) < 0) __PYX_ERR(0, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":48
 * CU_MEMHOSTALLOC_PORTABLE = ccuda.CU_MEMHOSTALLOC_PORTABLE
 * CU_MEMHOSTALLOC_DEVICEMAP = ccuda.CU_MEMHOSTALLOC_DEVICEMAP
 * CU_MEMHOSTALLOC_WRITECOMBINED = ccuda.CU_MEMHOSTALLOC_WRITECOMBINED             # <<<<<<<<<<<<<<
 * CU_MEMHOSTREGISTER_PORTABLE = ccuda.CU_MEMHOSTREGISTER_PORTABLE
 * CU_MEMHOSTREGISTER_DEVICEMAP = ccuda.CU_MEMHOSTREGISTER_DEVICEMAP
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTALLOC_WRITECOMBINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTALLOC_WRITECOMBINED, __pyx_t_1) < 0) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":49
 * CU_MEMHOSTALLOC_DEVICEMAP = ccuda.CU_MEMHOSTALLOC_DEVICEMAP
 * CU_MEMHOSTALLOC_WRITECOMBINED = ccuda.CU_MEMHOSTALLOC_WRITECOMBINED
 * CU_MEMHOSTREGISTER_PORTABLE = ccuda.CU_MEMHOSTREGISTER_PORTABLE             # <<<<<<<<<<<<<<
 * CU_MEMHOSTREGISTER_DEVICEMAP = ccuda.CU_MEMHOSTREGISTER_DEVICEMAP
 * CU_MEMHOSTREGISTER_IOMEMORY = ccuda.CU_MEMHOSTREGISTER_IOMEMORY
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_PORTABLE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTREGISTER_PORTABLE, __pyx_t_1) < 0) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":50
 * CU_MEMHOSTALLOC_WRITECOMBINED = ccuda.CU_MEMHOSTALLOC_WRITECOMBINED
 * CU_MEMHOSTREGISTER_PORTABLE = ccuda.CU_MEMHOSTREGISTER_PORTABLE
 * CU_MEMHOSTREGISTER_DEVICEMAP = ccuda.CU_MEMHOSTREGISTER_DEVICEMAP             # <<<<<<<<<<<<<<
 * CU_MEMHOSTREGISTER_IOMEMORY = ccuda.CU_MEMHOSTREGISTER_IOMEMORY
 * CU_MEMHOSTREGISTER_READ_ONLY = ccuda.CU_MEMHOSTREGISTER_READ_ONLY
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_DEVICEMAP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTREGISTER_DEVICEMAP, __pyx_t_1) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":51
 * CU_MEMHOSTREGISTER_PORTABLE = ccuda.CU_MEMHOSTREGISTER_PORTABLE
 * CU_MEMHOSTREGISTER_DEVICEMAP = ccuda.CU_MEMHOSTREGISTER_DEVICEMAP
 * CU_MEMHOSTREGISTER_IOMEMORY = ccuda.CU_MEMHOSTREGISTER_IOMEMORY             # <<<<<<<<<<<<<<
 * CU_MEMHOSTREGISTER_READ_ONLY = ccuda.CU_MEMHOSTREGISTER_READ_ONLY
 * CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = ccuda.CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_IOMEMORY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTREGISTER_IOMEMORY, __pyx_t_1) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":52
 * CU_MEMHOSTREGISTER_DEVICEMAP = ccuda.CU_MEMHOSTREGISTER_DEVICEMAP
 * CU_MEMHOSTREGISTER_IOMEMORY = ccuda.CU_MEMHOSTREGISTER_IOMEMORY
 * CU_MEMHOSTREGISTER_READ_ONLY = ccuda.CU_MEMHOSTREGISTER_READ_ONLY             # <<<<<<<<<<<<<<
 * CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = ccuda.CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL
 * CUDA_EXTERNAL_MEMORY_DEDICATED = ccuda.CUDA_EXTERNAL_MEMORY_DEDICATED
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEMHOSTREGISTER_READ_ONLY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEMHOSTREGISTER_READ_ONLY, __pyx_t_1) < 0) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":53
 * CU_MEMHOSTREGISTER_IOMEMORY = ccuda.CU_MEMHOSTREGISTER_IOMEMORY
 * CU_MEMHOSTREGISTER_READ_ONLY = ccuda.CU_MEMHOSTREGISTER_READ_ONLY
 * CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = ccuda.CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL             # <<<<<<<<<<<<<<
 * CUDA_EXTERNAL_MEMORY_DEDICATED = ccuda.CUDA_EXTERNAL_MEMORY_DEDICATED
 * CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_ARRAY_SPARSE_PROPERTIES_SINGL, __pyx_t_1) < 0) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":54
 * CU_MEMHOSTREGISTER_READ_ONLY = ccuda.CU_MEMHOSTREGISTER_READ_ONLY
 * CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = ccuda.CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL
 * CUDA_EXTERNAL_MEMORY_DEDICATED = ccuda.CUDA_EXTERNAL_MEMORY_DEDICATED             # <<<<<<<<<<<<<<
 * CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC
 * CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_EXTERNAL_MEMORY_DEDICATED); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_EXTERNAL_MEMORY_DEDICATED, __pyx_t_1) < 0) __PYX_ERR(0, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":55
 * CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = ccuda.CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL
 * CUDA_EXTERNAL_MEMORY_DEDICATED = ccuda.CUDA_EXTERNAL_MEMORY_DEDICATED
 * CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC             # <<<<<<<<<<<<<<
 * CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC
 * CUDA_NVSCISYNC_ATTR_SIGNAL = ccuda.CUDA_NVSCISYNC_ATTR_SIGNAL
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_S, __pyx_t_1) < 0) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":56
 * CUDA_EXTERNAL_MEMORY_DEDICATED = ccuda.CUDA_EXTERNAL_MEMORY_DEDICATED
 * CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC
 * CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC             # <<<<<<<<<<<<<<
 * CUDA_NVSCISYNC_ATTR_SIGNAL = ccuda.CUDA_NVSCISYNC_ATTR_SIGNAL
 * CUDA_NVSCISYNC_ATTR_WAIT = ccuda.CUDA_NVSCISYNC_ATTR_WAIT
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_SKI, __pyx_t_1) < 0) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":57
 * CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC
 * CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC
 * CUDA_NVSCISYNC_ATTR_SIGNAL = ccuda.CUDA_NVSCISYNC_ATTR_SIGNAL             # <<<<<<<<<<<<<<
 * CUDA_NVSCISYNC_ATTR_WAIT = ccuda.CUDA_NVSCISYNC_ATTR_WAIT
 * CU_MEM_CREATE_USAGE_TILE_POOL = ccuda.CU_MEM_CREATE_USAGE_TILE_POOL
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_NVSCISYNC_ATTR_SIGNAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_NVSCISYNC_ATTR_SIGNAL, __pyx_t_1) < 0) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":58
 * CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = ccuda.CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC
 * CUDA_NVSCISYNC_ATTR_SIGNAL = ccuda.CUDA_NVSCISYNC_ATTR_SIGNAL
 * CUDA_NVSCISYNC_ATTR_WAIT = ccuda.CUDA_NVSCISYNC_ATTR_WAIT             # <<<<<<<<<<<<<<
 * CU_MEM_CREATE_USAGE_TILE_POOL = ccuda.CU_MEM_CREATE_USAGE_TILE_POOL
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_NVSCISYNC_ATTR_WAIT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_NVSCISYNC_ATTR_WAIT, __pyx_t_1) < 0) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":59
 * CUDA_NVSCISYNC_ATTR_SIGNAL = ccuda.CUDA_NVSCISYNC_ATTR_SIGNAL
 * CUDA_NVSCISYNC_ATTR_WAIT = ccuda.CUDA_NVSCISYNC_ATTR_WAIT
 * CU_MEM_CREATE_USAGE_TILE_POOL = ccuda.CU_MEM_CREATE_USAGE_TILE_POOL             # <<<<<<<<<<<<<<
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_MEM_CREATE_USAGE_TILE_POOL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_MEM_CREATE_USAGE_TILE_POOL, __pyx_t_1) < 0) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":60
 * CUDA_NVSCISYNC_ATTR_WAIT = ccuda.CUDA_NVSCISYNC_ATTR_WAIT
 * CU_MEM_CREATE_USAGE_TILE_POOL = ccuda.CU_MEM_CREATE_USAGE_TILE_POOL
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC             # <<<<<<<<<<<<<<
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC
 * CUDA_ARRAY3D_LAYERED = ccuda.CUDA_ARRAY3D_LAYERED
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_COOPERATIVE_LAUNCH_MULTI_DE, __pyx_t_1) < 0) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":61
 * CU_MEM_CREATE_USAGE_TILE_POOL = ccuda.CU_MEM_CREATE_USAGE_TILE_POOL
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_LAYERED = ccuda.CUDA_ARRAY3D_LAYERED
 * CUDA_ARRAY3D_2DARRAY = ccuda.CUDA_ARRAY3D_2DARRAY
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_COOPERATIVE_LAUNCH_MULTI_DE_2, __pyx_t_1) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":62
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC
 * CUDA_ARRAY3D_LAYERED = ccuda.CUDA_ARRAY3D_LAYERED             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_2DARRAY = ccuda.CUDA_ARRAY3D_2DARRAY
 * CUDA_ARRAY3D_SURFACE_LDST = ccuda.CUDA_ARRAY3D_SURFACE_LDST
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_LAYERED); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_LAYERED, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":63
 * CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = ccuda.CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC
 * CUDA_ARRAY3D_LAYERED = ccuda.CUDA_ARRAY3D_LAYERED
 * CUDA_ARRAY3D_2DARRAY = ccuda.CUDA_ARRAY3D_2DARRAY             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_SURFACE_LDST = ccuda.CUDA_ARRAY3D_SURFACE_LDST
 * CUDA_ARRAY3D_CUBEMAP = ccuda.CUDA_ARRAY3D_CUBEMAP
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_2DARRAY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_2DARRAY, __pyx_t_1) < 0) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":64
 * CUDA_ARRAY3D_LAYERED = ccuda.CUDA_ARRAY3D_LAYERED
 * CUDA_ARRAY3D_2DARRAY = ccuda.CUDA_ARRAY3D_2DARRAY
 * CUDA_ARRAY3D_SURFACE_LDST = ccuda.CUDA_ARRAY3D_SURFACE_LDST             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_CUBEMAP = ccuda.CUDA_ARRAY3D_CUBEMAP
 * CUDA_ARRAY3D_TEXTURE_GATHER = ccuda.CUDA_ARRAY3D_TEXTURE_GATHER
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_SURFACE_LDST); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_SURFACE_LDST, __pyx_t_1) < 0) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":65
 * CUDA_ARRAY3D_2DARRAY = ccuda.CUDA_ARRAY3D_2DARRAY
 * CUDA_ARRAY3D_SURFACE_LDST = ccuda.CUDA_ARRAY3D_SURFACE_LDST
 * CUDA_ARRAY3D_CUBEMAP = ccuda.CUDA_ARRAY3D_CUBEMAP             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_TEXTURE_GATHER = ccuda.CUDA_ARRAY3D_TEXTURE_GATHER
 * CUDA_ARRAY3D_DEPTH_TEXTURE = ccuda.CUDA_ARRAY3D_DEPTH_TEXTURE
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_CUBEMAP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_CUBEMAP, __pyx_t_1) < 0) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":66
 * CUDA_ARRAY3D_SURFACE_LDST = ccuda.CUDA_ARRAY3D_SURFACE_LDST
 * CUDA_ARRAY3D_CUBEMAP = ccuda.CUDA_ARRAY3D_CUBEMAP
 * CUDA_ARRAY3D_TEXTURE_GATHER = ccuda.CUDA_ARRAY3D_TEXTURE_GATHER             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_DEPTH_TEXTURE = ccuda.CUDA_ARRAY3D_DEPTH_TEXTURE
 * CUDA_ARRAY3D_COLOR_ATTACHMENT = ccuda.CUDA_ARRAY3D_COLOR_ATTACHMENT
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_TEXTURE_GATHER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_TEXTURE_GATHER, __pyx_t_1) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":67
 * CUDA_ARRAY3D_CUBEMAP = ccuda.CUDA_ARRAY3D_CUBEMAP
 * CUDA_ARRAY3D_TEXTURE_GATHER = ccuda.CUDA_ARRAY3D_TEXTURE_GATHER
 * CUDA_ARRAY3D_DEPTH_TEXTURE = ccuda.CUDA_ARRAY3D_DEPTH_TEXTURE             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_COLOR_ATTACHMENT = ccuda.CUDA_ARRAY3D_COLOR_ATTACHMENT
 * CUDA_ARRAY3D_SPARSE = ccuda.CUDA_ARRAY3D_SPARSE
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_DEPTH_TEXTURE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_DEPTH_TEXTURE, __pyx_t_1) < 0) __PYX_ERR(0, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":68
 * CUDA_ARRAY3D_TEXTURE_GATHER = ccuda.CUDA_ARRAY3D_TEXTURE_GATHER
 * CUDA_ARRAY3D_DEPTH_TEXTURE = ccuda.CUDA_ARRAY3D_DEPTH_TEXTURE
 * CUDA_ARRAY3D_COLOR_ATTACHMENT = ccuda.CUDA_ARRAY3D_COLOR_ATTACHMENT             # <<<<<<<<<<<<<<
 * CUDA_ARRAY3D_SPARSE = ccuda.CUDA_ARRAY3D_SPARSE
 * CU_TRSA_OVERRIDE_FORMAT = ccuda.CU_TRSA_OVERRIDE_FORMAT
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_COLOR_ATTACHMENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_COLOR_ATTACHMENT, __pyx_t_1) < 0) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":69
 * CUDA_ARRAY3D_DEPTH_TEXTURE = ccuda.CUDA_ARRAY3D_DEPTH_TEXTURE
 * CUDA_ARRAY3D_COLOR_ATTACHMENT = ccuda.CUDA_ARRAY3D_COLOR_ATTACHMENT
 * CUDA_ARRAY3D_SPARSE = ccuda.CUDA_ARRAY3D_SPARSE             # <<<<<<<<<<<<<<
 * CU_TRSA_OVERRIDE_FORMAT = ccuda.CU_TRSA_OVERRIDE_FORMAT
 * CU_TRSF_READ_AS_INTEGER = ccuda.CU_TRSF_READ_AS_INTEGER
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CUDA_ARRAY3D_SPARSE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_ARRAY3D_SPARSE, __pyx_t_1) < 0) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":70
 * CUDA_ARRAY3D_COLOR_ATTACHMENT = ccuda.CUDA_ARRAY3D_COLOR_ATTACHMENT
 * CUDA_ARRAY3D_SPARSE = ccuda.CUDA_ARRAY3D_SPARSE
 * CU_TRSA_OVERRIDE_FORMAT = ccuda.CU_TRSA_OVERRIDE_FORMAT             # <<<<<<<<<<<<<<
 * CU_TRSF_READ_AS_INTEGER = ccuda.CU_TRSF_READ_AS_INTEGER
 * CU_TRSF_NORMALIZED_COORDINATES = ccuda.CU_TRSF_NORMALIZED_COORDINATES
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_TRSA_OVERRIDE_FORMAT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_TRSA_OVERRIDE_FORMAT, __pyx_t_1) < 0) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":71
 * CUDA_ARRAY3D_SPARSE = ccuda.CUDA_ARRAY3D_SPARSE
 * CU_TRSA_OVERRIDE_FORMAT = ccuda.CU_TRSA_OVERRIDE_FORMAT
 * CU_TRSF_READ_AS_INTEGER = ccuda.CU_TRSF_READ_AS_INTEGER             # <<<<<<<<<<<<<<
 * CU_TRSF_NORMALIZED_COORDINATES = ccuda.CU_TRSF_NORMALIZED_COORDINATES
 * CU_TRSF_SRGB = ccuda.CU_TRSF_SRGB
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_TRSF_READ_AS_INTEGER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_TRSF_READ_AS_INTEGER, __pyx_t_1) < 0) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":72
 * CU_TRSA_OVERRIDE_FORMAT = ccuda.CU_TRSA_OVERRIDE_FORMAT
 * CU_TRSF_READ_AS_INTEGER = ccuda.CU_TRSF_READ_AS_INTEGER
 * CU_TRSF_NORMALIZED_COORDINATES = ccuda.CU_TRSF_NORMALIZED_COORDINATES             # <<<<<<<<<<<<<<
 * CU_TRSF_SRGB = ccuda.CU_TRSF_SRGB
 * CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = ccuda.CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_TRSF_NORMALIZED_COORDINATES); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_TRSF_NORMALIZED_COORDINATES, __pyx_t_1) < 0) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":73
 * CU_TRSF_READ_AS_INTEGER = ccuda.CU_TRSF_READ_AS_INTEGER
 * CU_TRSF_NORMALIZED_COORDINATES = ccuda.CU_TRSF_NORMALIZED_COORDINATES
 * CU_TRSF_SRGB = ccuda.CU_TRSF_SRGB             # <<<<<<<<<<<<<<
 * CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = ccuda.CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION
 * CU_LAUNCH_PARAM_END = ccuda.CU_LAUNCH_PARAM_END
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_TRSF_SRGB); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_TRSF_SRGB, __pyx_t_1) < 0) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":74
 * CU_TRSF_NORMALIZED_COORDINATES = ccuda.CU_TRSF_NORMALIZED_COORDINATES
 * CU_TRSF_SRGB = ccuda.CU_TRSF_SRGB
 * CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = ccuda.CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION             # <<<<<<<<<<<<<<
 * CU_LAUNCH_PARAM_END = ccuda.CU_LAUNCH_PARAM_END
 * CU_LAUNCH_PARAM_BUFFER_POINTER = ccuda.CU_LAUNCH_PARAM_BUFFER_POINTER
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_TRSF_DISABLE_TRILINEAR_OPTIMI, __pyx_t_1) < 0) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":75
 * CU_TRSF_SRGB = ccuda.CU_TRSF_SRGB
 * CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = ccuda.CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION
 * CU_LAUNCH_PARAM_END = ccuda.CU_LAUNCH_PARAM_END             # <<<<<<<<<<<<<<
 * CU_LAUNCH_PARAM_BUFFER_POINTER = ccuda.CU_LAUNCH_PARAM_BUFFER_POINTER
 * CU_LAUNCH_PARAM_BUFFER_SIZE = ccuda.CU_LAUNCH_PARAM_BUFFER_SIZE
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_LAUNCH_PARAM_END); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_LAUNCH_PARAM_END, __pyx_t_1) < 0) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":76
 * CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = ccuda.CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION
 * CU_LAUNCH_PARAM_END = ccuda.CU_LAUNCH_PARAM_END
 * CU_LAUNCH_PARAM_BUFFER_POINTER = ccuda.CU_LAUNCH_PARAM_BUFFER_POINTER             # <<<<<<<<<<<<<<
 * CU_LAUNCH_PARAM_BUFFER_SIZE = ccuda.CU_LAUNCH_PARAM_BUFFER_SIZE
 * CU_PARAM_TR_DEFAULT = ccuda.CU_PARAM_TR_DEFAULT
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_LAUNCH_PARAM_BUFFER_POINTER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_LAUNCH_PARAM_BUFFER_POINTER, __pyx_t_1) < 0) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":77
 * CU_LAUNCH_PARAM_END = ccuda.CU_LAUNCH_PARAM_END
 * CU_LAUNCH_PARAM_BUFFER_POINTER = ccuda.CU_LAUNCH_PARAM_BUFFER_POINTER
 * CU_LAUNCH_PARAM_BUFFER_SIZE = ccuda.CU_LAUNCH_PARAM_BUFFER_SIZE             # <<<<<<<<<<<<<<
 * CU_PARAM_TR_DEFAULT = ccuda.CU_PARAM_TR_DEFAULT
 * CU_DEVICE_CPU = ccuda.CU_DEVICE_CPU
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_LAUNCH_PARAM_BUFFER_SIZE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_LAUNCH_PARAM_BUFFER_SIZE, __pyx_t_1) < 0) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":78
 * CU_LAUNCH_PARAM_BUFFER_POINTER = ccuda.CU_LAUNCH_PARAM_BUFFER_POINTER
 * CU_LAUNCH_PARAM_BUFFER_SIZE = ccuda.CU_LAUNCH_PARAM_BUFFER_SIZE
 * CU_PARAM_TR_DEFAULT = ccuda.CU_PARAM_TR_DEFAULT             # <<<<<<<<<<<<<<
 * CU_DEVICE_CPU = ccuda.CU_DEVICE_CPU
 * CU_DEVICE_INVALID = ccuda.CU_DEVICE_INVALID
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_PARAM_TR_DEFAULT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_PARAM_TR_DEFAULT, __pyx_t_1) < 0) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":79
 * CU_LAUNCH_PARAM_BUFFER_SIZE = ccuda.CU_LAUNCH_PARAM_BUFFER_SIZE
 * CU_PARAM_TR_DEFAULT = ccuda.CU_PARAM_TR_DEFAULT
 * CU_DEVICE_CPU = ccuda.CU_DEVICE_CPU             # <<<<<<<<<<<<<<
 * CU_DEVICE_INVALID = ccuda.CU_DEVICE_INVALID
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_DEVICE_CPU); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_DEVICE_CPU, __pyx_t_1) < 0) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":80
 * CU_PARAM_TR_DEFAULT = ccuda.CU_PARAM_TR_DEFAULT
 * CU_DEVICE_CPU = ccuda.CU_DEVICE_CPU
 * CU_DEVICE_INVALID = ccuda.CU_DEVICE_INVALID             # <<<<<<<<<<<<<<
 * 
 * class CUipcMem_flags(Enum):
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_e_4cuda_5ccuda_CU_DEVICE_INVALID); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CU_DEVICE_INVALID, __pyx_t_1) < 0) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":82
 * CU_DEVICE_INVALID = ccuda.CU_DEVICE_INVALID
 * 
 * class CUipcMem_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Ipc Mem Flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUipcMem_flags, __pyx_n_s_CUipcMem_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_CUDA_Ipc_Mem_Flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":86
 *     CUDA Ipc Mem Flags
 *     """
 *     CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = ccuda.CUipcMem_flags_enum.CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS             # <<<<<<<<<<<<<<
 * 
 * class CUmemAttach_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUipcMem_flags_enum(__pyx_e_4cuda_5ccuda_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_IPC_MEM_LAZY_ENABLE_PEER_ACCE, __pyx_t_4) < 0) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":82
 * CU_DEVICE_INVALID = ccuda.CU_DEVICE_INVALID
 * 
 * class CUipcMem_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Ipc Mem Flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUipcMem_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUipcMem_flags, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":88
 *     CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = ccuda.CUipcMem_flags_enum.CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS
 * 
 * class CUmemAttach_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Mem Attach Flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUmemAttach_flags, __pyx_n_s_CUmemAttach_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_CUDA_Mem_Attach_Flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":92
 *     CUDA Mem Attach Flags
 *     """
 *     CU_MEM_ATTACH_GLOBAL = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_GLOBAL             # <<<<<<<<<<<<<<
 *     CU_MEM_ATTACH_HOST = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_HOST
 *     CU_MEM_ATTACH_SINGLE = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_SINGLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ATTACH_GLOBAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ATTACH_GLOBAL, __pyx_t_4) < 0) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":93
 *     """
 *     CU_MEM_ATTACH_GLOBAL = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_GLOBAL
 *     CU_MEM_ATTACH_HOST = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_HOST             # <<<<<<<<<<<<<<
 *     CU_MEM_ATTACH_SINGLE = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_SINGLE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ATTACH_HOST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ATTACH_HOST, __pyx_t_4) < 0) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":94
 *     CU_MEM_ATTACH_GLOBAL = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_GLOBAL
 *     CU_MEM_ATTACH_HOST = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_HOST
 *     CU_MEM_ATTACH_SINGLE = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_SINGLE             # <<<<<<<<<<<<<<
 * 
 * class CUctx_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ATTACH_SINGLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ATTACH_SINGLE, __pyx_t_4) < 0) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":88
 *     CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = ccuda.CUipcMem_flags_enum.CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS
 * 
 * class CUmemAttach_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA Mem Attach Flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUmemAttach_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemAttach_flags, __pyx_t_4) < 0) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":96
 *     CU_MEM_ATTACH_SINGLE = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_SINGLE
 * 
 * class CUctx_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Context creation flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUctx_flags, __pyx_n_s_CUctx_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Context_creation_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":100
 *     Context creation flags
 *     """
 *     CU_CTX_SCHED_AUTO = ccuda.CUctx_flags_enum.CU_CTX_SCHED_AUTO             # <<<<<<<<<<<<<<
 *     CU_CTX_SCHED_SPIN = ccuda.CUctx_flags_enum.CU_CTX_SCHED_SPIN
 *     CU_CTX_SCHED_YIELD = ccuda.CUctx_flags_enum.CU_CTX_SCHED_YIELD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_SCHED_AUTO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_SCHED_AUTO, __pyx_t_4) < 0) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":101
 *     """
 *     CU_CTX_SCHED_AUTO = ccuda.CUctx_flags_enum.CU_CTX_SCHED_AUTO
 *     CU_CTX_SCHED_SPIN = ccuda.CUctx_flags_enum.CU_CTX_SCHED_SPIN             # <<<<<<<<<<<<<<
 *     CU_CTX_SCHED_YIELD = ccuda.CUctx_flags_enum.CU_CTX_SCHED_YIELD
 *     CU_CTX_SCHED_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_SCHED_BLOCKING_SYNC
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_SCHED_SPIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_SCHED_SPIN, __pyx_t_4) < 0) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":102
 *     CU_CTX_SCHED_AUTO = ccuda.CUctx_flags_enum.CU_CTX_SCHED_AUTO
 *     CU_CTX_SCHED_SPIN = ccuda.CUctx_flags_enum.CU_CTX_SCHED_SPIN
 *     CU_CTX_SCHED_YIELD = ccuda.CUctx_flags_enum.CU_CTX_SCHED_YIELD             # <<<<<<<<<<<<<<
 *     CU_CTX_SCHED_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_SCHED_BLOCKING_SYNC
 *     CU_CTX_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_BLOCKING_SYNC
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_SCHED_YIELD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_SCHED_YIELD, __pyx_t_4) < 0) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":103
 *     CU_CTX_SCHED_SPIN = ccuda.CUctx_flags_enum.CU_CTX_SCHED_SPIN
 *     CU_CTX_SCHED_YIELD = ccuda.CUctx_flags_enum.CU_CTX_SCHED_YIELD
 *     CU_CTX_SCHED_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_SCHED_BLOCKING_SYNC             # <<<<<<<<<<<<<<
 *     CU_CTX_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_BLOCKING_SYNC
 *     CU_CTX_SCHED_MASK = ccuda.CUctx_flags_enum.CU_CTX_SCHED_MASK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_SCHED_BLOCKING_SYNC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_SCHED_BLOCKING_SYNC, __pyx_t_4) < 0) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":104
 *     CU_CTX_SCHED_YIELD = ccuda.CUctx_flags_enum.CU_CTX_SCHED_YIELD
 *     CU_CTX_SCHED_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_SCHED_BLOCKING_SYNC
 *     CU_CTX_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_BLOCKING_SYNC             # <<<<<<<<<<<<<<
 *     CU_CTX_SCHED_MASK = ccuda.CUctx_flags_enum.CU_CTX_SCHED_MASK
 *     CU_CTX_MAP_HOST = ccuda.CUctx_flags_enum.CU_CTX_MAP_HOST
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_BLOCKING_SYNC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_BLOCKING_SYNC, __pyx_t_4) < 0) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":105
 *     CU_CTX_SCHED_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_SCHED_BLOCKING_SYNC
 *     CU_CTX_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_BLOCKING_SYNC
 *     CU_CTX_SCHED_MASK = ccuda.CUctx_flags_enum.CU_CTX_SCHED_MASK             # <<<<<<<<<<<<<<
 *     CU_CTX_MAP_HOST = ccuda.CUctx_flags_enum.CU_CTX_MAP_HOST
 *     CU_CTX_LMEM_RESIZE_TO_MAX = ccuda.CUctx_flags_enum.CU_CTX_LMEM_RESIZE_TO_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_SCHED_MASK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_SCHED_MASK, __pyx_t_4) < 0) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":106
 *     CU_CTX_BLOCKING_SYNC = ccuda.CUctx_flags_enum.CU_CTX_BLOCKING_SYNC
 *     CU_CTX_SCHED_MASK = ccuda.CUctx_flags_enum.CU_CTX_SCHED_MASK
 *     CU_CTX_MAP_HOST = ccuda.CUctx_flags_enum.CU_CTX_MAP_HOST             # <<<<<<<<<<<<<<
 *     CU_CTX_LMEM_RESIZE_TO_MAX = ccuda.CUctx_flags_enum.CU_CTX_LMEM_RESIZE_TO_MAX
 *     CU_CTX_FLAGS_MASK = ccuda.CUctx_flags_enum.CU_CTX_FLAGS_MASK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_MAP_HOST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_MAP_HOST, __pyx_t_4) < 0) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":107
 *     CU_CTX_SCHED_MASK = ccuda.CUctx_flags_enum.CU_CTX_SCHED_MASK
 *     CU_CTX_MAP_HOST = ccuda.CUctx_flags_enum.CU_CTX_MAP_HOST
 *     CU_CTX_LMEM_RESIZE_TO_MAX = ccuda.CUctx_flags_enum.CU_CTX_LMEM_RESIZE_TO_MAX             # <<<<<<<<<<<<<<
 *     CU_CTX_FLAGS_MASK = ccuda.CUctx_flags_enum.CU_CTX_FLAGS_MASK
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_LMEM_RESIZE_TO_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_LMEM_RESIZE_TO_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":108
 *     CU_CTX_MAP_HOST = ccuda.CUctx_flags_enum.CU_CTX_MAP_HOST
 *     CU_CTX_LMEM_RESIZE_TO_MAX = ccuda.CUctx_flags_enum.CU_CTX_LMEM_RESIZE_TO_MAX
 *     CU_CTX_FLAGS_MASK = ccuda.CUctx_flags_enum.CU_CTX_FLAGS_MASK             # <<<<<<<<<<<<<<
 * 
 * class CUstream_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(__pyx_e_4cuda_5ccuda_CU_CTX_FLAGS_MASK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CTX_FLAGS_MASK, __pyx_t_4) < 0) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":96
 *     CU_MEM_ATTACH_SINGLE = ccuda.CUmemAttach_flags_enum.CU_MEM_ATTACH_SINGLE
 * 
 * class CUctx_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Context creation flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUctx_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUctx_flags, __pyx_t_4) < 0) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":110
 *     CU_CTX_FLAGS_MASK = ccuda.CUctx_flags_enum.CU_CTX_FLAGS_MASK
 * 
 * class CUstream_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Stream creation flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUstream_flags, __pyx_n_s_CUstream_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Stream_creation_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":114
 *     Stream creation flags
 *     """
 *     CU_STREAM_DEFAULT = ccuda.CUstream_flags_enum.CU_STREAM_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_STREAM_NON_BLOCKING = ccuda.CUstream_flags_enum.CU_STREAM_NON_BLOCKING
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstream_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":115
 *     """
 *     CU_STREAM_DEFAULT = ccuda.CUstream_flags_enum.CU_STREAM_DEFAULT
 *     CU_STREAM_NON_BLOCKING = ccuda.CUstream_flags_enum.CU_STREAM_NON_BLOCKING             # <<<<<<<<<<<<<<
 * 
 * class CUevent_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstream_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_NON_BLOCKING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_NON_BLOCKING, __pyx_t_4) < 0) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":110
 *     CU_CTX_FLAGS_MASK = ccuda.CUctx_flags_enum.CU_CTX_FLAGS_MASK
 * 
 * class CUstream_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Stream creation flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUstream_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstream_flags, __pyx_t_4) < 0) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":117
 *     CU_STREAM_NON_BLOCKING = ccuda.CUstream_flags_enum.CU_STREAM_NON_BLOCKING
 * 
 * class CUevent_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Event creation flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUevent_flags, __pyx_n_s_CUevent_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Event_creation_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":121
 *     Event creation flags
 *     """
 *     CU_EVENT_DEFAULT = ccuda.CUevent_flags_enum.CU_EVENT_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_EVENT_BLOCKING_SYNC = ccuda.CUevent_flags_enum.CU_EVENT_BLOCKING_SYNC
 *     CU_EVENT_DISABLE_TIMING = ccuda.CUevent_flags_enum.CU_EVENT_DISABLE_TIMING
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":122
 *     """
 *     CU_EVENT_DEFAULT = ccuda.CUevent_flags_enum.CU_EVENT_DEFAULT
 *     CU_EVENT_BLOCKING_SYNC = ccuda.CUevent_flags_enum.CU_EVENT_BLOCKING_SYNC             # <<<<<<<<<<<<<<
 *     CU_EVENT_DISABLE_TIMING = ccuda.CUevent_flags_enum.CU_EVENT_DISABLE_TIMING
 *     CU_EVENT_INTERPROCESS = ccuda.CUevent_flags_enum.CU_EVENT_INTERPROCESS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_BLOCKING_SYNC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_BLOCKING_SYNC, __pyx_t_4) < 0) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":123
 *     CU_EVENT_DEFAULT = ccuda.CUevent_flags_enum.CU_EVENT_DEFAULT
 *     CU_EVENT_BLOCKING_SYNC = ccuda.CUevent_flags_enum.CU_EVENT_BLOCKING_SYNC
 *     CU_EVENT_DISABLE_TIMING = ccuda.CUevent_flags_enum.CU_EVENT_DISABLE_TIMING             # <<<<<<<<<<<<<<
 *     CU_EVENT_INTERPROCESS = ccuda.CUevent_flags_enum.CU_EVENT_INTERPROCESS
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_DISABLE_TIMING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_DISABLE_TIMING, __pyx_t_4) < 0) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":124
 *     CU_EVENT_BLOCKING_SYNC = ccuda.CUevent_flags_enum.CU_EVENT_BLOCKING_SYNC
 *     CU_EVENT_DISABLE_TIMING = ccuda.CUevent_flags_enum.CU_EVENT_DISABLE_TIMING
 *     CU_EVENT_INTERPROCESS = ccuda.CUevent_flags_enum.CU_EVENT_INTERPROCESS             # <<<<<<<<<<<<<<
 * 
 * class CUevent_record_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_INTERPROCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_INTERPROCESS, __pyx_t_4) < 0) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":117
 *     CU_STREAM_NON_BLOCKING = ccuda.CUstream_flags_enum.CU_STREAM_NON_BLOCKING
 * 
 * class CUevent_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Event creation flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUevent_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUevent_flags, __pyx_t_4) < 0) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":126
 *     CU_EVENT_INTERPROCESS = ccuda.CUevent_flags_enum.CU_EVENT_INTERPROCESS
 * 
 * class CUevent_record_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Event record flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUevent_record_flags, __pyx_n_s_CUevent_record_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Event_record_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":130
 *     Event record flags
 *     """
 *     CU_EVENT_RECORD_DEFAULT = ccuda.CUevent_record_flags_enum.CU_EVENT_RECORD_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_EVENT_RECORD_EXTERNAL = ccuda.CUevent_record_flags_enum.CU_EVENT_RECORD_EXTERNAL
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_record_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_RECORD_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_RECORD_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":131
 *     """
 *     CU_EVENT_RECORD_DEFAULT = ccuda.CUevent_record_flags_enum.CU_EVENT_RECORD_DEFAULT
 *     CU_EVENT_RECORD_EXTERNAL = ccuda.CUevent_record_flags_enum.CU_EVENT_RECORD_EXTERNAL             # <<<<<<<<<<<<<<
 * 
 * class CUevent_wait_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_record_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_RECORD_EXTERNAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_RECORD_EXTERNAL, __pyx_t_4) < 0) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":126
 *     CU_EVENT_INTERPROCESS = ccuda.CUevent_flags_enum.CU_EVENT_INTERPROCESS
 * 
 * class CUevent_record_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Event record flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUevent_record_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUevent_record_flags, __pyx_t_4) < 0) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":133
 *     CU_EVENT_RECORD_EXTERNAL = ccuda.CUevent_record_flags_enum.CU_EVENT_RECORD_EXTERNAL
 * 
 * class CUevent_wait_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Event wait flags
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUevent_wait_flags, __pyx_n_s_CUevent_wait_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Event_wait_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":137
 *     Event wait flags
 *     """
 *     CU_EVENT_WAIT_DEFAULT = ccuda.CUevent_wait_flags_enum.CU_EVENT_WAIT_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_EVENT_WAIT_EXTERNAL = ccuda.CUevent_wait_flags_enum.CU_EVENT_WAIT_EXTERNAL
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_WAIT_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_WAIT_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":138
 *     """
 *     CU_EVENT_WAIT_DEFAULT = ccuda.CUevent_wait_flags_enum.CU_EVENT_WAIT_DEFAULT
 *     CU_EVENT_WAIT_EXTERNAL = ccuda.CUevent_wait_flags_enum.CU_EVENT_WAIT_EXTERNAL             # <<<<<<<<<<<<<<
 * 
 * class CUstreamWaitValue_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum(__pyx_e_4cuda_5ccuda_CU_EVENT_WAIT_EXTERNAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EVENT_WAIT_EXTERNAL, __pyx_t_4) < 0) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":133
 *     CU_EVENT_RECORD_EXTERNAL = ccuda.CUevent_record_flags_enum.CU_EVENT_RECORD_EXTERNAL
 * 
 * class CUevent_wait_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Event wait flags
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUevent_wait_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUevent_wait_flags, __pyx_t_4) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":140
 *     CU_EVENT_WAIT_EXTERNAL = ccuda.CUevent_wait_flags_enum.CU_EVENT_WAIT_EXTERNAL
 * 
 * class CUstreamWaitValue_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for cuStreamWaitValue32 and cuStreamWaitValue64
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUstreamWaitValue_flags, __pyx_n_s_CUstreamWaitValue_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_cuStreamWaitValue32_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":144
 *     Flags for cuStreamWaitValue32 and cuStreamWaitValue64
 *     """
 *     CU_STREAM_WAIT_VALUE_GEQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_GEQ             # <<<<<<<<<<<<<<
 *     CU_STREAM_WAIT_VALUE_EQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_EQ
 *     CU_STREAM_WAIT_VALUE_AND = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_AND
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_GEQ); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WAIT_VALUE_GEQ, __pyx_t_4) < 0) __PYX_ERR(0, 144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":145
 *     """
 *     CU_STREAM_WAIT_VALUE_GEQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_GEQ
 *     CU_STREAM_WAIT_VALUE_EQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_EQ             # <<<<<<<<<<<<<<
 *     CU_STREAM_WAIT_VALUE_AND = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_AND
 *     CU_STREAM_WAIT_VALUE_NOR = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_NOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_EQ); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WAIT_VALUE_EQ, __pyx_t_4) < 0) __PYX_ERR(0, 145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":146
 *     CU_STREAM_WAIT_VALUE_GEQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_GEQ
 *     CU_STREAM_WAIT_VALUE_EQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_EQ
 *     CU_STREAM_WAIT_VALUE_AND = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_AND             # <<<<<<<<<<<<<<
 *     CU_STREAM_WAIT_VALUE_NOR = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_NOR
 *     CU_STREAM_WAIT_VALUE_FLUSH = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_FLUSH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_AND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WAIT_VALUE_AND, __pyx_t_4) < 0) __PYX_ERR(0, 146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":147
 *     CU_STREAM_WAIT_VALUE_EQ = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_EQ
 *     CU_STREAM_WAIT_VALUE_AND = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_AND
 *     CU_STREAM_WAIT_VALUE_NOR = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_NOR             # <<<<<<<<<<<<<<
 *     CU_STREAM_WAIT_VALUE_FLUSH = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_FLUSH
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_NOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WAIT_VALUE_NOR, __pyx_t_4) < 0) __PYX_ERR(0, 147, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":148
 *     CU_STREAM_WAIT_VALUE_AND = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_AND
 *     CU_STREAM_WAIT_VALUE_NOR = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_NOR
 *     CU_STREAM_WAIT_VALUE_FLUSH = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_FLUSH             # <<<<<<<<<<<<<<
 * 
 * class CUstreamWriteValue_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WAIT_VALUE_FLUSH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WAIT_VALUE_FLUSH, __pyx_t_4) < 0) __PYX_ERR(0, 148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":140
 *     CU_EVENT_WAIT_EXTERNAL = ccuda.CUevent_wait_flags_enum.CU_EVENT_WAIT_EXTERNAL
 * 
 * class CUstreamWaitValue_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for cuStreamWaitValue32 and cuStreamWaitValue64
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUstreamWaitValue_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamWaitValue_flags, __pyx_t_4) < 0) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":150
 *     CU_STREAM_WAIT_VALUE_FLUSH = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_FLUSH
 * 
 * class CUstreamWriteValue_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for cuStreamWriteValue32
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUstreamWriteValue_flags, __pyx_n_s_CUstreamWriteValue_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_cuStreamWriteValue32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":154
 *     Flags for cuStreamWriteValue32
 *     """
 *     CU_STREAM_WRITE_VALUE_DEFAULT = ccuda.CUstreamWriteValue_flags_enum.CU_STREAM_WRITE_VALUE_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = ccuda.CUstreamWriteValue_flags_enum.CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WRITE_VALUE_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WRITE_VALUE_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":155
 *     """
 *     CU_STREAM_WRITE_VALUE_DEFAULT = ccuda.CUstreamWriteValue_flags_enum.CU_STREAM_WRITE_VALUE_DEFAULT
 *     CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = ccuda.CUstreamWriteValue_flags_enum.CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER             # <<<<<<<<<<<<<<
 * 
 * class CUstreamBatchMemOpType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_WRITE_VALUE_NO_MEMORY, __pyx_t_4) < 0) __PYX_ERR(0, 155, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":150
 *     CU_STREAM_WAIT_VALUE_FLUSH = ccuda.CUstreamWaitValue_flags_enum.CU_STREAM_WAIT_VALUE_FLUSH
 * 
 * class CUstreamWriteValue_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for cuStreamWriteValue32
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUstreamWriteValue_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamWriteValue_flags, __pyx_t_4) < 0) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":157
 *     CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = ccuda.CUstreamWriteValue_flags_enum.CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER
 * 
 * class CUstreamBatchMemOpType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Operations for cuStreamBatchMemOp
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUstreamBatchMemOpType, __pyx_n_s_CUstreamBatchMemOpType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Operations_for_cuStreamBatchMem); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":161
 *     Operations for cuStreamBatchMemOp
 *     """
 *     CU_STREAM_MEM_OP_WAIT_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_32             # <<<<<<<<<<<<<<
 *     CU_STREAM_MEM_OP_WRITE_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_32
 *     CU_STREAM_MEM_OP_WAIT_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_64
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WAIT_VALUE_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_MEM_OP_WAIT_VALUE_32, __pyx_t_4) < 0) __PYX_ERR(0, 161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":162
 *     """
 *     CU_STREAM_MEM_OP_WAIT_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_32
 *     CU_STREAM_MEM_OP_WRITE_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_32             # <<<<<<<<<<<<<<
 *     CU_STREAM_MEM_OP_WAIT_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_64
 *     CU_STREAM_MEM_OP_WRITE_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_64
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WRITE_VALUE_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_MEM_OP_WRITE_VALUE_32, __pyx_t_4) < 0) __PYX_ERR(0, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":163
 *     CU_STREAM_MEM_OP_WAIT_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_32
 *     CU_STREAM_MEM_OP_WRITE_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_32
 *     CU_STREAM_MEM_OP_WAIT_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_64             # <<<<<<<<<<<<<<
 *     CU_STREAM_MEM_OP_WRITE_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_64
 *     CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WAIT_VALUE_64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_MEM_OP_WAIT_VALUE_64, __pyx_t_4) < 0) __PYX_ERR(0, 163, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":164
 *     CU_STREAM_MEM_OP_WRITE_VALUE_32 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_32
 *     CU_STREAM_MEM_OP_WAIT_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_64
 *     CU_STREAM_MEM_OP_WRITE_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_64             # <<<<<<<<<<<<<<
 *     CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_WRITE_VALUE_64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_MEM_OP_WRITE_VALUE_64, __pyx_t_4) < 0) __PYX_ERR(0, 164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":165
 *     CU_STREAM_MEM_OP_WAIT_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WAIT_VALUE_64
 *     CU_STREAM_MEM_OP_WRITE_VALUE_64 = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_WRITE_VALUE_64
 *     CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES             # <<<<<<<<<<<<<<
 * 
 * class CUoccupancy_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_MEM_OP_FLUSH_REMOTE_WR, __pyx_t_4) < 0) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":157
 *     CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = ccuda.CUstreamWriteValue_flags_enum.CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER
 * 
 * class CUstreamBatchMemOpType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Operations for cuStreamBatchMemOp
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUstreamBatchMemOpType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamBatchMemOpType, __pyx_t_4) < 0) __PYX_ERR(0, 157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":167
 *     CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES
 * 
 * class CUoccupancy_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Occupancy calculator flag
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUoccupancy_flags, __pyx_n_s_CUoccupancy_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Occupancy_calculator_flag); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":171
 *     Occupancy calculator flag
 *     """
 *     CU_OCCUPANCY_DEFAULT = ccuda.CUoccupancy_flags_enum.CU_OCCUPANCY_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = ccuda.CUoccupancy_flags_enum.CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum(__pyx_e_4cuda_5ccuda_CU_OCCUPANCY_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_OCCUPANCY_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":172
 *     """
 *     CU_OCCUPANCY_DEFAULT = ccuda.CUoccupancy_flags_enum.CU_OCCUPANCY_DEFAULT
 *     CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = ccuda.CUoccupancy_flags_enum.CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE             # <<<<<<<<<<<<<<
 * 
 * class CUstreamUpdateCaptureDependencies_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum(__pyx_e_4cuda_5ccuda_CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_OCCUPANCY_DISABLE_CACHING_OVE, __pyx_t_4) < 0) __PYX_ERR(0, 172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":167
 *     CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = ccuda.CUstreamBatchMemOpType_enum.CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES
 * 
 * class CUoccupancy_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Occupancy calculator flag
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUoccupancy_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUoccupancy_flags, __pyx_t_4) < 0) __PYX_ERR(0, 167, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":174
 *     CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = ccuda.CUoccupancy_flags_enum.CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE
 * 
 * class CUstreamUpdateCaptureDependencies_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for cuStreamUpdateCaptureDependencies
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUstreamUpdateCaptureDependencie, __pyx_n_s_CUstreamUpdateCaptureDependencie, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_cuStreamUpdateCapture); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":178
 *     Flags for cuStreamUpdateCaptureDependencies
 *     """
 *     CU_STREAM_ADD_CAPTURE_DEPENDENCIES = ccuda.CUstreamUpdateCaptureDependencies_flags_enum.CU_STREAM_ADD_CAPTURE_DEPENDENCIES             # <<<<<<<<<<<<<<
 *     CU_STREAM_SET_CAPTURE_DEPENDENCIES = ccuda.CUstreamUpdateCaptureDependencies_flags_enum.CU_STREAM_SET_CAPTURE_DEPENDENCIES
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_ADD_CAPTURE_DEPENDENCIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_ADD_CAPTURE_DEPENDENCI, __pyx_t_4) < 0) __PYX_ERR(0, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":179
 *     """
 *     CU_STREAM_ADD_CAPTURE_DEPENDENCIES = ccuda.CUstreamUpdateCaptureDependencies_flags_enum.CU_STREAM_ADD_CAPTURE_DEPENDENCIES
 *     CU_STREAM_SET_CAPTURE_DEPENDENCIES = ccuda.CUstreamUpdateCaptureDependencies_flags_enum.CU_STREAM_SET_CAPTURE_DEPENDENCIES             # <<<<<<<<<<<<<<
 * 
 * class CUarray_format(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_SET_CAPTURE_DEPENDENCIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_SET_CAPTURE_DEPENDENCI, __pyx_t_4) < 0) __PYX_ERR(0, 179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":174
 *     CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = ccuda.CUoccupancy_flags_enum.CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE
 * 
 * class CUstreamUpdateCaptureDependencies_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for cuStreamUpdateCaptureDependencies
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUstreamUpdateCaptureDependencie, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamUpdateCaptureDependencie, __pyx_t_4) < 0) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":181
 *     CU_STREAM_SET_CAPTURE_DEPENDENCIES = ccuda.CUstreamUpdateCaptureDependencies_flags_enum.CU_STREAM_SET_CAPTURE_DEPENDENCIES
 * 
 * class CUarray_format(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Array formats
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUarray_format, __pyx_n_s_CUarray_format, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Array_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":185
 *     Array formats
 *     """
 *     CU_AD_FORMAT_UNSIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT8             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNSIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT16
 *     CU_AD_FORMAT_UNSIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNSIGNED_INT8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT8, __pyx_t_4) < 0) __PYX_ERR(0, 185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":186
 *     """
 *     CU_AD_FORMAT_UNSIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT8
 *     CU_AD_FORMAT_UNSIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT16             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNSIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT32
 *     CU_AD_FORMAT_SIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT8
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNSIGNED_INT16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT16, __pyx_t_4) < 0) __PYX_ERR(0, 186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":187
 *     CU_AD_FORMAT_UNSIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT8
 *     CU_AD_FORMAT_UNSIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT16
 *     CU_AD_FORMAT_UNSIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT32             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT8
 *     CU_AD_FORMAT_SIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNSIGNED_INT32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNSIGNED_INT32, __pyx_t_4) < 0) __PYX_ERR(0, 187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":188
 *     CU_AD_FORMAT_UNSIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT16
 *     CU_AD_FORMAT_UNSIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT32
 *     CU_AD_FORMAT_SIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT8             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT16
 *     CU_AD_FORMAT_SIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SIGNED_INT8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SIGNED_INT8, __pyx_t_4) < 0) __PYX_ERR(0, 188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":189
 *     CU_AD_FORMAT_UNSIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNSIGNED_INT32
 *     CU_AD_FORMAT_SIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT8
 *     CU_AD_FORMAT_SIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT16             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT32
 *     CU_AD_FORMAT_HALF = ccuda.CUarray_format_enum.CU_AD_FORMAT_HALF
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SIGNED_INT16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SIGNED_INT16, __pyx_t_4) < 0) __PYX_ERR(0, 189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":190
 *     CU_AD_FORMAT_SIGNED_INT8 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT8
 *     CU_AD_FORMAT_SIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT16
 *     CU_AD_FORMAT_SIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT32             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_HALF = ccuda.CUarray_format_enum.CU_AD_FORMAT_HALF
 *     CU_AD_FORMAT_FLOAT = ccuda.CUarray_format_enum.CU_AD_FORMAT_FLOAT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SIGNED_INT32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SIGNED_INT32, __pyx_t_4) < 0) __PYX_ERR(0, 190, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":191
 *     CU_AD_FORMAT_SIGNED_INT16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT16
 *     CU_AD_FORMAT_SIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT32
 *     CU_AD_FORMAT_HALF = ccuda.CUarray_format_enum.CU_AD_FORMAT_HALF             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_FLOAT = ccuda.CUarray_format_enum.CU_AD_FORMAT_FLOAT
 *     CU_AD_FORMAT_NV12 = ccuda.CUarray_format_enum.CU_AD_FORMAT_NV12
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_HALF); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_HALF, __pyx_t_4) < 0) __PYX_ERR(0, 191, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":192
 *     CU_AD_FORMAT_SIGNED_INT32 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SIGNED_INT32
 *     CU_AD_FORMAT_HALF = ccuda.CUarray_format_enum.CU_AD_FORMAT_HALF
 *     CU_AD_FORMAT_FLOAT = ccuda.CUarray_format_enum.CU_AD_FORMAT_FLOAT             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_NV12 = ccuda.CUarray_format_enum.CU_AD_FORMAT_NV12
 *     CU_AD_FORMAT_UNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_FLOAT, __pyx_t_4) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":193
 *     CU_AD_FORMAT_HALF = ccuda.CUarray_format_enum.CU_AD_FORMAT_HALF
 *     CU_AD_FORMAT_FLOAT = ccuda.CUarray_format_enum.CU_AD_FORMAT_FLOAT
 *     CU_AD_FORMAT_NV12 = ccuda.CUarray_format_enum.CU_AD_FORMAT_NV12             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X1
 *     CU_AD_FORMAT_UNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X2
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_NV12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_NV12, __pyx_t_4) < 0) __PYX_ERR(0, 193, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":194
 *     CU_AD_FORMAT_FLOAT = ccuda.CUarray_format_enum.CU_AD_FORMAT_FLOAT
 *     CU_AD_FORMAT_NV12 = ccuda.CUarray_format_enum.CU_AD_FORMAT_NV12
 *     CU_AD_FORMAT_UNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X1             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X2
 *     CU_AD_FORMAT_UNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X4
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT8X1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNORM_INT8X1, __pyx_t_4) < 0) __PYX_ERR(0, 194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":195
 *     CU_AD_FORMAT_NV12 = ccuda.CUarray_format_enum.CU_AD_FORMAT_NV12
 *     CU_AD_FORMAT_UNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X1
 *     CU_AD_FORMAT_UNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X2             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X4
 *     CU_AD_FORMAT_UNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT8X2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNORM_INT8X2, __pyx_t_4) < 0) __PYX_ERR(0, 195, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":196
 *     CU_AD_FORMAT_UNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X1
 *     CU_AD_FORMAT_UNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X2
 *     CU_AD_FORMAT_UNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X4             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X1
 *     CU_AD_FORMAT_UNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X2
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT8X4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNORM_INT8X4, __pyx_t_4) < 0) __PYX_ERR(0, 196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":197
 *     CU_AD_FORMAT_UNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X2
 *     CU_AD_FORMAT_UNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X4
 *     CU_AD_FORMAT_UNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X1             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X2
 *     CU_AD_FORMAT_UNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X4
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT16X1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNORM_INT16X1, __pyx_t_4) < 0) __PYX_ERR(0, 197, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":198
 *     CU_AD_FORMAT_UNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT8X4
 *     CU_AD_FORMAT_UNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X1
 *     CU_AD_FORMAT_UNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X2             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_UNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X4
 *     CU_AD_FORMAT_SNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT16X2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNORM_INT16X2, __pyx_t_4) < 0) __PYX_ERR(0, 198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":199
 *     CU_AD_FORMAT_UNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X1
 *     CU_AD_FORMAT_UNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X2
 *     CU_AD_FORMAT_UNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X4             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X1
 *     CU_AD_FORMAT_SNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X2
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_UNORM_INT16X4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_UNORM_INT16X4, __pyx_t_4) < 0) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":200
 *     CU_AD_FORMAT_UNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X2
 *     CU_AD_FORMAT_UNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X4
 *     CU_AD_FORMAT_SNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X1             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X2
 *     CU_AD_FORMAT_SNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X4
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT8X1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SNORM_INT8X1, __pyx_t_4) < 0) __PYX_ERR(0, 200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":201
 *     CU_AD_FORMAT_UNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_UNORM_INT16X4
 *     CU_AD_FORMAT_SNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X1
 *     CU_AD_FORMAT_SNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X2             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X4
 *     CU_AD_FORMAT_SNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT8X2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SNORM_INT8X2, __pyx_t_4) < 0) __PYX_ERR(0, 201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":202
 *     CU_AD_FORMAT_SNORM_INT8X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X1
 *     CU_AD_FORMAT_SNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X2
 *     CU_AD_FORMAT_SNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X4             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X1
 *     CU_AD_FORMAT_SNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X2
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT8X4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SNORM_INT8X4, __pyx_t_4) < 0) __PYX_ERR(0, 202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":203
 *     CU_AD_FORMAT_SNORM_INT8X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X2
 *     CU_AD_FORMAT_SNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X4
 *     CU_AD_FORMAT_SNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X1             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X2
 *     CU_AD_FORMAT_SNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X4
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT16X1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SNORM_INT16X1, __pyx_t_4) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":204
 *     CU_AD_FORMAT_SNORM_INT8X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT8X4
 *     CU_AD_FORMAT_SNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X1
 *     CU_AD_FORMAT_SNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X2             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_SNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X4
 *     CU_AD_FORMAT_BC1_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT16X2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SNORM_INT16X2, __pyx_t_4) < 0) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":205
 *     CU_AD_FORMAT_SNORM_INT16X1 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X1
 *     CU_AD_FORMAT_SNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X2
 *     CU_AD_FORMAT_SNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X4             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC1_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM
 *     CU_AD_FORMAT_BC1_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM_SRGB
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_SNORM_INT16X4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_SNORM_INT16X4, __pyx_t_4) < 0) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":206
 *     CU_AD_FORMAT_SNORM_INT16X2 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X2
 *     CU_AD_FORMAT_SNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X4
 *     CU_AD_FORMAT_BC1_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC1_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM_SRGB
 *     CU_AD_FORMAT_BC2_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC1_UNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC1_UNORM, __pyx_t_4) < 0) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":207
 *     CU_AD_FORMAT_SNORM_INT16X4 = ccuda.CUarray_format_enum.CU_AD_FORMAT_SNORM_INT16X4
 *     CU_AD_FORMAT_BC1_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM
 *     CU_AD_FORMAT_BC1_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM_SRGB             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC2_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM
 *     CU_AD_FORMAT_BC2_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM_SRGB
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC1_UNORM_SRGB); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC1_UNORM_SRGB, __pyx_t_4) < 0) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":208
 *     CU_AD_FORMAT_BC1_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM
 *     CU_AD_FORMAT_BC1_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM_SRGB
 *     CU_AD_FORMAT_BC2_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC2_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM_SRGB
 *     CU_AD_FORMAT_BC3_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC2_UNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC2_UNORM, __pyx_t_4) < 0) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":209
 *     CU_AD_FORMAT_BC1_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC1_UNORM_SRGB
 *     CU_AD_FORMAT_BC2_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM
 *     CU_AD_FORMAT_BC2_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM_SRGB             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC3_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM
 *     CU_AD_FORMAT_BC3_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM_SRGB
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC2_UNORM_SRGB); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC2_UNORM_SRGB, __pyx_t_4) < 0) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":210
 *     CU_AD_FORMAT_BC2_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM
 *     CU_AD_FORMAT_BC2_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM_SRGB
 *     CU_AD_FORMAT_BC3_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC3_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM_SRGB
 *     CU_AD_FORMAT_BC4_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_UNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC3_UNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC3_UNORM, __pyx_t_4) < 0) __PYX_ERR(0, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":211
 *     CU_AD_FORMAT_BC2_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC2_UNORM_SRGB
 *     CU_AD_FORMAT_BC3_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM
 *     CU_AD_FORMAT_BC3_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM_SRGB             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC4_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_UNORM
 *     CU_AD_FORMAT_BC4_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_SNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC3_UNORM_SRGB); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC3_UNORM_SRGB, __pyx_t_4) < 0) __PYX_ERR(0, 211, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":212
 *     CU_AD_FORMAT_BC3_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM
 *     CU_AD_FORMAT_BC3_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM_SRGB
 *     CU_AD_FORMAT_BC4_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_UNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC4_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_SNORM
 *     CU_AD_FORMAT_BC5_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_UNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC4_UNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC4_UNORM, __pyx_t_4) < 0) __PYX_ERR(0, 212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":213
 *     CU_AD_FORMAT_BC3_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC3_UNORM_SRGB
 *     CU_AD_FORMAT_BC4_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_UNORM
 *     CU_AD_FORMAT_BC4_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_SNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC5_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_UNORM
 *     CU_AD_FORMAT_BC5_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_SNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC4_SNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC4_SNORM, __pyx_t_4) < 0) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":214
 *     CU_AD_FORMAT_BC4_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_UNORM
 *     CU_AD_FORMAT_BC4_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_SNORM
 *     CU_AD_FORMAT_BC5_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_UNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC5_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_SNORM
 *     CU_AD_FORMAT_BC6H_UF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_UF16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC5_UNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC5_UNORM, __pyx_t_4) < 0) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":215
 *     CU_AD_FORMAT_BC4_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC4_SNORM
 *     CU_AD_FORMAT_BC5_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_UNORM
 *     CU_AD_FORMAT_BC5_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_SNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC6H_UF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_UF16
 *     CU_AD_FORMAT_BC6H_SF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_SF16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC5_SNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC5_SNORM, __pyx_t_4) < 0) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":216
 *     CU_AD_FORMAT_BC5_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_UNORM
 *     CU_AD_FORMAT_BC5_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_SNORM
 *     CU_AD_FORMAT_BC6H_UF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_UF16             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC6H_SF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_SF16
 *     CU_AD_FORMAT_BC7_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC6H_UF16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC6H_UF16, __pyx_t_4) < 0) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":217
 *     CU_AD_FORMAT_BC5_SNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC5_SNORM
 *     CU_AD_FORMAT_BC6H_UF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_UF16
 *     CU_AD_FORMAT_BC6H_SF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_SF16             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC7_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM
 *     CU_AD_FORMAT_BC7_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM_SRGB
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC6H_SF16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC6H_SF16, __pyx_t_4) < 0) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":218
 *     CU_AD_FORMAT_BC6H_UF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_UF16
 *     CU_AD_FORMAT_BC6H_SF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_SF16
 *     CU_AD_FORMAT_BC7_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM             # <<<<<<<<<<<<<<
 *     CU_AD_FORMAT_BC7_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM_SRGB
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC7_UNORM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC7_UNORM, __pyx_t_4) < 0) __PYX_ERR(0, 218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":219
 *     CU_AD_FORMAT_BC6H_SF16 = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC6H_SF16
 *     CU_AD_FORMAT_BC7_UNORM = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM
 *     CU_AD_FORMAT_BC7_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM_SRGB             # <<<<<<<<<<<<<<
 * 
 * class CUaddress_mode(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(__pyx_e_4cuda_5ccuda_CU_AD_FORMAT_BC7_UNORM_SRGB); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_AD_FORMAT_BC7_UNORM_SRGB, __pyx_t_4) < 0) __PYX_ERR(0, 219, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":181
 *     CU_STREAM_SET_CAPTURE_DEPENDENCIES = ccuda.CUstreamUpdateCaptureDependencies_flags_enum.CU_STREAM_SET_CAPTURE_DEPENDENCIES
 * 
 * class CUarray_format(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Array formats
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUarray_format, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUarray_format, __pyx_t_4) < 0) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":221
 *     CU_AD_FORMAT_BC7_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM_SRGB
 * 
 * class CUaddress_mode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Texture reference addressing modes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUaddress_mode, __pyx_n_s_CUaddress_mode, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Texture_reference_addressing_mo); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":225
 *     Texture reference addressing modes
 *     """
 *     CU_TR_ADDRESS_MODE_WRAP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_WRAP             # <<<<<<<<<<<<<<
 *     CU_TR_ADDRESS_MODE_CLAMP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_CLAMP
 *     CU_TR_ADDRESS_MODE_MIRROR = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_MIRROR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_WRAP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TR_ADDRESS_MODE_WRAP, __pyx_t_4) < 0) __PYX_ERR(0, 225, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":226
 *     """
 *     CU_TR_ADDRESS_MODE_WRAP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_WRAP
 *     CU_TR_ADDRESS_MODE_CLAMP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_CLAMP             # <<<<<<<<<<<<<<
 *     CU_TR_ADDRESS_MODE_MIRROR = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_MIRROR
 *     CU_TR_ADDRESS_MODE_BORDER = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_BORDER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_CLAMP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TR_ADDRESS_MODE_CLAMP, __pyx_t_4) < 0) __PYX_ERR(0, 226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":227
 *     CU_TR_ADDRESS_MODE_WRAP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_WRAP
 *     CU_TR_ADDRESS_MODE_CLAMP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_CLAMP
 *     CU_TR_ADDRESS_MODE_MIRROR = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_MIRROR             # <<<<<<<<<<<<<<
 *     CU_TR_ADDRESS_MODE_BORDER = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_BORDER
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_MIRROR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TR_ADDRESS_MODE_MIRROR, __pyx_t_4) < 0) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":228
 *     CU_TR_ADDRESS_MODE_CLAMP = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_CLAMP
 *     CU_TR_ADDRESS_MODE_MIRROR = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_MIRROR
 *     CU_TR_ADDRESS_MODE_BORDER = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_BORDER             # <<<<<<<<<<<<<<
 * 
 * class CUfilter_mode(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(__pyx_e_4cuda_5ccuda_CU_TR_ADDRESS_MODE_BORDER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TR_ADDRESS_MODE_BORDER, __pyx_t_4) < 0) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":221
 *     CU_AD_FORMAT_BC7_UNORM_SRGB = ccuda.CUarray_format_enum.CU_AD_FORMAT_BC7_UNORM_SRGB
 * 
 * class CUaddress_mode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Texture reference addressing modes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUaddress_mode, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUaddress_mode, __pyx_t_4) < 0) __PYX_ERR(0, 221, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":230
 *     CU_TR_ADDRESS_MODE_BORDER = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_BORDER
 * 
 * class CUfilter_mode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Texture reference filtering modes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUfilter_mode, __pyx_n_s_CUfilter_mode, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Texture_reference_filtering_mod); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":234
 *     Texture reference filtering modes
 *     """
 *     CU_TR_FILTER_MODE_POINT = ccuda.CUfilter_mode_enum.CU_TR_FILTER_MODE_POINT             # <<<<<<<<<<<<<<
 *     CU_TR_FILTER_MODE_LINEAR = ccuda.CUfilter_mode_enum.CU_TR_FILTER_MODE_LINEAR
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_e_4cuda_5ccuda_CU_TR_FILTER_MODE_POINT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TR_FILTER_MODE_POINT, __pyx_t_4) < 0) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":235
 *     """
 *     CU_TR_FILTER_MODE_POINT = ccuda.CUfilter_mode_enum.CU_TR_FILTER_MODE_POINT
 *     CU_TR_FILTER_MODE_LINEAR = ccuda.CUfilter_mode_enum.CU_TR_FILTER_MODE_LINEAR             # <<<<<<<<<<<<<<
 * 
 * class CUdevice_attribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(__pyx_e_4cuda_5ccuda_CU_TR_FILTER_MODE_LINEAR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TR_FILTER_MODE_LINEAR, __pyx_t_4) < 0) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":230
 *     CU_TR_ADDRESS_MODE_BORDER = ccuda.CUaddress_mode_enum.CU_TR_ADDRESS_MODE_BORDER
 * 
 * class CUfilter_mode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Texture reference filtering modes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUfilter_mode, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUfilter_mode, __pyx_t_4) < 0) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":237
 *     CU_TR_FILTER_MODE_LINEAR = ccuda.CUfilter_mode_enum.CU_TR_FILTER_MODE_LINEAR
 * 
 * class CUdevice_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Device properties
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUdevice_attribute, __pyx_n_s_CUdevice_attribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Device_properties); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":241
 *     Device properties
 *     """
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_THREADS, __pyx_t_4) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":242
 *     """
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI, __pyx_t_4) < 0) __PYX_ERR(0, 242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":243
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_2, __pyx_t_4) < 0) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":244
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DI_3, __pyx_t_4) < 0) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":245
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM, __pyx_t_4) < 0) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":246
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_2, __pyx_t_4) < 0) __PYX_ERR(0, 246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":247
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_3, __pyx_t_4) < 0) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":248
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M, __pyx_t_4) < 0) __PYX_ERR(0, 248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":249
 *     CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY
 *     CU_DEVICE_ATTRIBUTE_WARP_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_WARP_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_SHARED_MEMOR, __pyx_t_4) < 0) __PYX_ERR(0, 249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":250
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_WARP_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_WARP_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PITCH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_TOTAL_CONSTA, __pyx_t_4) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":251
 *     CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY
 *     CU_DEVICE_ATTRIBUTE_WARP_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_WARP_SIZE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PITCH
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_WARP_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_WARP_SIZE, __pyx_t_4) < 0) __PYX_ERR(0, 251, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":252
 *     CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY
 *     CU_DEVICE_ATTRIBUTE_WARP_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_WARP_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PITCH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_PITCH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_PITCH, __pyx_t_4) < 0) __PYX_ERR(0, 252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":253
 *     CU_DEVICE_ATTRIBUTE_WARP_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_WARP_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PITCH
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CLOCK_RATE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_REGISTER, __pyx_t_4) < 0) __PYX_ERR(0, 253, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":254
 *     CU_DEVICE_ATTRIBUTE_MAX_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PITCH
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CLOCK_RATE
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_REGISTERS_PE, __pyx_t_4) < 0) __PYX_ERR(0, 254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":255
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CLOCK_RATE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_OVERLAP
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CLOCK_RATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CLOCK_RATE, __pyx_t_4) < 0) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":256
 *     CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CLOCK_RATE
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_OVERLAP
 *     CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_TEXTURE_ALIG, __pyx_t_4) < 0) __PYX_ERR(0, 256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":257
 *     CU_DEVICE_ATTRIBUTE_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CLOCK_RATE
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_OVERLAP             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT
 *     CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, __pyx_t_4) < 0) __PYX_ERR(0, 257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":258
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_OVERLAP
 *     CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT
 *     CU_DEVICE_ATTRIBUTE_INTEGRATED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_INTEGRATED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTIPROCESS, __pyx_t_4) < 0) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":259
 *     CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_OVERLAP
 *     CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT
 *     CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_INTEGRATED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_INTEGRATED
 *     CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_KERNEL_EXEC, __pyx_t_4) < 0) __PYX_ERR(0, 259, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":260
 *     CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT
 *     CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT
 *     CU_DEVICE_ATTRIBUTE_INTEGRATED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_INTEGRATED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_MODE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_INTEGRATED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_INTEGRATED, __pyx_t_4) < 0) __PYX_ERR(0, 260, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":261
 *     CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT
 *     CU_DEVICE_ATTRIBUTE_INTEGRATED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_INTEGRATED
 *     CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_MODE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST, __pyx_t_4) < 0) __PYX_ERR(0, 261, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":262
 *     CU_DEVICE_ATTRIBUTE_INTEGRATED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_INTEGRATED
 *     CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_MODE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_MODE, __pyx_t_4) < 0) __PYX_ERR(0, 262, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":263
 *     CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_MODE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT, __pyx_t_4) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":264
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_MODE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_2, __pyx_t_4) < 0) __PYX_ERR(0, 264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":265
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_3, __pyx_t_4) < 0) __PYX_ERR(0, 265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":266
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_4, __pyx_t_4) < 0) __PYX_ERR(0, 266, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":267
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_5, __pyx_t_4) < 0) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":268
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_6, __pyx_t_4) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":269
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_7, __pyx_t_4) < 0) __PYX_ERR(0, 269, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":270
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_8, __pyx_t_4) < 0) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":271
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_9, __pyx_t_4) < 0) __PYX_ERR(0, 271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":272
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_10, __pyx_t_4) < 0) __PYX_ERR(0, 272, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":273
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES
 *     CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_11, __pyx_t_4) < 0) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":274
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_12, __pyx_t_4) < 0) __PYX_ERR(0, 274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":275
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES
 *     CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS
 *     CU_DEVICE_ATTRIBUTE_ECC_ENABLED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ECC_ENABLED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_SURFACE_ALIG, __pyx_t_4) < 0) __PYX_ERR(0, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":276
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES
 *     CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_ECC_ENABLED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ECC_ENABLED
 *     CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_BUS_ID
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CONCURRENT_K, __pyx_t_4) < 0) __PYX_ERR(0, 276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":277
 *     CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS
 *     CU_DEVICE_ATTRIBUTE_ECC_ENABLED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ECC_ENABLED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_BUS_ID
 *     CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_ECC_ENABLED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_ECC_ENABLED, __pyx_t_4) < 0) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":278
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS
 *     CU_DEVICE_ATTRIBUTE_ECC_ENABLED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ECC_ENABLED
 *     CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_BUS_ID             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID
 *     CU_DEVICE_ATTRIBUTE_TCC_DRIVER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TCC_DRIVER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, __pyx_t_4) < 0) __PYX_ERR(0, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":279
 *     CU_DEVICE_ATTRIBUTE_ECC_ENABLED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ECC_ENABLED
 *     CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_BUS_ID
 *     CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_TCC_DRIVER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TCC_DRIVER
 *     CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_DEVICE_I, __pyx_t_4) < 0) __PYX_ERR(0, 279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":280
 *     CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_BUS_ID
 *     CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID
 *     CU_DEVICE_ATTRIBUTE_TCC_DRIVER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TCC_DRIVER             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TCC_DRIVER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_TCC_DRIVER, __pyx_t_4) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":281
 *     CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID
 *     CU_DEVICE_ATTRIBUTE_TCC_DRIVER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TCC_DRIVER
 *     CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH
 *     CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK, __pyx_t_4) < 0) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":282
 *     CU_DEVICE_ATTRIBUTE_TCC_DRIVER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TCC_DRIVER
 *     CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GLOBAL_MEMOR, __pyx_t_4) < 0) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":283
 *     CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH
 *     CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZ, __pyx_t_4) < 0) __PYX_ERR(0, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":284
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH
 *     CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT
 *     CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_THREADS_2, __pyx_t_4) < 0) __PYX_ERR(0, 284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":285
 *     CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE, __pyx_t_4) < 0) __PYX_ERR(0, 285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":286
 *     CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT
 *     CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_UNIFIED_ADDR, __pyx_t_4) < 0) __PYX_ERR(0, 286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":287
 *     CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT
 *     CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_13, __pyx_t_4) < 0) __PYX_ERR(0, 287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":288
 *     CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_14, __pyx_t_4) < 0) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":289
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GA, __pyx_t_4) < 0) __PYX_ERR(0, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":290
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_15, __pyx_t_4) < 0) __PYX_ERR(0, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":291
 *     CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_16, __pyx_t_4) < 0) __PYX_ERR(0, 291, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":292
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_17, __pyx_t_4) < 0) __PYX_ERR(0, 292, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":293
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_18, __pyx_t_4) < 0) __PYX_ERR(0, 293, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":294
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_19, __pyx_t_4) < 0) __PYX_ERR(0, 294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":295
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_I, __pyx_t_4) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":296
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE
 *     CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_TEXTURE_PITC, __pyx_t_4) < 0) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":297
 *     CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_20, __pyx_t_4) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":298
 *     CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_21, __pyx_t_4) < 0) __PYX_ERR(0, 298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":299
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_22, __pyx_t_4) < 0) __PYX_ERR(0, 299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":300
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF, __pyx_t_4) < 0) __PYX_ERR(0, 300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":301
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_2, __pyx_t_4) < 0) __PYX_ERR(0, 301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":302
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_3, __pyx_t_4) < 0) __PYX_ERR(0, 302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":303
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_4, __pyx_t_4) < 0) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":304
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_5, __pyx_t_4) < 0) __PYX_ERR(0, 304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":305
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_6, __pyx_t_4) < 0) __PYX_ERR(0, 305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":306
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_7, __pyx_t_4) < 0) __PYX_ERR(0, 306, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":307
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_8, __pyx_t_4) < 0) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":308
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_9, __pyx_t_4) < 0) __PYX_ERR(0, 308, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":309
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_10, __pyx_t_4) < 0) __PYX_ERR(0, 309, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":310
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_11, __pyx_t_4) < 0) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":311
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_12, __pyx_t_4) < 0) __PYX_ERR(0, 311, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":312
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_13, __pyx_t_4) < 0) __PYX_ERR(0, 312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":313
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_SURF_14, __pyx_t_4) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":314
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_23, __pyx_t_4) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":315
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_24, __pyx_t_4) < 0) __PYX_ERR(0, 315, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":316
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_25, __pyx_t_4) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":317
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_26, __pyx_t_4) < 0) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":318
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_27, __pyx_t_4) < 0) __PYX_ERR(0, 318, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":319
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_28, __pyx_t_4) < 0) __PYX_ERR(0, 319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":320
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA, __pyx_t_4) < 0) __PYX_ERR(0, 320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":321
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_CAPA_2, __pyx_t_4) < 0) __PYX_ERR(0, 321, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":322
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXT_29, __pyx_t_4) < 0) __PYX_ERR(0, 322, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":323
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_STREAM_PRIOR, __pyx_t_4) < 0) __PYX_ERR(0, 323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":324
 *     CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH
 *     CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CA, __pyx_t_4) < 0) __PYX_ERR(0, 324, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":325
 *     CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_LOCAL_L1_CAC, __pyx_t_4) < 0) __PYX_ERR(0, 325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":326
 *     CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_2, __pyx_t_4) < 0) __PYX_ERR(0, 326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":327
 *     CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_REGISTER_2, __pyx_t_4) < 0) __PYX_ERR(0, 327, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":328
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MANAGED_MEMO, __pyx_t_4) < 0) __PYX_ERR(0, 328, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":329
 *     CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID
 *     CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO, __pyx_t_4) < 0) __PYX_ERR(0, 329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":330
 *     CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MULTI_GPU_BO_2, __pyx_t_4) < 0) __PYX_ERR(0, 330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":331
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID
 *     CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_HOST_NATIVE, __pyx_t_4) < 0) __PYX_ERR(0, 331, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":332
 *     CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID
 *     CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_SINGLE_TO_DO, __pyx_t_4) < 0) __PYX_ERR(0, 332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":333
 *     CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM, __pyx_t_4) < 0) __PYX_ERR(0, 333, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":334
 *     CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CONCURRENT_M, __pyx_t_4) < 0) __PYX_ERR(0, 334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":335
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_COMPUTE_PREE, __pyx_t_4) < 0) __PYX_ERR(0, 335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":336
 *     CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_HOST, __pyx_t_4) < 0) __PYX_ERR(0, 336, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":337
 *     CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE, __pyx_t_4) < 0) __PYX_ERR(0, 337, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":338
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_64_B, __pyx_t_4) < 0) __PYX_ERR(0, 338, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":339
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_USE_STRE_2, __pyx_t_4) < 0) __PYX_ERR(0, 339, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":340
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_COOPERATIVE, __pyx_t_4) < 0) __PYX_ERR(0, 340, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":341
 *     CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN
 *     CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_COOPERATIVE_2, __pyx_t_4) < 0) __PYX_ERR(0, 341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":342
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES
 *     CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_SHARED_M_3, __pyx_t_4) < 0) __PYX_ERR(0, 342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":343
 *     CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN
 *     CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_CAN_FLUSH_RE, __pyx_t_4) < 0) __PYX_ERR(0, 343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":344
 *     CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN
 *     CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES
 *     CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES
 *     CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_HOST_REGISTE, __pyx_t_4) < 0) __PYX_ERR(0, 344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":345
 *     CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES
 *     CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_PAGEABLE_MEM_2, __pyx_t_4) < 0) __PYX_ERR(0, 345, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":346
 *     CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES
 *     CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_DIRECT_MANAG, __pyx_t_4) < 0) __PYX_ERR(0, 346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":347
 *     CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES
 *     CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDR, __pyx_t_4) < 0) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":348
 *     CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMO, __pyx_t_4) < 0) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":349
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE, __pyx_t_4) < 0) __PYX_ERR(0, 349, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":350
 *     CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_2, __pyx_t_4) < 0) __PYX_ERR(0, 350, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":351
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_3, __pyx_t_4) < 0) __PYX_ERR(0, 351, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":352
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_P, __pyx_t_4) < 0) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":353
 *     CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GENERIC_COMP, __pyx_t_4) < 0) __PYX_ERR(0, 353, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":354
 *     CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR
 *     CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_PERSISTI, __pyx_t_4) < 0) __PYX_ERR(0, 354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":355
 *     CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX_ACCESS_P, __pyx_t_4) < 0) __PYX_ERR(0, 355, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":356
 *     CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE
 *     CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R, __pyx_t_4) < 0) __PYX_ERR(0, 356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":357
 *     CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_RESERVED_SHA, __pyx_t_4) < 0) __PYX_ERR(0, 357, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":358
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_SPARSE_CUDA, __pyx_t_4) < 0) __PYX_ERR(0, 358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":359
 *     CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK
 *     CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_READ_ONLY_HO, __pyx_t_4) < 0) __PYX_ERR(0, 359, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":360
 *     CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_TIMELINE_SEM, __pyx_t_4) < 0) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":361
 *     CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMORY_POOLS, __pyx_t_4) < 0) __PYX_ERR(0, 361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":362
 *     CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_2, __pyx_t_4) < 0) __PYX_ERR(0, 362, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":363
 *     CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING
 *     CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_3, __pyx_t_4) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":364
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES
 *     CU_DEVICE_ATTRIBUTE_MAX = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_GPU_DIRECT_R_4, __pyx_t_4) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":365
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING
 *     CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES             # <<<<<<<<<<<<<<
 *     CU_DEVICE_ATTRIBUTE_MAX = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPP, __pyx_t_4) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":366
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING
 *     CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES
 *     CU_DEVICE_ATTRIBUTE_MAX = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUpointer_attribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_ATTRIBUTE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_ATTRIBUTE_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":237
 *     CU_TR_FILTER_MODE_LINEAR = ccuda.CUfilter_mode_enum.CU_TR_FILTER_MODE_LINEAR
 * 
 * class CUdevice_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Device properties
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUdevice_attribute, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUdevice_attribute, __pyx_t_4) < 0) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":368
 *     CU_DEVICE_ATTRIBUTE_MAX = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX
 * 
 * class CUpointer_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Pointer information
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUpointer_attribute, __pyx_n_s_CUpointer_attribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Pointer_information); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":372
 *     Pointer information
 *     """
 *     CU_POINTER_ATTRIBUTE_CONTEXT = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_CONTEXT             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_MEMORY_TYPE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMORY_TYPE
 *     CU_POINTER_ATTRIBUTE_DEVICE_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_POINTER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_CONTEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_CONTEXT, __pyx_t_4) < 0) __PYX_ERR(0, 372, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":373
 *     """
 *     CU_POINTER_ATTRIBUTE_CONTEXT = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_CONTEXT
 *     CU_POINTER_ATTRIBUTE_MEMORY_TYPE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMORY_TYPE             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_DEVICE_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_POINTER
 *     CU_POINTER_ATTRIBUTE_HOST_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_HOST_POINTER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_MEMORY_TYPE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_MEMORY_TYPE, __pyx_t_4) < 0) __PYX_ERR(0, 373, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":374
 *     CU_POINTER_ATTRIBUTE_CONTEXT = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_CONTEXT
 *     CU_POINTER_ATTRIBUTE_MEMORY_TYPE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMORY_TYPE
 *     CU_POINTER_ATTRIBUTE_DEVICE_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_POINTER             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_HOST_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_HOST_POINTER
 *     CU_POINTER_ATTRIBUTE_P2P_TOKENS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_P2P_TOKENS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_DEVICE_POINTER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_DEVICE_POIN, __pyx_t_4) < 0) __PYX_ERR(0, 374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":375
 *     CU_POINTER_ATTRIBUTE_MEMORY_TYPE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMORY_TYPE
 *     CU_POINTER_ATTRIBUTE_DEVICE_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_POINTER
 *     CU_POINTER_ATTRIBUTE_HOST_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_HOST_POINTER             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_P2P_TOKENS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_P2P_TOKENS
 *     CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_SYNC_MEMOPS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_HOST_POINTER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_HOST_POINTE, __pyx_t_4) < 0) __PYX_ERR(0, 375, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":376
 *     CU_POINTER_ATTRIBUTE_DEVICE_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_POINTER
 *     CU_POINTER_ATTRIBUTE_HOST_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_HOST_POINTER
 *     CU_POINTER_ATTRIBUTE_P2P_TOKENS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_P2P_TOKENS             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_SYNC_MEMOPS
 *     CU_POINTER_ATTRIBUTE_BUFFER_ID = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_BUFFER_ID
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_P2P_TOKENS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_P2P_TOKENS, __pyx_t_4) < 0) __PYX_ERR(0, 376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":377
 *     CU_POINTER_ATTRIBUTE_HOST_POINTER = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_HOST_POINTER
 *     CU_POINTER_ATTRIBUTE_P2P_TOKENS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_P2P_TOKENS
 *     CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_SYNC_MEMOPS             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_BUFFER_ID = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_BUFFER_ID
 *     CU_POINTER_ATTRIBUTE_IS_MANAGED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_MANAGED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS, __pyx_t_4) < 0) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":378
 *     CU_POINTER_ATTRIBUTE_P2P_TOKENS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_P2P_TOKENS
 *     CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_SYNC_MEMOPS
 *     CU_POINTER_ATTRIBUTE_BUFFER_ID = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_BUFFER_ID             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_IS_MANAGED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_MANAGED
 *     CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_BUFFER_ID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_BUFFER_ID, __pyx_t_4) < 0) __PYX_ERR(0, 378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":379
 *     CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_SYNC_MEMOPS
 *     CU_POINTER_ATTRIBUTE_BUFFER_ID = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_BUFFER_ID
 *     CU_POINTER_ATTRIBUTE_IS_MANAGED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_MANAGED             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL
 *     CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_IS_MANAGED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_IS_MANAGED, __pyx_t_4) < 0) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":380
 *     CU_POINTER_ATTRIBUTE_BUFFER_ID = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_BUFFER_ID
 *     CU_POINTER_ATTRIBUTE_IS_MANAGED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_MANAGED
 *     CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE
 *     CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_START_ADDR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_DEVICE_ORDI, __pyx_t_4) < 0) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":381
 *     CU_POINTER_ATTRIBUTE_IS_MANAGED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_MANAGED
 *     CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL
 *     CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_START_ADDR
 *     CU_POINTER_ATTRIBUTE_RANGE_SIZE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_IS_LEGACY_C, __pyx_t_4) < 0) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":382
 *     CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL
 *     CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE
 *     CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_START_ADDR             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_RANGE_SIZE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_SIZE
 *     CU_POINTER_ATTRIBUTE_MAPPED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MAPPED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_RANGE_START_ADDR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_RANGE_START, __pyx_t_4) < 0) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":383
 *     CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE
 *     CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_START_ADDR
 *     CU_POINTER_ATTRIBUTE_RANGE_SIZE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_SIZE             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_MAPPED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MAPPED
 *     CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_RANGE_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_RANGE_SIZE, __pyx_t_4) < 0) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":384
 *     CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_START_ADDR
 *     CU_POINTER_ATTRIBUTE_RANGE_SIZE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_SIZE
 *     CU_POINTER_ATTRIBUTE_MAPPED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MAPPED             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES
 *     CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_MAPPED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_MAPPED, __pyx_t_4) < 0) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":385
 *     CU_POINTER_ATTRIBUTE_RANGE_SIZE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_RANGE_SIZE
 *     CU_POINTER_ATTRIBUTE_MAPPED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MAPPED
 *     CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAGS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_ALLOWED_HAN, __pyx_t_4) < 0) __PYX_ERR(0, 385, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":386
 *     CU_POINTER_ATTRIBUTE_MAPPED = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MAPPED
 *     CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES
 *     CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAGS
 *     CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_IS_GPU_DIRE, __pyx_t_4) < 0) __PYX_ERR(0, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":387
 *     CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES
 *     CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAGS             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG, __pyx_t_4) < 0) __PYX_ERR(0, 387, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":388
 *     CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAGS
 *     CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE             # <<<<<<<<<<<<<<
 * 
 * class CUfunction_attribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_MEMPOOL_HAN, __pyx_t_4) < 0) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":368
 *     CU_DEVICE_ATTRIBUTE_MAX = ccuda.CUdevice_attribute_enum.CU_DEVICE_ATTRIBUTE_MAX
 * 
 * class CUpointer_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Pointer information
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUpointer_attribute, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUpointer_attribute, __pyx_t_4) < 0) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":390
 *     CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE
 * 
 * class CUfunction_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Function properties
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUfunction_attribute, __pyx_n_s_CUfunction_attribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Function_properties); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":394
 *     Function properties
 *     """
 *     CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_MAX_THREADS_PE, __pyx_t_4) < 0) __PYX_ERR(0, 394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":395
 *     """
 *     CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK
 *     CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_SHARED_SIZE_BY, __pyx_t_4) < 0) __PYX_ERR(0, 395, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":396
 *     CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK
 *     CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_NUM_REGS = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_NUM_REGS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_CONST_SIZE_BYT, __pyx_t_4) < 0) __PYX_ERR(0, 396, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":397
 *     CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_NUM_REGS = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_NUM_REGS
 *     CU_FUNC_ATTRIBUTE_PTX_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PTX_VERSION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYT, __pyx_t_4) < 0) __PYX_ERR(0, 397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":398
 *     CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_NUM_REGS = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_NUM_REGS             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_PTX_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PTX_VERSION
 *     CU_FUNC_ATTRIBUTE_BINARY_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_BINARY_VERSION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_NUM_REGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_NUM_REGS, __pyx_t_4) < 0) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":399
 *     CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_NUM_REGS = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_NUM_REGS
 *     CU_FUNC_ATTRIBUTE_PTX_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PTX_VERSION             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_BINARY_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_BINARY_VERSION
 *     CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CACHE_MODE_CA
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_PTX_VERSION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_PTX_VERSION, __pyx_t_4) < 0) __PYX_ERR(0, 399, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":400
 *     CU_FUNC_ATTRIBUTE_NUM_REGS = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_NUM_REGS
 *     CU_FUNC_ATTRIBUTE_PTX_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PTX_VERSION
 *     CU_FUNC_ATTRIBUTE_BINARY_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_BINARY_VERSION             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CACHE_MODE_CA
 *     CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_BINARY_VERSION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_BINARY_VERSION, __pyx_t_4) < 0) __PYX_ERR(0, 400, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":401
 *     CU_FUNC_ATTRIBUTE_PTX_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PTX_VERSION
 *     CU_FUNC_ATTRIBUTE_BINARY_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_BINARY_VERSION
 *     CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CACHE_MODE_CA             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_CACHE_MODE_CA, __pyx_t_4) < 0) __PYX_ERR(0, 401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":402
 *     CU_FUNC_ATTRIBUTE_BINARY_VERSION = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_BINARY_VERSION
 *     CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CACHE_MODE_CA
 *     CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT
 *     CU_FUNC_ATTRIBUTE_MAX = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SH, __pyx_t_4) < 0) __PYX_ERR(0, 402, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":403
 *     CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_CACHE_MODE_CA
 *     CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT             # <<<<<<<<<<<<<<
 *     CU_FUNC_ATTRIBUTE_MAX = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_PREFERRED_SHAR, __pyx_t_4) < 0) __PYX_ERR(0, 403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":404
 *     CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES
 *     CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT
 *     CU_FUNC_ATTRIBUTE_MAX = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUfunc_cache(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_ATTRIBUTE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_ATTRIBUTE_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 404, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":390
 *     CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = ccuda.CUpointer_attribute_enum.CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE
 * 
 * class CUfunction_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Function properties
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUfunction_attribute, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUfunction_attribute, __pyx_t_4) < 0) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":406
 *     CU_FUNC_ATTRIBUTE_MAX = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX
 * 
 * class CUfunc_cache(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Function cache configurations
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUfunc_cache, __pyx_n_s_CUfunc_cache, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Function_cache_configurations); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":410
 *     Function cache configurations
 *     """
 *     CU_FUNC_CACHE_PREFER_NONE = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_NONE             # <<<<<<<<<<<<<<
 *     CU_FUNC_CACHE_PREFER_SHARED = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_SHARED
 *     CU_FUNC_CACHE_PREFER_L1 = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_L1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_CACHE_PREFER_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":411
 *     """
 *     CU_FUNC_CACHE_PREFER_NONE = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_NONE
 *     CU_FUNC_CACHE_PREFER_SHARED = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_SHARED             # <<<<<<<<<<<<<<
 *     CU_FUNC_CACHE_PREFER_L1 = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_L1
 *     CU_FUNC_CACHE_PREFER_EQUAL = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_EQUAL
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_SHARED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_CACHE_PREFER_SHARED, __pyx_t_4) < 0) __PYX_ERR(0, 411, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":412
 *     CU_FUNC_CACHE_PREFER_NONE = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_NONE
 *     CU_FUNC_CACHE_PREFER_SHARED = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_SHARED
 *     CU_FUNC_CACHE_PREFER_L1 = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_L1             # <<<<<<<<<<<<<<
 *     CU_FUNC_CACHE_PREFER_EQUAL = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_EQUAL
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_L1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_CACHE_PREFER_L1, __pyx_t_4) < 0) __PYX_ERR(0, 412, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":413
 *     CU_FUNC_CACHE_PREFER_SHARED = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_SHARED
 *     CU_FUNC_CACHE_PREFER_L1 = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_L1
 *     CU_FUNC_CACHE_PREFER_EQUAL = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_EQUAL             # <<<<<<<<<<<<<<
 * 
 * class CUsharedconfig(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(__pyx_e_4cuda_5ccuda_CU_FUNC_CACHE_PREFER_EQUAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FUNC_CACHE_PREFER_EQUAL, __pyx_t_4) < 0) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":406
 *     CU_FUNC_ATTRIBUTE_MAX = ccuda.CUfunction_attribute_enum.CU_FUNC_ATTRIBUTE_MAX
 * 
 * class CUfunc_cache(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Function cache configurations
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUfunc_cache, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUfunc_cache, __pyx_t_4) < 0) __PYX_ERR(0, 406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":415
 *     CU_FUNC_CACHE_PREFER_EQUAL = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_EQUAL
 * 
 * class CUsharedconfig(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Shared memory configurations
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUsharedconfig, __pyx_n_s_CUsharedconfig, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Shared_memory_configurations); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":419
 *     Shared memory configurations
 *     """
 *     CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE             # <<<<<<<<<<<<<<
 *     CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE
 *     CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(__pyx_e_4cuda_5ccuda_CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SHARED_MEM_CONFIG_DEFAULT_BAN, __pyx_t_4) < 0) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":420
 *     """
 *     CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE
 *     CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE             # <<<<<<<<<<<<<<
 *     CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(__pyx_e_4cuda_5ccuda_CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SHARED_MEM_CONFIG_FOUR_BYTE_B, __pyx_t_4) < 0) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":421
 *     CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE
 *     CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE
 *     CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE             # <<<<<<<<<<<<<<
 * 
 * class CUshared_carveout(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(__pyx_e_4cuda_5ccuda_CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SHARED_MEM_CONFIG_EIGHT_BYTE, __pyx_t_4) < 0) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":415
 *     CU_FUNC_CACHE_PREFER_EQUAL = ccuda.CUfunc_cache_enum.CU_FUNC_CACHE_PREFER_EQUAL
 * 
 * class CUsharedconfig(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Shared memory configurations
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUsharedconfig, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUsharedconfig, __pyx_t_4) < 0) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":423
 *     CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE
 * 
 * class CUshared_carveout(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Shared memory carveout configurations. These may be passed to
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUshared_carveout, __pyx_n_s_CUshared_carveout, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Shared_memory_carveout_configur); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":428
 *     cuFuncSetAttribute
 *     """
 *     CU_SHAREDMEM_CARVEOUT_DEFAULT = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_SHAREDMEM_CARVEOUT_MAX_SHARED = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_SHARED
 *     CU_SHAREDMEM_CARVEOUT_MAX_L1 = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_L1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUshared_carveout_enum(__pyx_e_4cuda_5ccuda_CU_SHAREDMEM_CARVEOUT_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SHAREDMEM_CARVEOUT_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 428, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":429
 *     """
 *     CU_SHAREDMEM_CARVEOUT_DEFAULT = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_DEFAULT
 *     CU_SHAREDMEM_CARVEOUT_MAX_SHARED = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_SHARED             # <<<<<<<<<<<<<<
 *     CU_SHAREDMEM_CARVEOUT_MAX_L1 = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_L1
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUshared_carveout_enum(__pyx_e_4cuda_5ccuda_CU_SHAREDMEM_CARVEOUT_MAX_SHARED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SHAREDMEM_CARVEOUT_MAX_SHARED, __pyx_t_4) < 0) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":430
 *     CU_SHAREDMEM_CARVEOUT_DEFAULT = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_DEFAULT
 *     CU_SHAREDMEM_CARVEOUT_MAX_SHARED = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_SHARED
 *     CU_SHAREDMEM_CARVEOUT_MAX_L1 = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_L1             # <<<<<<<<<<<<<<
 * 
 * class CUmemorytype(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUshared_carveout_enum(__pyx_e_4cuda_5ccuda_CU_SHAREDMEM_CARVEOUT_MAX_L1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SHAREDMEM_CARVEOUT_MAX_L1, __pyx_t_4) < 0) __PYX_ERR(0, 430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":423
 *     CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = ccuda.CUsharedconfig_enum.CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE
 * 
 * class CUshared_carveout(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Shared memory carveout configurations. These may be passed to
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUshared_carveout, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUshared_carveout, __pyx_t_4) < 0) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":432
 *     CU_SHAREDMEM_CARVEOUT_MAX_L1 = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_L1
 * 
 * class CUmemorytype(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUmemorytype, __pyx_n_s_CUmemorytype, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Memory_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":436
 *     Memory types
 *     """
 *     CU_MEMORYTYPE_HOST = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_HOST             # <<<<<<<<<<<<<<
 *     CU_MEMORYTYPE_DEVICE = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_DEVICE
 *     CU_MEMORYTYPE_ARRAY = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_ARRAY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_HOST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMORYTYPE_HOST, __pyx_t_4) < 0) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":437
 *     """
 *     CU_MEMORYTYPE_HOST = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_HOST
 *     CU_MEMORYTYPE_DEVICE = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_DEVICE             # <<<<<<<<<<<<<<
 *     CU_MEMORYTYPE_ARRAY = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_ARRAY
 *     CU_MEMORYTYPE_UNIFIED = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_UNIFIED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_DEVICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMORYTYPE_DEVICE, __pyx_t_4) < 0) __PYX_ERR(0, 437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":438
 *     CU_MEMORYTYPE_HOST = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_HOST
 *     CU_MEMORYTYPE_DEVICE = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_DEVICE
 *     CU_MEMORYTYPE_ARRAY = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_ARRAY             # <<<<<<<<<<<<<<
 *     CU_MEMORYTYPE_UNIFIED = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_UNIFIED
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMORYTYPE_ARRAY, __pyx_t_4) < 0) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":439
 *     CU_MEMORYTYPE_DEVICE = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_DEVICE
 *     CU_MEMORYTYPE_ARRAY = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_ARRAY
 *     CU_MEMORYTYPE_UNIFIED = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_UNIFIED             # <<<<<<<<<<<<<<
 * 
 * class CUcomputemode(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(__pyx_e_4cuda_5ccuda_CU_MEMORYTYPE_UNIFIED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMORYTYPE_UNIFIED, __pyx_t_4) < 0) __PYX_ERR(0, 439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":432
 *     CU_SHAREDMEM_CARVEOUT_MAX_L1 = ccuda.CUshared_carveout_enum.CU_SHAREDMEM_CARVEOUT_MAX_L1
 * 
 * class CUmemorytype(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUmemorytype, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemorytype, __pyx_t_4) < 0) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":441
 *     CU_MEMORYTYPE_UNIFIED = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_UNIFIED
 * 
 * class CUcomputemode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Compute Modes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUcomputemode, __pyx_n_s_CUcomputemode, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Compute_Modes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":445
 *     Compute Modes
 *     """
 *     CU_COMPUTEMODE_DEFAULT = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_COMPUTEMODE_PROHIBITED = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_PROHIBITED
 *     CU_COMPUTEMODE_EXCLUSIVE_PROCESS = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_EXCLUSIVE_PROCESS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUcomputemode_enum(__pyx_e_4cuda_5ccuda_CU_COMPUTEMODE_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_COMPUTEMODE_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 445, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":446
 *     """
 *     CU_COMPUTEMODE_DEFAULT = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_DEFAULT
 *     CU_COMPUTEMODE_PROHIBITED = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_PROHIBITED             # <<<<<<<<<<<<<<
 *     CU_COMPUTEMODE_EXCLUSIVE_PROCESS = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_EXCLUSIVE_PROCESS
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUcomputemode_enum(__pyx_e_4cuda_5ccuda_CU_COMPUTEMODE_PROHIBITED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_COMPUTEMODE_PROHIBITED, __pyx_t_4) < 0) __PYX_ERR(0, 446, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":447
 *     CU_COMPUTEMODE_DEFAULT = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_DEFAULT
 *     CU_COMPUTEMODE_PROHIBITED = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_PROHIBITED
 *     CU_COMPUTEMODE_EXCLUSIVE_PROCESS = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_EXCLUSIVE_PROCESS             # <<<<<<<<<<<<<<
 * 
 * class CUmem_advise(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUcomputemode_enum(__pyx_e_4cuda_5ccuda_CU_COMPUTEMODE_EXCLUSIVE_PROCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_COMPUTEMODE_EXCLUSIVE_PROCESS, __pyx_t_4) < 0) __PYX_ERR(0, 447, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":441
 *     CU_MEMORYTYPE_UNIFIED = ccuda.CUmemorytype_enum.CU_MEMORYTYPE_UNIFIED
 * 
 * class CUcomputemode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Compute Modes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUcomputemode, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUcomputemode, __pyx_t_4) < 0) __PYX_ERR(0, 441, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":449
 *     CU_COMPUTEMODE_EXCLUSIVE_PROCESS = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_EXCLUSIVE_PROCESS
 * 
 * class CUmem_advise(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory advise values
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUmem_advise, __pyx_n_s_CUmem_advise, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Memory_advise_values); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":453
 *     Memory advise values
 *     """
 *     CU_MEM_ADVISE_SET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_READ_MOSTLY             # <<<<<<<<<<<<<<
 *     CU_MEM_ADVISE_UNSET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_READ_MOSTLY
 *     CU_MEM_ADVISE_SET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_PREFERRED_LOCATION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_SET_READ_MOSTLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ADVISE_SET_READ_MOSTLY, __pyx_t_4) < 0) __PYX_ERR(0, 453, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":454
 *     """
 *     CU_MEM_ADVISE_SET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_READ_MOSTLY
 *     CU_MEM_ADVISE_UNSET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_READ_MOSTLY             # <<<<<<<<<<<<<<
 *     CU_MEM_ADVISE_SET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_PREFERRED_LOCATION
 *     CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_UNSET_READ_MOSTLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ADVISE_UNSET_READ_MOSTLY, __pyx_t_4) < 0) __PYX_ERR(0, 454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":455
 *     CU_MEM_ADVISE_SET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_READ_MOSTLY
 *     CU_MEM_ADVISE_UNSET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_READ_MOSTLY
 *     CU_MEM_ADVISE_SET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_PREFERRED_LOCATION             # <<<<<<<<<<<<<<
 *     CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION
 *     CU_MEM_ADVISE_SET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_ACCESSED_BY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_SET_PREFERRED_LOCATION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ADVISE_SET_PREFERRED_LOCA, __pyx_t_4) < 0) __PYX_ERR(0, 455, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":456
 *     CU_MEM_ADVISE_UNSET_READ_MOSTLY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_READ_MOSTLY
 *     CU_MEM_ADVISE_SET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_PREFERRED_LOCATION
 *     CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION             # <<<<<<<<<<<<<<
 *     CU_MEM_ADVISE_SET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_ACCESSED_BY
 *     CU_MEM_ADVISE_UNSET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_ACCESSED_BY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ADVISE_UNSET_PREFERRED_LO, __pyx_t_4) < 0) __PYX_ERR(0, 456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":457
 *     CU_MEM_ADVISE_SET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_PREFERRED_LOCATION
 *     CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION
 *     CU_MEM_ADVISE_SET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_ACCESSED_BY             # <<<<<<<<<<<<<<
 *     CU_MEM_ADVISE_UNSET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_ACCESSED_BY
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_SET_ACCESSED_BY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ADVISE_SET_ACCESSED_BY, __pyx_t_4) < 0) __PYX_ERR(0, 457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":458
 *     CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION
 *     CU_MEM_ADVISE_SET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_SET_ACCESSED_BY
 *     CU_MEM_ADVISE_UNSET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_ACCESSED_BY             # <<<<<<<<<<<<<<
 * 
 * class CUmem_range_attribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ADVISE_UNSET_ACCESSED_BY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ADVISE_UNSET_ACCESSED_BY, __pyx_t_4) < 0) __PYX_ERR(0, 458, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":449
 *     CU_COMPUTEMODE_EXCLUSIVE_PROCESS = ccuda.CUcomputemode_enum.CU_COMPUTEMODE_EXCLUSIVE_PROCESS
 * 
 * class CUmem_advise(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory advise values
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUmem_advise, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmem_advise, __pyx_t_4) < 0) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":460
 *     CU_MEM_ADVISE_UNSET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_ACCESSED_BY
 * 
 * class CUmem_range_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmem_range_attribute, __pyx_n_s_CUmem_range_attribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s__879); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":464
 * 
 *     """
 *     CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY             # <<<<<<<<<<<<<<
 *     CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION
 *     CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_READ_MOST, __pyx_t_4) < 0) __PYX_ERR(0, 464, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":465
 *     """
 *     CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY
 *     CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION             # <<<<<<<<<<<<<<
 *     CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY
 *     CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_PREFERRED, __pyx_t_4) < 0) __PYX_ERR(0, 465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":466
 *     CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY
 *     CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION
 *     CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY             # <<<<<<<<<<<<<<
 *     CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_ACCESSED, __pyx_t_4) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":467
 *     CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION
 *     CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY
 *     CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION             # <<<<<<<<<<<<<<
 * 
 * class CUjit_option(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_RANGE_ATTRIBUTE_LAST_PREF, __pyx_t_4) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":460
 *     CU_MEM_ADVISE_UNSET_ACCESSED_BY = ccuda.CUmem_advise_enum.CU_MEM_ADVISE_UNSET_ACCESSED_BY
 * 
 * class CUmem_range_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmem_range_attribute, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmem_range_attribute, __pyx_t_4) < 0) __PYX_ERR(0, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":469
 *     CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION
 * 
 * class CUjit_option(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Online compiler and linker options
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUjit_option, __pyx_n_s_CUjit_option, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Online_compiler_and_linker_opti); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":473
 *     Online compiler and linker options
 *     """
 *     CU_JIT_MAX_REGISTERS = ccuda.CUjit_option_enum.CU_JIT_MAX_REGISTERS             # <<<<<<<<<<<<<<
 *     CU_JIT_THREADS_PER_BLOCK = ccuda.CUjit_option_enum.CU_JIT_THREADS_PER_BLOCK
 *     CU_JIT_WALL_TIME = ccuda.CUjit_option_enum.CU_JIT_WALL_TIME
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_MAX_REGISTERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_MAX_REGISTERS, __pyx_t_4) < 0) __PYX_ERR(0, 473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":474
 *     """
 *     CU_JIT_MAX_REGISTERS = ccuda.CUjit_option_enum.CU_JIT_MAX_REGISTERS
 *     CU_JIT_THREADS_PER_BLOCK = ccuda.CUjit_option_enum.CU_JIT_THREADS_PER_BLOCK             # <<<<<<<<<<<<<<
 *     CU_JIT_WALL_TIME = ccuda.CUjit_option_enum.CU_JIT_WALL_TIME
 *     CU_JIT_INFO_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_THREADS_PER_BLOCK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_THREADS_PER_BLOCK, __pyx_t_4) < 0) __PYX_ERR(0, 474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":475
 *     CU_JIT_MAX_REGISTERS = ccuda.CUjit_option_enum.CU_JIT_MAX_REGISTERS
 *     CU_JIT_THREADS_PER_BLOCK = ccuda.CUjit_option_enum.CU_JIT_THREADS_PER_BLOCK
 *     CU_JIT_WALL_TIME = ccuda.CUjit_option_enum.CU_JIT_WALL_TIME             # <<<<<<<<<<<<<<
 *     CU_JIT_INFO_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER
 *     CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_WALL_TIME); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_WALL_TIME, __pyx_t_4) < 0) __PYX_ERR(0, 475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":476
 *     CU_JIT_THREADS_PER_BLOCK = ccuda.CUjit_option_enum.CU_JIT_THREADS_PER_BLOCK
 *     CU_JIT_WALL_TIME = ccuda.CUjit_option_enum.CU_JIT_WALL_TIME
 *     CU_JIT_INFO_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER             # <<<<<<<<<<<<<<
 *     CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES
 *     CU_JIT_ERROR_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INFO_LOG_BUFFER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INFO_LOG_BUFFER, __pyx_t_4) < 0) __PYX_ERR(0, 476, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":477
 *     CU_JIT_WALL_TIME = ccuda.CUjit_option_enum.CU_JIT_WALL_TIME
 *     CU_JIT_INFO_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER
 *     CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES             # <<<<<<<<<<<<<<
 *     CU_JIT_ERROR_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER
 *     CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INFO_LOG_BUFFER_SIZE_BYTE, __pyx_t_4) < 0) __PYX_ERR(0, 477, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":478
 *     CU_JIT_INFO_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER
 *     CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES
 *     CU_JIT_ERROR_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER             # <<<<<<<<<<<<<<
 *     CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES
 *     CU_JIT_OPTIMIZATION_LEVEL = ccuda.CUjit_option_enum.CU_JIT_OPTIMIZATION_LEVEL
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_ERROR_LOG_BUFFER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_ERROR_LOG_BUFFER, __pyx_t_4) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":479
 *     CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES
 *     CU_JIT_ERROR_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER
 *     CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES             # <<<<<<<<<<<<<<
 *     CU_JIT_OPTIMIZATION_LEVEL = ccuda.CUjit_option_enum.CU_JIT_OPTIMIZATION_LEVEL
 *     CU_JIT_TARGET_FROM_CUCONTEXT = ccuda.CUjit_option_enum.CU_JIT_TARGET_FROM_CUCONTEXT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_ERROR_LOG_BUFFER_SIZE_BYT, __pyx_t_4) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":480
 *     CU_JIT_ERROR_LOG_BUFFER = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER
 *     CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES
 *     CU_JIT_OPTIMIZATION_LEVEL = ccuda.CUjit_option_enum.CU_JIT_OPTIMIZATION_LEVEL             # <<<<<<<<<<<<<<
 *     CU_JIT_TARGET_FROM_CUCONTEXT = ccuda.CUjit_option_enum.CU_JIT_TARGET_FROM_CUCONTEXT
 *     CU_JIT_TARGET = ccuda.CUjit_option_enum.CU_JIT_TARGET
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_OPTIMIZATION_LEVEL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_OPTIMIZATION_LEVEL, __pyx_t_4) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":481
 *     CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = ccuda.CUjit_option_enum.CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES
 *     CU_JIT_OPTIMIZATION_LEVEL = ccuda.CUjit_option_enum.CU_JIT_OPTIMIZATION_LEVEL
 *     CU_JIT_TARGET_FROM_CUCONTEXT = ccuda.CUjit_option_enum.CU_JIT_TARGET_FROM_CUCONTEXT             # <<<<<<<<<<<<<<
 *     CU_JIT_TARGET = ccuda.CUjit_option_enum.CU_JIT_TARGET
 *     CU_JIT_FALLBACK_STRATEGY = ccuda.CUjit_option_enum.CU_JIT_FALLBACK_STRATEGY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_TARGET_FROM_CUCONTEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_TARGET_FROM_CUCONTEXT, __pyx_t_4) < 0) __PYX_ERR(0, 481, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":482
 *     CU_JIT_OPTIMIZATION_LEVEL = ccuda.CUjit_option_enum.CU_JIT_OPTIMIZATION_LEVEL
 *     CU_JIT_TARGET_FROM_CUCONTEXT = ccuda.CUjit_option_enum.CU_JIT_TARGET_FROM_CUCONTEXT
 *     CU_JIT_TARGET = ccuda.CUjit_option_enum.CU_JIT_TARGET             # <<<<<<<<<<<<<<
 *     CU_JIT_FALLBACK_STRATEGY = ccuda.CUjit_option_enum.CU_JIT_FALLBACK_STRATEGY
 *     CU_JIT_GENERATE_DEBUG_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_DEBUG_INFO
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_TARGET); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_TARGET, __pyx_t_4) < 0) __PYX_ERR(0, 482, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":483
 *     CU_JIT_TARGET_FROM_CUCONTEXT = ccuda.CUjit_option_enum.CU_JIT_TARGET_FROM_CUCONTEXT
 *     CU_JIT_TARGET = ccuda.CUjit_option_enum.CU_JIT_TARGET
 *     CU_JIT_FALLBACK_STRATEGY = ccuda.CUjit_option_enum.CU_JIT_FALLBACK_STRATEGY             # <<<<<<<<<<<<<<
 *     CU_JIT_GENERATE_DEBUG_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_DEBUG_INFO
 *     CU_JIT_LOG_VERBOSE = ccuda.CUjit_option_enum.CU_JIT_LOG_VERBOSE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_FALLBACK_STRATEGY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_FALLBACK_STRATEGY, __pyx_t_4) < 0) __PYX_ERR(0, 483, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":484
 *     CU_JIT_TARGET = ccuda.CUjit_option_enum.CU_JIT_TARGET
 *     CU_JIT_FALLBACK_STRATEGY = ccuda.CUjit_option_enum.CU_JIT_FALLBACK_STRATEGY
 *     CU_JIT_GENERATE_DEBUG_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_DEBUG_INFO             # <<<<<<<<<<<<<<
 *     CU_JIT_LOG_VERBOSE = ccuda.CUjit_option_enum.CU_JIT_LOG_VERBOSE
 *     CU_JIT_GENERATE_LINE_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_LINE_INFO
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_GENERATE_DEBUG_INFO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_GENERATE_DEBUG_INFO, __pyx_t_4) < 0) __PYX_ERR(0, 484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":485
 *     CU_JIT_FALLBACK_STRATEGY = ccuda.CUjit_option_enum.CU_JIT_FALLBACK_STRATEGY
 *     CU_JIT_GENERATE_DEBUG_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_DEBUG_INFO
 *     CU_JIT_LOG_VERBOSE = ccuda.CUjit_option_enum.CU_JIT_LOG_VERBOSE             # <<<<<<<<<<<<<<
 *     CU_JIT_GENERATE_LINE_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_LINE_INFO
 *     CU_JIT_CACHE_MODE = ccuda.CUjit_option_enum.CU_JIT_CACHE_MODE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_LOG_VERBOSE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_LOG_VERBOSE, __pyx_t_4) < 0) __PYX_ERR(0, 485, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":486
 *     CU_JIT_GENERATE_DEBUG_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_DEBUG_INFO
 *     CU_JIT_LOG_VERBOSE = ccuda.CUjit_option_enum.CU_JIT_LOG_VERBOSE
 *     CU_JIT_GENERATE_LINE_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_LINE_INFO             # <<<<<<<<<<<<<<
 *     CU_JIT_CACHE_MODE = ccuda.CUjit_option_enum.CU_JIT_CACHE_MODE
 *     CU_JIT_NEW_SM3X_OPT = ccuda.CUjit_option_enum.CU_JIT_NEW_SM3X_OPT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_GENERATE_LINE_INFO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_GENERATE_LINE_INFO, __pyx_t_4) < 0) __PYX_ERR(0, 486, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":487
 *     CU_JIT_LOG_VERBOSE = ccuda.CUjit_option_enum.CU_JIT_LOG_VERBOSE
 *     CU_JIT_GENERATE_LINE_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_LINE_INFO
 *     CU_JIT_CACHE_MODE = ccuda.CUjit_option_enum.CU_JIT_CACHE_MODE             # <<<<<<<<<<<<<<
 *     CU_JIT_NEW_SM3X_OPT = ccuda.CUjit_option_enum.CU_JIT_NEW_SM3X_OPT
 *     CU_JIT_FAST_COMPILE = ccuda.CUjit_option_enum.CU_JIT_FAST_COMPILE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_CACHE_MODE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_CACHE_MODE, __pyx_t_4) < 0) __PYX_ERR(0, 487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":488
 *     CU_JIT_GENERATE_LINE_INFO = ccuda.CUjit_option_enum.CU_JIT_GENERATE_LINE_INFO
 *     CU_JIT_CACHE_MODE = ccuda.CUjit_option_enum.CU_JIT_CACHE_MODE
 *     CU_JIT_NEW_SM3X_OPT = ccuda.CUjit_option_enum.CU_JIT_NEW_SM3X_OPT             # <<<<<<<<<<<<<<
 *     CU_JIT_FAST_COMPILE = ccuda.CUjit_option_enum.CU_JIT_FAST_COMPILE
 *     CU_JIT_GLOBAL_SYMBOL_NAMES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_NAMES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_NEW_SM3X_OPT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_NEW_SM3X_OPT, __pyx_t_4) < 0) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":489
 *     CU_JIT_CACHE_MODE = ccuda.CUjit_option_enum.CU_JIT_CACHE_MODE
 *     CU_JIT_NEW_SM3X_OPT = ccuda.CUjit_option_enum.CU_JIT_NEW_SM3X_OPT
 *     CU_JIT_FAST_COMPILE = ccuda.CUjit_option_enum.CU_JIT_FAST_COMPILE             # <<<<<<<<<<<<<<
 *     CU_JIT_GLOBAL_SYMBOL_NAMES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_NAMES
 *     CU_JIT_GLOBAL_SYMBOL_ADDRESSES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_ADDRESSES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_FAST_COMPILE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_FAST_COMPILE, __pyx_t_4) < 0) __PYX_ERR(0, 489, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":490
 *     CU_JIT_NEW_SM3X_OPT = ccuda.CUjit_option_enum.CU_JIT_NEW_SM3X_OPT
 *     CU_JIT_FAST_COMPILE = ccuda.CUjit_option_enum.CU_JIT_FAST_COMPILE
 *     CU_JIT_GLOBAL_SYMBOL_NAMES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_NAMES             # <<<<<<<<<<<<<<
 *     CU_JIT_GLOBAL_SYMBOL_ADDRESSES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_ADDRESSES
 *     CU_JIT_GLOBAL_SYMBOL_COUNT = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_COUNT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_GLOBAL_SYMBOL_NAMES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_GLOBAL_SYMBOL_NAMES, __pyx_t_4) < 0) __PYX_ERR(0, 490, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":491
 *     CU_JIT_FAST_COMPILE = ccuda.CUjit_option_enum.CU_JIT_FAST_COMPILE
 *     CU_JIT_GLOBAL_SYMBOL_NAMES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_NAMES
 *     CU_JIT_GLOBAL_SYMBOL_ADDRESSES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_ADDRESSES             # <<<<<<<<<<<<<<
 *     CU_JIT_GLOBAL_SYMBOL_COUNT = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_COUNT
 *     CU_JIT_LTO = ccuda.CUjit_option_enum.CU_JIT_LTO
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_GLOBAL_SYMBOL_ADDRESSES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_GLOBAL_SYMBOL_ADDRESSES, __pyx_t_4) < 0) __PYX_ERR(0, 491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":492
 *     CU_JIT_GLOBAL_SYMBOL_NAMES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_NAMES
 *     CU_JIT_GLOBAL_SYMBOL_ADDRESSES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_ADDRESSES
 *     CU_JIT_GLOBAL_SYMBOL_COUNT = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_COUNT             # <<<<<<<<<<<<<<
 *     CU_JIT_LTO = ccuda.CUjit_option_enum.CU_JIT_LTO
 *     CU_JIT_FTZ = ccuda.CUjit_option_enum.CU_JIT_FTZ
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_GLOBAL_SYMBOL_COUNT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_GLOBAL_SYMBOL_COUNT, __pyx_t_4) < 0) __PYX_ERR(0, 492, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":493
 *     CU_JIT_GLOBAL_SYMBOL_ADDRESSES = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_ADDRESSES
 *     CU_JIT_GLOBAL_SYMBOL_COUNT = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_COUNT
 *     CU_JIT_LTO = ccuda.CUjit_option_enum.CU_JIT_LTO             # <<<<<<<<<<<<<<
 *     CU_JIT_FTZ = ccuda.CUjit_option_enum.CU_JIT_FTZ
 *     CU_JIT_PREC_DIV = ccuda.CUjit_option_enum.CU_JIT_PREC_DIV
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_LTO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_LTO, __pyx_t_4) < 0) __PYX_ERR(0, 493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":494
 *     CU_JIT_GLOBAL_SYMBOL_COUNT = ccuda.CUjit_option_enum.CU_JIT_GLOBAL_SYMBOL_COUNT
 *     CU_JIT_LTO = ccuda.CUjit_option_enum.CU_JIT_LTO
 *     CU_JIT_FTZ = ccuda.CUjit_option_enum.CU_JIT_FTZ             # <<<<<<<<<<<<<<
 *     CU_JIT_PREC_DIV = ccuda.CUjit_option_enum.CU_JIT_PREC_DIV
 *     CU_JIT_PREC_SQRT = ccuda.CUjit_option_enum.CU_JIT_PREC_SQRT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_FTZ); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_FTZ, __pyx_t_4) < 0) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":495
 *     CU_JIT_LTO = ccuda.CUjit_option_enum.CU_JIT_LTO
 *     CU_JIT_FTZ = ccuda.CUjit_option_enum.CU_JIT_FTZ
 *     CU_JIT_PREC_DIV = ccuda.CUjit_option_enum.CU_JIT_PREC_DIV             # <<<<<<<<<<<<<<
 *     CU_JIT_PREC_SQRT = ccuda.CUjit_option_enum.CU_JIT_PREC_SQRT
 *     CU_JIT_FMA = ccuda.CUjit_option_enum.CU_JIT_FMA
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_PREC_DIV); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_PREC_DIV, __pyx_t_4) < 0) __PYX_ERR(0, 495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":496
 *     CU_JIT_FTZ = ccuda.CUjit_option_enum.CU_JIT_FTZ
 *     CU_JIT_PREC_DIV = ccuda.CUjit_option_enum.CU_JIT_PREC_DIV
 *     CU_JIT_PREC_SQRT = ccuda.CUjit_option_enum.CU_JIT_PREC_SQRT             # <<<<<<<<<<<<<<
 *     CU_JIT_FMA = ccuda.CUjit_option_enum.CU_JIT_FMA
 *     CU_JIT_NUM_OPTIONS = ccuda.CUjit_option_enum.CU_JIT_NUM_OPTIONS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_PREC_SQRT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_PREC_SQRT, __pyx_t_4) < 0) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":497
 *     CU_JIT_PREC_DIV = ccuda.CUjit_option_enum.CU_JIT_PREC_DIV
 *     CU_JIT_PREC_SQRT = ccuda.CUjit_option_enum.CU_JIT_PREC_SQRT
 *     CU_JIT_FMA = ccuda.CUjit_option_enum.CU_JIT_FMA             # <<<<<<<<<<<<<<
 *     CU_JIT_NUM_OPTIONS = ccuda.CUjit_option_enum.CU_JIT_NUM_OPTIONS
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_FMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_FMA, __pyx_t_4) < 0) __PYX_ERR(0, 497, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":498
 *     CU_JIT_PREC_SQRT = ccuda.CUjit_option_enum.CU_JIT_PREC_SQRT
 *     CU_JIT_FMA = ccuda.CUjit_option_enum.CU_JIT_FMA
 *     CU_JIT_NUM_OPTIONS = ccuda.CUjit_option_enum.CU_JIT_NUM_OPTIONS             # <<<<<<<<<<<<<<
 * 
 * class CUjit_target(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(__pyx_e_4cuda_5ccuda_CU_JIT_NUM_OPTIONS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_NUM_OPTIONS, __pyx_t_4) < 0) __PYX_ERR(0, 498, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":469
 *     CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = ccuda.CUmem_range_attribute_enum.CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION
 * 
 * class CUjit_option(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Online compiler and linker options
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUjit_option, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUjit_option, __pyx_t_4) < 0) __PYX_ERR(0, 469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":500
 *     CU_JIT_NUM_OPTIONS = ccuda.CUjit_option_enum.CU_JIT_NUM_OPTIONS
 * 
 * class CUjit_target(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Online compilation targets
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUjit_target, __pyx_n_s_CUjit_target, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Online_compilation_targets); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":504
 *     Online compilation targets
 *     """
 *     CU_TARGET_COMPUTE_20 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_20             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_21 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_21
 *     CU_TARGET_COMPUTE_30 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_30
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_20); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_20, __pyx_t_4) < 0) __PYX_ERR(0, 504, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":505
 *     """
 *     CU_TARGET_COMPUTE_20 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_20
 *     CU_TARGET_COMPUTE_21 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_21             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_30 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_30
 *     CU_TARGET_COMPUTE_32 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_21, __pyx_t_4) < 0) __PYX_ERR(0, 505, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":506
 *     CU_TARGET_COMPUTE_20 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_20
 *     CU_TARGET_COMPUTE_21 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_21
 *     CU_TARGET_COMPUTE_30 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_30             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_32 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_32
 *     CU_TARGET_COMPUTE_35 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_35
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_30); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_30, __pyx_t_4) < 0) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":507
 *     CU_TARGET_COMPUTE_21 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_21
 *     CU_TARGET_COMPUTE_30 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_30
 *     CU_TARGET_COMPUTE_32 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_32             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_35 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_35
 *     CU_TARGET_COMPUTE_37 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_37
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_32, __pyx_t_4) < 0) __PYX_ERR(0, 507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":508
 *     CU_TARGET_COMPUTE_30 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_30
 *     CU_TARGET_COMPUTE_32 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_32
 *     CU_TARGET_COMPUTE_35 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_35             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_37 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_37
 *     CU_TARGET_COMPUTE_50 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_50
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_35); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_35, __pyx_t_4) < 0) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":509
 *     CU_TARGET_COMPUTE_32 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_32
 *     CU_TARGET_COMPUTE_35 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_35
 *     CU_TARGET_COMPUTE_37 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_37             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_50 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_50
 *     CU_TARGET_COMPUTE_52 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_52
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_37); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_37, __pyx_t_4) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":510
 *     CU_TARGET_COMPUTE_35 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_35
 *     CU_TARGET_COMPUTE_37 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_37
 *     CU_TARGET_COMPUTE_50 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_50             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_52 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_52
 *     CU_TARGET_COMPUTE_53 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_53
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_50); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_50, __pyx_t_4) < 0) __PYX_ERR(0, 510, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":511
 *     CU_TARGET_COMPUTE_37 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_37
 *     CU_TARGET_COMPUTE_50 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_50
 *     CU_TARGET_COMPUTE_52 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_52             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_53 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_53
 *     CU_TARGET_COMPUTE_60 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_60
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_52); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_52, __pyx_t_4) < 0) __PYX_ERR(0, 511, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":512
 *     CU_TARGET_COMPUTE_50 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_50
 *     CU_TARGET_COMPUTE_52 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_52
 *     CU_TARGET_COMPUTE_53 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_53             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_60 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_60
 *     CU_TARGET_COMPUTE_61 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_61
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_53); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_53, __pyx_t_4) < 0) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":513
 *     CU_TARGET_COMPUTE_52 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_52
 *     CU_TARGET_COMPUTE_53 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_53
 *     CU_TARGET_COMPUTE_60 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_60             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_61 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_61
 *     CU_TARGET_COMPUTE_62 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_62
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_60); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_60, __pyx_t_4) < 0) __PYX_ERR(0, 513, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":514
 *     CU_TARGET_COMPUTE_53 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_53
 *     CU_TARGET_COMPUTE_60 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_60
 *     CU_TARGET_COMPUTE_61 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_61             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_62 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_62
 *     CU_TARGET_COMPUTE_70 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_70
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_61); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_61, __pyx_t_4) < 0) __PYX_ERR(0, 514, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":515
 *     CU_TARGET_COMPUTE_60 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_60
 *     CU_TARGET_COMPUTE_61 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_61
 *     CU_TARGET_COMPUTE_62 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_62             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_70 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_70
 *     CU_TARGET_COMPUTE_72 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_72
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_62); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_62, __pyx_t_4) < 0) __PYX_ERR(0, 515, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":516
 *     CU_TARGET_COMPUTE_61 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_61
 *     CU_TARGET_COMPUTE_62 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_62
 *     CU_TARGET_COMPUTE_70 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_70             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_72 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_72
 *     CU_TARGET_COMPUTE_75 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_75
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_70); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_70, __pyx_t_4) < 0) __PYX_ERR(0, 516, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":517
 *     CU_TARGET_COMPUTE_62 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_62
 *     CU_TARGET_COMPUTE_70 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_70
 *     CU_TARGET_COMPUTE_72 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_72             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_75 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_75
 *     CU_TARGET_COMPUTE_80 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_80
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_72); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_72, __pyx_t_4) < 0) __PYX_ERR(0, 517, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":518
 *     CU_TARGET_COMPUTE_70 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_70
 *     CU_TARGET_COMPUTE_72 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_72
 *     CU_TARGET_COMPUTE_75 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_75             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_80 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_80
 *     CU_TARGET_COMPUTE_86 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_86
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_75); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_75, __pyx_t_4) < 0) __PYX_ERR(0, 518, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":519
 *     CU_TARGET_COMPUTE_72 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_72
 *     CU_TARGET_COMPUTE_75 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_75
 *     CU_TARGET_COMPUTE_80 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_80             # <<<<<<<<<<<<<<
 *     CU_TARGET_COMPUTE_86 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_86
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_80); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_80, __pyx_t_4) < 0) __PYX_ERR(0, 519, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":520
 *     CU_TARGET_COMPUTE_75 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_75
 *     CU_TARGET_COMPUTE_80 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_80
 *     CU_TARGET_COMPUTE_86 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_86             # <<<<<<<<<<<<<<
 * 
 * class CUjit_fallback(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(__pyx_e_4cuda_5ccuda_CU_TARGET_COMPUTE_86); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_TARGET_COMPUTE_86, __pyx_t_4) < 0) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":500
 *     CU_JIT_NUM_OPTIONS = ccuda.CUjit_option_enum.CU_JIT_NUM_OPTIONS
 * 
 * class CUjit_target(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Online compilation targets
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUjit_target, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUjit_target, __pyx_t_4) < 0) __PYX_ERR(0, 500, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":522
 *     CU_TARGET_COMPUTE_86 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_86
 * 
 * class CUjit_fallback(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Cubin matching fallback strategies
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUjit_fallback, __pyx_n_s_CUjit_fallback, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Cubin_matching_fallback_strateg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":526
 *     Cubin matching fallback strategies
 *     """
 *     CU_PREFER_PTX = ccuda.CUjit_fallback_enum.CU_PREFER_PTX             # <<<<<<<<<<<<<<
 *     CU_PREFER_BINARY = ccuda.CUjit_fallback_enum.CU_PREFER_BINARY
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_fallback_enum(__pyx_e_4cuda_5ccuda_CU_PREFER_PTX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_PREFER_PTX, __pyx_t_4) < 0) __PYX_ERR(0, 526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":527
 *     """
 *     CU_PREFER_PTX = ccuda.CUjit_fallback_enum.CU_PREFER_PTX
 *     CU_PREFER_BINARY = ccuda.CUjit_fallback_enum.CU_PREFER_BINARY             # <<<<<<<<<<<<<<
 * 
 * class CUjit_cacheMode(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_fallback_enum(__pyx_e_4cuda_5ccuda_CU_PREFER_BINARY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_PREFER_BINARY, __pyx_t_4) < 0) __PYX_ERR(0, 527, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":522
 *     CU_TARGET_COMPUTE_86 = ccuda.CUjit_target_enum.CU_TARGET_COMPUTE_86
 * 
 * class CUjit_fallback(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Cubin matching fallback strategies
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUjit_fallback, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUjit_fallback, __pyx_t_4) < 0) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":529
 *     CU_PREFER_BINARY = ccuda.CUjit_fallback_enum.CU_PREFER_BINARY
 * 
 * class CUjit_cacheMode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Caching modes for dlcm
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUjit_cacheMode, __pyx_n_s_CUjit_cacheMode, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Caching_modes_for_dlcm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":533
 *     Caching modes for dlcm
 *     """
 *     CU_JIT_CACHE_OPTION_NONE = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_NONE             # <<<<<<<<<<<<<<
 *     CU_JIT_CACHE_OPTION_CG = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CG
 *     CU_JIT_CACHE_OPTION_CA = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CA
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum(__pyx_e_4cuda_5ccuda_CU_JIT_CACHE_OPTION_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_CACHE_OPTION_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":534
 *     """
 *     CU_JIT_CACHE_OPTION_NONE = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_NONE
 *     CU_JIT_CACHE_OPTION_CG = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CG             # <<<<<<<<<<<<<<
 *     CU_JIT_CACHE_OPTION_CA = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CA
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum(__pyx_e_4cuda_5ccuda_CU_JIT_CACHE_OPTION_CG); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_CACHE_OPTION_CG, __pyx_t_4) < 0) __PYX_ERR(0, 534, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":535
 *     CU_JIT_CACHE_OPTION_NONE = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_NONE
 *     CU_JIT_CACHE_OPTION_CG = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CG
 *     CU_JIT_CACHE_OPTION_CA = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CA             # <<<<<<<<<<<<<<
 * 
 * class CUjitInputType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum(__pyx_e_4cuda_5ccuda_CU_JIT_CACHE_OPTION_CA); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_CACHE_OPTION_CA, __pyx_t_4) < 0) __PYX_ERR(0, 535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":529
 *     CU_PREFER_BINARY = ccuda.CUjit_fallback_enum.CU_PREFER_BINARY
 * 
 * class CUjit_cacheMode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Caching modes for dlcm
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUjit_cacheMode, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUjit_cacheMode, __pyx_t_4) < 0) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":537
 *     CU_JIT_CACHE_OPTION_CA = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CA
 * 
 * class CUjitInputType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Device code formats
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUjitInputType, __pyx_n_s_CUjitInputType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Device_code_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":541
 *     Device code formats
 *     """
 *     CU_JIT_INPUT_CUBIN = ccuda.CUjitInputType_enum.CU_JIT_INPUT_CUBIN             # <<<<<<<<<<<<<<
 *     CU_JIT_INPUT_PTX = ccuda.CUjitInputType_enum.CU_JIT_INPUT_PTX
 *     CU_JIT_INPUT_FATBINARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_FATBINARY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INPUT_CUBIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INPUT_CUBIN, __pyx_t_4) < 0) __PYX_ERR(0, 541, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":542
 *     """
 *     CU_JIT_INPUT_CUBIN = ccuda.CUjitInputType_enum.CU_JIT_INPUT_CUBIN
 *     CU_JIT_INPUT_PTX = ccuda.CUjitInputType_enum.CU_JIT_INPUT_PTX             # <<<<<<<<<<<<<<
 *     CU_JIT_INPUT_FATBINARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_FATBINARY
 *     CU_JIT_INPUT_OBJECT = ccuda.CUjitInputType_enum.CU_JIT_INPUT_OBJECT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INPUT_PTX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INPUT_PTX, __pyx_t_4) < 0) __PYX_ERR(0, 542, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":543
 *     CU_JIT_INPUT_CUBIN = ccuda.CUjitInputType_enum.CU_JIT_INPUT_CUBIN
 *     CU_JIT_INPUT_PTX = ccuda.CUjitInputType_enum.CU_JIT_INPUT_PTX
 *     CU_JIT_INPUT_FATBINARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_FATBINARY             # <<<<<<<<<<<<<<
 *     CU_JIT_INPUT_OBJECT = ccuda.CUjitInputType_enum.CU_JIT_INPUT_OBJECT
 *     CU_JIT_INPUT_LIBRARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_LIBRARY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INPUT_FATBINARY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INPUT_FATBINARY, __pyx_t_4) < 0) __PYX_ERR(0, 543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":544
 *     CU_JIT_INPUT_PTX = ccuda.CUjitInputType_enum.CU_JIT_INPUT_PTX
 *     CU_JIT_INPUT_FATBINARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_FATBINARY
 *     CU_JIT_INPUT_OBJECT = ccuda.CUjitInputType_enum.CU_JIT_INPUT_OBJECT             # <<<<<<<<<<<<<<
 *     CU_JIT_INPUT_LIBRARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_LIBRARY
 *     CU_JIT_INPUT_NVVM = ccuda.CUjitInputType_enum.CU_JIT_INPUT_NVVM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INPUT_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INPUT_OBJECT, __pyx_t_4) < 0) __PYX_ERR(0, 544, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":545
 *     CU_JIT_INPUT_FATBINARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_FATBINARY
 *     CU_JIT_INPUT_OBJECT = ccuda.CUjitInputType_enum.CU_JIT_INPUT_OBJECT
 *     CU_JIT_INPUT_LIBRARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_LIBRARY             # <<<<<<<<<<<<<<
 *     CU_JIT_INPUT_NVVM = ccuda.CUjitInputType_enum.CU_JIT_INPUT_NVVM
 *     CU_JIT_NUM_INPUT_TYPES = ccuda.CUjitInputType_enum.CU_JIT_NUM_INPUT_TYPES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INPUT_LIBRARY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INPUT_LIBRARY, __pyx_t_4) < 0) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":546
 *     CU_JIT_INPUT_OBJECT = ccuda.CUjitInputType_enum.CU_JIT_INPUT_OBJECT
 *     CU_JIT_INPUT_LIBRARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_LIBRARY
 *     CU_JIT_INPUT_NVVM = ccuda.CUjitInputType_enum.CU_JIT_INPUT_NVVM             # <<<<<<<<<<<<<<
 *     CU_JIT_NUM_INPUT_TYPES = ccuda.CUjitInputType_enum.CU_JIT_NUM_INPUT_TYPES
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_INPUT_NVVM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_INPUT_NVVM, __pyx_t_4) < 0) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":547
 *     CU_JIT_INPUT_LIBRARY = ccuda.CUjitInputType_enum.CU_JIT_INPUT_LIBRARY
 *     CU_JIT_INPUT_NVVM = ccuda.CUjitInputType_enum.CU_JIT_INPUT_NVVM
 *     CU_JIT_NUM_INPUT_TYPES = ccuda.CUjitInputType_enum.CU_JIT_NUM_INPUT_TYPES             # <<<<<<<<<<<<<<
 * 
 * class CUgraphicsRegisterFlags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(__pyx_e_4cuda_5ccuda_CU_JIT_NUM_INPUT_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_JIT_NUM_INPUT_TYPES, __pyx_t_4) < 0) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":537
 *     CU_JIT_CACHE_OPTION_CA = ccuda.CUjit_cacheMode_enum.CU_JIT_CACHE_OPTION_CA
 * 
 * class CUjitInputType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Device code formats
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUjitInputType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUjitInputType, __pyx_t_4) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":549
 *     CU_JIT_NUM_INPUT_TYPES = ccuda.CUjitInputType_enum.CU_JIT_NUM_INPUT_TYPES
 * 
 * class CUgraphicsRegisterFlags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags to register a graphics resource
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUgraphicsRegisterFlags, __pyx_n_s_CUgraphicsRegisterFlags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_to_register_a_graphics_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":553
 *     Flags to register a graphics resource
 *     """
 *     CU_GRAPHICS_REGISTER_FLAGS_NONE = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_NONE             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY
 *     CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 553, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":554
 *     """
 *     CU_GRAPHICS_REGISTER_FLAGS_NONE = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_NONE
 *     CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD
 *     CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_READ, __pyx_t_4) < 0) __PYX_ERR(0, 554, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":555
 *     CU_GRAPHICS_REGISTER_FLAGS_NONE = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_NONE
 *     CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY
 *     CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST
 *     CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_WRITE, __pyx_t_4) < 0) __PYX_ERR(0, 555, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":556
 *     CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY
 *     CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD
 *     CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_SURFA, __pyx_t_4) < 0) __PYX_ERR(0, 556, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":557
 *     CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD
 *     CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST
 *     CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER             # <<<<<<<<<<<<<<
 * 
 * class CUgraphicsMapResourceFlags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_REGISTER_FLAGS_TEXTU, __pyx_t_4) < 0) __PYX_ERR(0, 557, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":549
 *     CU_JIT_NUM_INPUT_TYPES = ccuda.CUjitInputType_enum.CU_JIT_NUM_INPUT_TYPES
 * 
 * class CUgraphicsRegisterFlags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags to register a graphics resource
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUgraphicsRegisterFlags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphicsRegisterFlags, __pyx_t_4) < 0) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":559
 *     CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER
 * 
 * class CUgraphicsMapResourceFlags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for mapping and unmapping interop resources
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUgraphicsMapResourceFlags, __pyx_n_s_CUgraphicsMapResourceFlags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_mapping_and_unmapping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":563
 *     Flags for mapping and unmapping interop resources
 *     """
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_N, __pyx_t_4) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":564
 *     """
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY             # <<<<<<<<<<<<<<
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_R, __pyx_t_4) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":565
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD             # <<<<<<<<<<<<<<
 * 
 * class CUarray_cubemap_face(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPHICS_MAP_RESOURCE_FLAGS_W, __pyx_t_4) < 0) __PYX_ERR(0, 565, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":559
 *     CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = ccuda.CUgraphicsRegisterFlags_enum.CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER
 * 
 * class CUgraphicsMapResourceFlags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for mapping and unmapping interop resources
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUgraphicsMapResourceFlags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphicsMapResourceFlags, __pyx_t_4) < 0) __PYX_ERR(0, 559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":567
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD
 * 
 * class CUarray_cubemap_face(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Array indices for cube faces
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUarray_cubemap_face, __pyx_n_s_CUarray_cubemap_face, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Array_indices_for_cube_faces); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":571
 *     Array indices for cube faces
 *     """
 *     CU_CUBEMAP_FACE_POSITIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_X             # <<<<<<<<<<<<<<
 *     CU_CUBEMAP_FACE_NEGATIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_X
 *     CU_CUBEMAP_FACE_POSITIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Y
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(__pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_POSITIVE_X); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_X, __pyx_t_4) < 0) __PYX_ERR(0, 571, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":572
 *     """
 *     CU_CUBEMAP_FACE_POSITIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_X
 *     CU_CUBEMAP_FACE_NEGATIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_X             # <<<<<<<<<<<<<<
 *     CU_CUBEMAP_FACE_POSITIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Y
 *     CU_CUBEMAP_FACE_NEGATIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Y
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(__pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_NEGATIVE_X); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_X, __pyx_t_4) < 0) __PYX_ERR(0, 572, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":573
 *     CU_CUBEMAP_FACE_POSITIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_X
 *     CU_CUBEMAP_FACE_NEGATIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_X
 *     CU_CUBEMAP_FACE_POSITIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Y             # <<<<<<<<<<<<<<
 *     CU_CUBEMAP_FACE_NEGATIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Y
 *     CU_CUBEMAP_FACE_POSITIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Z
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(__pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_POSITIVE_Y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_Y, __pyx_t_4) < 0) __PYX_ERR(0, 573, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":574
 *     CU_CUBEMAP_FACE_NEGATIVE_X = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_X
 *     CU_CUBEMAP_FACE_POSITIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Y
 *     CU_CUBEMAP_FACE_NEGATIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Y             # <<<<<<<<<<<<<<
 *     CU_CUBEMAP_FACE_POSITIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Z
 *     CU_CUBEMAP_FACE_NEGATIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Z
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(__pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_NEGATIVE_Y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_Y, __pyx_t_4) < 0) __PYX_ERR(0, 574, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":575
 *     CU_CUBEMAP_FACE_POSITIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Y
 *     CU_CUBEMAP_FACE_NEGATIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Y
 *     CU_CUBEMAP_FACE_POSITIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Z             # <<<<<<<<<<<<<<
 *     CU_CUBEMAP_FACE_NEGATIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Z
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(__pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_POSITIVE_Z); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CUBEMAP_FACE_POSITIVE_Z, __pyx_t_4) < 0) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":576
 *     CU_CUBEMAP_FACE_NEGATIVE_Y = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Y
 *     CU_CUBEMAP_FACE_POSITIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_POSITIVE_Z
 *     CU_CUBEMAP_FACE_NEGATIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Z             # <<<<<<<<<<<<<<
 * 
 * class CUlimit(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(__pyx_e_4cuda_5ccuda_CU_CUBEMAP_FACE_NEGATIVE_Z); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_CUBEMAP_FACE_NEGATIVE_Z, __pyx_t_4) < 0) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":567
 *     CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = ccuda.CUgraphicsMapResourceFlags_enum.CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD
 * 
 * class CUarray_cubemap_face(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Array indices for cube faces
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUarray_cubemap_face, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUarray_cubemap_face, __pyx_t_4) < 0) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":578
 *     CU_CUBEMAP_FACE_NEGATIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Z
 * 
 * class CUlimit(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Limits
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUlimit, __pyx_n_s_CUlimit, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Limits); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":582
 *     Limits
 *     """
 *     CU_LIMIT_STACK_SIZE = ccuda.CUlimit_enum.CU_LIMIT_STACK_SIZE             # <<<<<<<<<<<<<<
 *     CU_LIMIT_PRINTF_FIFO_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PRINTF_FIFO_SIZE
 *     CU_LIMIT_MALLOC_HEAP_SIZE = ccuda.CUlimit_enum.CU_LIMIT_MALLOC_HEAP_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_STACK_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_STACK_SIZE, __pyx_t_4) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":583
 *     """
 *     CU_LIMIT_STACK_SIZE = ccuda.CUlimit_enum.CU_LIMIT_STACK_SIZE
 *     CU_LIMIT_PRINTF_FIFO_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PRINTF_FIFO_SIZE             # <<<<<<<<<<<<<<
 *     CU_LIMIT_MALLOC_HEAP_SIZE = ccuda.CUlimit_enum.CU_LIMIT_MALLOC_HEAP_SIZE
 *     CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_PRINTF_FIFO_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_PRINTF_FIFO_SIZE, __pyx_t_4) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":584
 *     CU_LIMIT_STACK_SIZE = ccuda.CUlimit_enum.CU_LIMIT_STACK_SIZE
 *     CU_LIMIT_PRINTF_FIFO_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PRINTF_FIFO_SIZE
 *     CU_LIMIT_MALLOC_HEAP_SIZE = ccuda.CUlimit_enum.CU_LIMIT_MALLOC_HEAP_SIZE             # <<<<<<<<<<<<<<
 *     CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH
 *     CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_MALLOC_HEAP_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_MALLOC_HEAP_SIZE, __pyx_t_4) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":585
 *     CU_LIMIT_PRINTF_FIFO_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PRINTF_FIFO_SIZE
 *     CU_LIMIT_MALLOC_HEAP_SIZE = ccuda.CUlimit_enum.CU_LIMIT_MALLOC_HEAP_SIZE
 *     CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH             # <<<<<<<<<<<<<<
 *     CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT
 *     CU_LIMIT_MAX_L2_FETCH_GRANULARITY = ccuda.CUlimit_enum.CU_LIMIT_MAX_L2_FETCH_GRANULARITY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH, __pyx_t_4) < 0) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":586
 *     CU_LIMIT_MALLOC_HEAP_SIZE = ccuda.CUlimit_enum.CU_LIMIT_MALLOC_HEAP_SIZE
 *     CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH
 *     CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT             # <<<<<<<<<<<<<<
 *     CU_LIMIT_MAX_L2_FETCH_GRANULARITY = ccuda.CUlimit_enum.CU_LIMIT_MAX_L2_FETCH_GRANULARITY
 *     CU_LIMIT_PERSISTING_L2_CACHE_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PERSISTING_L2_CACHE_SIZE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_DEV_RUNTIME_PENDING_LAU, __pyx_t_4) < 0) __PYX_ERR(0, 586, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":587
 *     CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH
 *     CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT
 *     CU_LIMIT_MAX_L2_FETCH_GRANULARITY = ccuda.CUlimit_enum.CU_LIMIT_MAX_L2_FETCH_GRANULARITY             # <<<<<<<<<<<<<<
 *     CU_LIMIT_PERSISTING_L2_CACHE_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PERSISTING_L2_CACHE_SIZE
 *     CU_LIMIT_MAX = ccuda.CUlimit_enum.CU_LIMIT_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_MAX_L2_FETCH_GRANULARITY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_MAX_L2_FETCH_GRANULARIT, __pyx_t_4) < 0) __PYX_ERR(0, 587, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":588
 *     CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = ccuda.CUlimit_enum.CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT
 *     CU_LIMIT_MAX_L2_FETCH_GRANULARITY = ccuda.CUlimit_enum.CU_LIMIT_MAX_L2_FETCH_GRANULARITY
 *     CU_LIMIT_PERSISTING_L2_CACHE_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PERSISTING_L2_CACHE_SIZE             # <<<<<<<<<<<<<<
 *     CU_LIMIT_MAX = ccuda.CUlimit_enum.CU_LIMIT_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_PERSISTING_L2_CACHE_SIZE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_PERSISTING_L2_CACHE_SIZ, __pyx_t_4) < 0) __PYX_ERR(0, 588, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":589
 *     CU_LIMIT_MAX_L2_FETCH_GRANULARITY = ccuda.CUlimit_enum.CU_LIMIT_MAX_L2_FETCH_GRANULARITY
 *     CU_LIMIT_PERSISTING_L2_CACHE_SIZE = ccuda.CUlimit_enum.CU_LIMIT_PERSISTING_L2_CACHE_SIZE
 *     CU_LIMIT_MAX = ccuda.CUlimit_enum.CU_LIMIT_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUresourcetype(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(__pyx_e_4cuda_5ccuda_CU_LIMIT_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_LIMIT_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":578
 *     CU_CUBEMAP_FACE_NEGATIVE_Z = ccuda.CUarray_cubemap_face_enum.CU_CUBEMAP_FACE_NEGATIVE_Z
 * 
 * class CUlimit(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Limits
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUlimit, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUlimit, __pyx_t_4) < 0) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":591
 *     CU_LIMIT_MAX = ccuda.CUlimit_enum.CU_LIMIT_MAX
 * 
 * class CUresourcetype(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Resource types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUresourcetype, __pyx_n_s_CUresourcetype, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Resource_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":595
 *     Resource types
 *     """
 *     CU_RESOURCE_TYPE_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_ARRAY             # <<<<<<<<<<<<<<
 *     CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_MIPMAPPED_ARRAY
 *     CU_RESOURCE_TYPE_LINEAR = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_LINEAR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(__pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RESOURCE_TYPE_ARRAY, __pyx_t_4) < 0) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":596
 *     """
 *     CU_RESOURCE_TYPE_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_ARRAY
 *     CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_MIPMAPPED_ARRAY             # <<<<<<<<<<<<<<
 *     CU_RESOURCE_TYPE_LINEAR = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_LINEAR
 *     CU_RESOURCE_TYPE_PITCH2D = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_PITCH2D
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(__pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RESOURCE_TYPE_MIPMAPPED_ARRAY, __pyx_t_4) < 0) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":597
 *     CU_RESOURCE_TYPE_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_ARRAY
 *     CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_MIPMAPPED_ARRAY
 *     CU_RESOURCE_TYPE_LINEAR = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_LINEAR             # <<<<<<<<<<<<<<
 *     CU_RESOURCE_TYPE_PITCH2D = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_PITCH2D
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(__pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_LINEAR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RESOURCE_TYPE_LINEAR, __pyx_t_4) < 0) __PYX_ERR(0, 597, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":598
 *     CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_MIPMAPPED_ARRAY
 *     CU_RESOURCE_TYPE_LINEAR = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_LINEAR
 *     CU_RESOURCE_TYPE_PITCH2D = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_PITCH2D             # <<<<<<<<<<<<<<
 * 
 * class CUaccessProperty(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(__pyx_e_4cuda_5ccuda_CU_RESOURCE_TYPE_PITCH2D); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RESOURCE_TYPE_PITCH2D, __pyx_t_4) < 0) __PYX_ERR(0, 598, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":591
 *     CU_LIMIT_MAX = ccuda.CUlimit_enum.CU_LIMIT_MAX
 * 
 * class CUresourcetype(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Resource types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUresourcetype, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUresourcetype, __pyx_t_4) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":600
 *     CU_RESOURCE_TYPE_PITCH2D = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_PITCH2D
 * 
 * class CUaccessProperty(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies performance hint with ::CUaccessPolicyWindow for hitProp
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUaccessProperty, __pyx_n_s_CUaccessProperty, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Specifies_performance_hint_with); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":605
 *     and missProp members.
 *     """
 *     CU_ACCESS_PROPERTY_NORMAL = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_NORMAL             # <<<<<<<<<<<<<<
 *     CU_ACCESS_PROPERTY_STREAMING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_STREAMING
 *     CU_ACCESS_PROPERTY_PERSISTING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_PERSISTING
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(__pyx_e_4cuda_5ccuda_CU_ACCESS_PROPERTY_NORMAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_ACCESS_PROPERTY_NORMAL, __pyx_t_4) < 0) __PYX_ERR(0, 605, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":606
 *     """
 *     CU_ACCESS_PROPERTY_NORMAL = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_NORMAL
 *     CU_ACCESS_PROPERTY_STREAMING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_STREAMING             # <<<<<<<<<<<<<<
 *     CU_ACCESS_PROPERTY_PERSISTING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_PERSISTING
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(__pyx_e_4cuda_5ccuda_CU_ACCESS_PROPERTY_STREAMING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_ACCESS_PROPERTY_STREAMING, __pyx_t_4) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":607
 *     CU_ACCESS_PROPERTY_NORMAL = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_NORMAL
 *     CU_ACCESS_PROPERTY_STREAMING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_STREAMING
 *     CU_ACCESS_PROPERTY_PERSISTING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_PERSISTING             # <<<<<<<<<<<<<<
 * 
 * class CUgraphNodeType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(__pyx_e_4cuda_5ccuda_CU_ACCESS_PROPERTY_PERSISTING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_ACCESS_PROPERTY_PERSISTING, __pyx_t_4) < 0) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":600
 *     CU_RESOURCE_TYPE_PITCH2D = ccuda.CUresourcetype_enum.CU_RESOURCE_TYPE_PITCH2D
 * 
 * class CUaccessProperty(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies performance hint with ::CUaccessPolicyWindow for hitProp
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUaccessProperty, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUaccessProperty, __pyx_t_4) < 0) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":609
 *     CU_ACCESS_PROPERTY_PERSISTING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_PERSISTING
 * 
 * class CUgraphNodeType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Graph node types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUgraphNodeType, __pyx_n_s_CUgraphNodeType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Graph_node_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":613
 *     Graph node types
 *     """
 *     CU_GRAPH_NODE_TYPE_KERNEL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_KERNEL             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_MEMCPY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMCPY
 *     CU_GRAPH_NODE_TYPE_MEMSET = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMSET
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_KERNEL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_KERNEL, __pyx_t_4) < 0) __PYX_ERR(0, 613, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":614
 *     """
 *     CU_GRAPH_NODE_TYPE_KERNEL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_KERNEL
 *     CU_GRAPH_NODE_TYPE_MEMCPY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMCPY             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_MEMSET = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMSET
 *     CU_GRAPH_NODE_TYPE_HOST = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_HOST
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEMCPY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_MEMCPY, __pyx_t_4) < 0) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":615
 *     CU_GRAPH_NODE_TYPE_KERNEL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_KERNEL
 *     CU_GRAPH_NODE_TYPE_MEMCPY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMCPY
 *     CU_GRAPH_NODE_TYPE_MEMSET = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMSET             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_HOST = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_HOST
 *     CU_GRAPH_NODE_TYPE_GRAPH = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_GRAPH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEMSET); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_MEMSET, __pyx_t_4) < 0) __PYX_ERR(0, 615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":616
 *     CU_GRAPH_NODE_TYPE_MEMCPY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMCPY
 *     CU_GRAPH_NODE_TYPE_MEMSET = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMSET
 *     CU_GRAPH_NODE_TYPE_HOST = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_HOST             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_GRAPH = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_GRAPH
 *     CU_GRAPH_NODE_TYPE_EMPTY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EMPTY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_HOST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_HOST, __pyx_t_4) < 0) __PYX_ERR(0, 616, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":617
 *     CU_GRAPH_NODE_TYPE_MEMSET = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEMSET
 *     CU_GRAPH_NODE_TYPE_HOST = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_HOST
 *     CU_GRAPH_NODE_TYPE_GRAPH = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_GRAPH             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_EMPTY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EMPTY
 *     CU_GRAPH_NODE_TYPE_WAIT_EVENT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_WAIT_EVENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_GRAPH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_GRAPH, __pyx_t_4) < 0) __PYX_ERR(0, 617, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":618
 *     CU_GRAPH_NODE_TYPE_HOST = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_HOST
 *     CU_GRAPH_NODE_TYPE_GRAPH = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_GRAPH
 *     CU_GRAPH_NODE_TYPE_EMPTY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EMPTY             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_WAIT_EVENT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_WAIT_EVENT
 *     CU_GRAPH_NODE_TYPE_EVENT_RECORD = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EVENT_RECORD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EMPTY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_EMPTY, __pyx_t_4) < 0) __PYX_ERR(0, 618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":619
 *     CU_GRAPH_NODE_TYPE_GRAPH = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_GRAPH
 *     CU_GRAPH_NODE_TYPE_EMPTY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EMPTY
 *     CU_GRAPH_NODE_TYPE_WAIT_EVENT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_WAIT_EVENT             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_EVENT_RECORD = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EVENT_RECORD
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_WAIT_EVENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_WAIT_EVENT, __pyx_t_4) < 0) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":620
 *     CU_GRAPH_NODE_TYPE_EMPTY = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EMPTY
 *     CU_GRAPH_NODE_TYPE_WAIT_EVENT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_WAIT_EVENT
 *     CU_GRAPH_NODE_TYPE_EVENT_RECORD = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EVENT_RECORD             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EVENT_RECORD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_EVENT_RECORD, __pyx_t_4) < 0) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":621
 *     CU_GRAPH_NODE_TYPE_WAIT_EVENT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_WAIT_EVENT
 *     CU_GRAPH_NODE_TYPE_EVENT_RECORD = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EVENT_RECORD
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT
 *     CU_GRAPH_NODE_TYPE_MEM_ALLOC = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_ALLOC
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIG, __pyx_t_4) < 0) __PYX_ERR(0, 621, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":622
 *     CU_GRAPH_NODE_TYPE_EVENT_RECORD = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EVENT_RECORD
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_MEM_ALLOC = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_ALLOC
 *     CU_GRAPH_NODE_TYPE_MEM_FREE = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_FREE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAI, __pyx_t_4) < 0) __PYX_ERR(0, 622, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":623
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT
 *     CU_GRAPH_NODE_TYPE_MEM_ALLOC = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_ALLOC             # <<<<<<<<<<<<<<
 *     CU_GRAPH_NODE_TYPE_MEM_FREE = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_FREE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEM_ALLOC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_MEM_ALLOC, __pyx_t_4) < 0) __PYX_ERR(0, 623, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":624
 *     CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT
 *     CU_GRAPH_NODE_TYPE_MEM_ALLOC = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_ALLOC
 *     CU_GRAPH_NODE_TYPE_MEM_FREE = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_FREE             # <<<<<<<<<<<<<<
 * 
 * class CUsynchronizationPolicy(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_NODE_TYPE_MEM_FREE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_NODE_TYPE_MEM_FREE, __pyx_t_4) < 0) __PYX_ERR(0, 624, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":609
 *     CU_ACCESS_PROPERTY_PERSISTING = ccuda.CUaccessProperty_enum.CU_ACCESS_PROPERTY_PERSISTING
 * 
 * class CUgraphNodeType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Graph node types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUgraphNodeType, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphNodeType, __pyx_t_4) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":626
 *     CU_GRAPH_NODE_TYPE_MEM_FREE = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_FREE
 * 
 * class CUsynchronizationPolicy(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUsynchronizationPolicy, __pyx_n_s_CUsynchronizationPolicy, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s__879); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":630
 * 
 *     """
 *     CU_SYNC_POLICY_AUTO = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_AUTO             # <<<<<<<<<<<<<<
 *     CU_SYNC_POLICY_SPIN = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_SPIN
 *     CU_SYNC_POLICY_YIELD = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_YIELD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(__pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_AUTO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SYNC_POLICY_AUTO, __pyx_t_4) < 0) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":631
 *     """
 *     CU_SYNC_POLICY_AUTO = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_AUTO
 *     CU_SYNC_POLICY_SPIN = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_SPIN             # <<<<<<<<<<<<<<
 *     CU_SYNC_POLICY_YIELD = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_YIELD
 *     CU_SYNC_POLICY_BLOCKING_SYNC = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_BLOCKING_SYNC
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(__pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_SPIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SYNC_POLICY_SPIN, __pyx_t_4) < 0) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":632
 *     CU_SYNC_POLICY_AUTO = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_AUTO
 *     CU_SYNC_POLICY_SPIN = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_SPIN
 *     CU_SYNC_POLICY_YIELD = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_YIELD             # <<<<<<<<<<<<<<
 *     CU_SYNC_POLICY_BLOCKING_SYNC = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_BLOCKING_SYNC
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(__pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_YIELD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SYNC_POLICY_YIELD, __pyx_t_4) < 0) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":633
 *     CU_SYNC_POLICY_SPIN = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_SPIN
 *     CU_SYNC_POLICY_YIELD = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_YIELD
 *     CU_SYNC_POLICY_BLOCKING_SYNC = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_BLOCKING_SYNC             # <<<<<<<<<<<<<<
 * 
 * class CUkernelNodeAttrID(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(__pyx_e_4cuda_5ccuda_CU_SYNC_POLICY_BLOCKING_SYNC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_SYNC_POLICY_BLOCKING_SYNC, __pyx_t_4) < 0) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":626
 *     CU_GRAPH_NODE_TYPE_MEM_FREE = ccuda.CUgraphNodeType_enum.CU_GRAPH_NODE_TYPE_MEM_FREE
 * 
 * class CUsynchronizationPolicy(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUsynchronizationPolicy, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUsynchronizationPolicy, __pyx_t_4) < 0) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":635
 *     CU_SYNC_POLICY_BLOCKING_SYNC = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_BLOCKING_SYNC
 * 
 * class CUkernelNodeAttrID(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Graph kernel node Attributes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUkernelNodeAttrID, __pyx_n_s_CUkernelNodeAttrID, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Graph_kernel_node_Attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":639
 *     Graph kernel node Attributes
 *     """
 *     CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = ccuda.CUkernelNodeAttrID_enum.CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW             # <<<<<<<<<<<<<<
 *     CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = ccuda.CUkernelNodeAttrID_enum.CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(__pyx_e_4cuda_5ccuda_CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_KERNEL_NODE_ATTRIBUTE_ACCESS, __pyx_t_4) < 0) __PYX_ERR(0, 639, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":640
 *     """
 *     CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = ccuda.CUkernelNodeAttrID_enum.CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW
 *     CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = ccuda.CUkernelNodeAttrID_enum.CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE             # <<<<<<<<<<<<<<
 * 
 * class CUstreamCaptureStatus(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(__pyx_e_4cuda_5ccuda_CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_KERNEL_NODE_ATTRIBUTE_COOPERA, __pyx_t_4) < 0) __PYX_ERR(0, 640, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":635
 *     CU_SYNC_POLICY_BLOCKING_SYNC = ccuda.CUsynchronizationPolicy_enum.CU_SYNC_POLICY_BLOCKING_SYNC
 * 
 * class CUkernelNodeAttrID(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Graph kernel node Attributes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUkernelNodeAttrID, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUkernelNodeAttrID, __pyx_t_4) < 0) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":642
 *     CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = ccuda.CUkernelNodeAttrID_enum.CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE
 * 
 * class CUstreamCaptureStatus(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Possible stream capture statuses returned by cuStreamIsCapturing
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUstreamCaptureStatus, __pyx_n_s_CUstreamCaptureStatus, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Possible_stream_capture_statuse); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":646
 *     Possible stream capture statuses returned by cuStreamIsCapturing
 *     """
 *     CU_STREAM_CAPTURE_STATUS_NONE = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_NONE             # <<<<<<<<<<<<<<
 *     CU_STREAM_CAPTURE_STATUS_ACTIVE = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_ACTIVE
 *     CU_STREAM_CAPTURE_STATUS_INVALIDATED = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_INVALIDATED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_STATUS_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_CAPTURE_STATUS_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":647
 *     """
 *     CU_STREAM_CAPTURE_STATUS_NONE = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_NONE
 *     CU_STREAM_CAPTURE_STATUS_ACTIVE = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_ACTIVE             # <<<<<<<<<<<<<<
 *     CU_STREAM_CAPTURE_STATUS_INVALIDATED = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_INVALIDATED
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_STATUS_ACTIVE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_CAPTURE_STATUS_ACTIVE, __pyx_t_4) < 0) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":648
 *     CU_STREAM_CAPTURE_STATUS_NONE = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_NONE
 *     CU_STREAM_CAPTURE_STATUS_ACTIVE = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_ACTIVE
 *     CU_STREAM_CAPTURE_STATUS_INVALIDATED = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_INVALIDATED             # <<<<<<<<<<<<<<
 * 
 * class CUstreamCaptureMode(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_STATUS_INVALIDATED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_CAPTURE_STATUS_INVALID, __pyx_t_4) < 0) __PYX_ERR(0, 648, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":642
 *     CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = ccuda.CUkernelNodeAttrID_enum.CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE
 * 
 * class CUstreamCaptureStatus(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Possible stream capture statuses returned by cuStreamIsCapturing
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUstreamCaptureStatus, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamCaptureStatus, __pyx_t_4) < 0) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":650
 *     CU_STREAM_CAPTURE_STATUS_INVALIDATED = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_INVALIDATED
 * 
 * class CUstreamCaptureMode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Possible modes for stream capture thread interactions. For more
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUstreamCaptureMode, __pyx_n_s_CUstreamCaptureMode, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Possible_modes_for_stream_captu); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":656
 *     cuThreadExchangeStreamCaptureMode
 *     """
 *     CU_STREAM_CAPTURE_MODE_GLOBAL = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_GLOBAL             # <<<<<<<<<<<<<<
 *     CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_THREAD_LOCAL
 *     CU_STREAM_CAPTURE_MODE_RELAXED = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_RELAXED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_MODE_GLOBAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 656, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_CAPTURE_MODE_GLOBAL, __pyx_t_4) < 0) __PYX_ERR(0, 656, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":657
 *     """
 *     CU_STREAM_CAPTURE_MODE_GLOBAL = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_GLOBAL
 *     CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_THREAD_LOCAL             # <<<<<<<<<<<<<<
 *     CU_STREAM_CAPTURE_MODE_RELAXED = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_RELAXED
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_MODE_THREAD_LOCAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_CAPTURE_MODE_THREAD_LO, __pyx_t_4) < 0) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":658
 *     CU_STREAM_CAPTURE_MODE_GLOBAL = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_GLOBAL
 *     CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_THREAD_LOCAL
 *     CU_STREAM_CAPTURE_MODE_RELAXED = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_RELAXED             # <<<<<<<<<<<<<<
 * 
 * class CUstreamAttrID(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_CAPTURE_MODE_RELAXED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_CAPTURE_MODE_RELAXED, __pyx_t_4) < 0) __PYX_ERR(0, 658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":650
 *     CU_STREAM_CAPTURE_STATUS_INVALIDATED = ccuda.CUstreamCaptureStatus_enum.CU_STREAM_CAPTURE_STATUS_INVALIDATED
 * 
 * class CUstreamCaptureMode(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Possible modes for stream capture thread interactions. For more
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUstreamCaptureMode, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamCaptureMode, __pyx_t_4) < 0) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":660
 *     CU_STREAM_CAPTURE_MODE_RELAXED = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_RELAXED
 * 
 * class CUstreamAttrID(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Stream Attributes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUstreamAttrID, __pyx_n_s_CUstreamAttrID, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Stream_Attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":664
 *     Stream Attributes
 *     """
 *     CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = ccuda.CUstreamAttrID_enum.CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW             # <<<<<<<<<<<<<<
 *     CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = ccuda.CUstreamAttrID_enum.CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_ATTRIBUTE_ACCESS_POLIC, __pyx_t_4) < 0) __PYX_ERR(0, 664, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":665
 *     """
 *     CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = ccuda.CUstreamAttrID_enum.CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW
 *     CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = ccuda.CUstreamAttrID_enum.CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY             # <<<<<<<<<<<<<<
 * 
 * class CUdriverProcAddress_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(__pyx_e_4cuda_5ccuda_CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_STREAM_ATTRIBUTE_SYNCHRONIZAT, __pyx_t_4) < 0) __PYX_ERR(0, 665, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":660
 *     CU_STREAM_CAPTURE_MODE_RELAXED = ccuda.CUstreamCaptureMode_enum.CU_STREAM_CAPTURE_MODE_RELAXED
 * 
 * class CUstreamAttrID(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Stream Attributes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUstreamAttrID, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUstreamAttrID, __pyx_t_4) < 0) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":667
 *     CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = ccuda.CUstreamAttrID_enum.CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY
 * 
 * class CUdriverProcAddress_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags to specify search options. For more details see
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUdriverProcAddress_flags, __pyx_n_s_CUdriverProcAddress_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_to_specify_search_options); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":672
 *     cuGetProcAddress
 *     """
 *     CU_GET_PROC_ADDRESS_DEFAULT = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_DEFAULT             # <<<<<<<<<<<<<<
 *     CU_GET_PROC_ADDRESS_LEGACY_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_LEGACY_STREAM
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum(__pyx_e_4cuda_5ccuda_CU_GET_PROC_ADDRESS_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 672, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GET_PROC_ADDRESS_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(0, 672, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":673
 *     """
 *     CU_GET_PROC_ADDRESS_DEFAULT = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_DEFAULT
 *     CU_GET_PROC_ADDRESS_LEGACY_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_LEGACY_STREAM             # <<<<<<<<<<<<<<
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum(__pyx_e_4cuda_5ccuda_CU_GET_PROC_ADDRESS_LEGACY_STREAM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GET_PROC_ADDRESS_LEGACY_STREA, __pyx_t_4) < 0) __PYX_ERR(0, 673, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":674
 *     CU_GET_PROC_ADDRESS_DEFAULT = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_DEFAULT
 *     CU_GET_PROC_ADDRESS_LEGACY_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_LEGACY_STREAM
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM             # <<<<<<<<<<<<<<
 * 
 * class CUexecAffinityType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum(__pyx_e_4cuda_5ccuda_CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GET_PROC_ADDRESS_PER_THREAD_D, __pyx_t_4) < 0) __PYX_ERR(0, 674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":667
 *     CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = ccuda.CUstreamAttrID_enum.CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY
 * 
 * class CUdriverProcAddress_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags to specify search options. For more details see
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUdriverProcAddress_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUdriverProcAddress_flags, __pyx_t_4) < 0) __PYX_ERR(0, 667, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":676
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM
 * 
 * class CUexecAffinityType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Execution Affinity Types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUexecAffinityType, __pyx_n_s_CUexecAffinityType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Execution_Affinity_Types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":680
 *     Execution Affinity Types
 *     """
 *     CU_EXEC_AFFINITY_TYPE_SM_COUNT = ccuda.CUexecAffinityType_enum.CU_EXEC_AFFINITY_TYPE_SM_COUNT             # <<<<<<<<<<<<<<
 *     CU_EXEC_AFFINITY_TYPE_MAX = ccuda.CUexecAffinityType_enum.CU_EXEC_AFFINITY_TYPE_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(__pyx_e_4cuda_5ccuda_CU_EXEC_AFFINITY_TYPE_SM_COUNT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXEC_AFFINITY_TYPE_SM_COUNT, __pyx_t_4) < 0) __PYX_ERR(0, 680, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":681
 *     """
 *     CU_EXEC_AFFINITY_TYPE_SM_COUNT = ccuda.CUexecAffinityType_enum.CU_EXEC_AFFINITY_TYPE_SM_COUNT
 *     CU_EXEC_AFFINITY_TYPE_MAX = ccuda.CUexecAffinityType_enum.CU_EXEC_AFFINITY_TYPE_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUresult(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(__pyx_e_4cuda_5ccuda_CU_EXEC_AFFINITY_TYPE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXEC_AFFINITY_TYPE_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 681, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":676
 *     CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = ccuda.CUdriverProcAddress_flags_enum.CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM
 * 
 * class CUexecAffinityType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Execution Affinity Types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUexecAffinityType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUexecAffinityType, __pyx_t_4) < 0) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":683
 *     CU_EXEC_AFFINITY_TYPE_MAX = ccuda.CUexecAffinityType_enum.CU_EXEC_AFFINITY_TYPE_MAX
 * 
 * class CUresult(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Error codes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUresult, __pyx_n_s_CUresult, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Error_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":687
 *     Error codes
 *     """
 *     CUDA_SUCCESS = ccuda.cudaError_enum.CUDA_SUCCESS             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_VALUE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_VALUE
 *     CUDA_ERROR_OUT_OF_MEMORY = ccuda.cudaError_enum.CUDA_ERROR_OUT_OF_MEMORY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_SUCCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_SUCCESS, __pyx_t_4) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":688
 *     """
 *     CUDA_SUCCESS = ccuda.cudaError_enum.CUDA_SUCCESS
 *     CUDA_ERROR_INVALID_VALUE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_VALUE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_OUT_OF_MEMORY = ccuda.cudaError_enum.CUDA_ERROR_OUT_OF_MEMORY
 *     CUDA_ERROR_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_NOT_INITIALIZED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_VALUE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_VALUE, __pyx_t_4) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":689
 *     CUDA_SUCCESS = ccuda.cudaError_enum.CUDA_SUCCESS
 *     CUDA_ERROR_INVALID_VALUE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_VALUE
 *     CUDA_ERROR_OUT_OF_MEMORY = ccuda.cudaError_enum.CUDA_ERROR_OUT_OF_MEMORY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_NOT_INITIALIZED
 *     CUDA_ERROR_DEINITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_DEINITIALIZED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_OUT_OF_MEMORY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 689, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_OUT_OF_MEMORY, __pyx_t_4) < 0) __PYX_ERR(0, 689, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":690
 *     CUDA_ERROR_INVALID_VALUE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_VALUE
 *     CUDA_ERROR_OUT_OF_MEMORY = ccuda.cudaError_enum.CUDA_ERROR_OUT_OF_MEMORY
 *     CUDA_ERROR_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_NOT_INITIALIZED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_DEINITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_DEINITIALIZED
 *     CUDA_ERROR_PROFILER_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_DISABLED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_INITIALIZED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_INITIALIZED, __pyx_t_4) < 0) __PYX_ERR(0, 690, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":691
 *     CUDA_ERROR_OUT_OF_MEMORY = ccuda.cudaError_enum.CUDA_ERROR_OUT_OF_MEMORY
 *     CUDA_ERROR_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_NOT_INITIALIZED
 *     CUDA_ERROR_DEINITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_DEINITIALIZED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PROFILER_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_DISABLED
 *     CUDA_ERROR_PROFILER_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_NOT_INITIALIZED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_DEINITIALIZED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_DEINITIALIZED, __pyx_t_4) < 0) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":692
 *     CUDA_ERROR_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_NOT_INITIALIZED
 *     CUDA_ERROR_DEINITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_DEINITIALIZED
 *     CUDA_ERROR_PROFILER_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_DISABLED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PROFILER_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_NOT_INITIALIZED
 *     CUDA_ERROR_PROFILER_ALREADY_STARTED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STARTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_DISABLED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 692, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PROFILER_DISABLED, __pyx_t_4) < 0) __PYX_ERR(0, 692, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":693
 *     CUDA_ERROR_DEINITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_DEINITIALIZED
 *     CUDA_ERROR_PROFILER_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_DISABLED
 *     CUDA_ERROR_PROFILER_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_NOT_INITIALIZED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PROFILER_ALREADY_STARTED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STARTED
 *     CUDA_ERROR_PROFILER_ALREADY_STOPPED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STOPPED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_NOT_INITIALIZED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PROFILER_NOT_INITIALI, __pyx_t_4) < 0) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":694
 *     CUDA_ERROR_PROFILER_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_DISABLED
 *     CUDA_ERROR_PROFILER_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_NOT_INITIALIZED
 *     CUDA_ERROR_PROFILER_ALREADY_STARTED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STARTED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PROFILER_ALREADY_STOPPED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STOPPED
 *     CUDA_ERROR_STUB_LIBRARY = ccuda.cudaError_enum.CUDA_ERROR_STUB_LIBRARY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_ALREADY_STARTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PROFILER_ALREADY_STAR, __pyx_t_4) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":695
 *     CUDA_ERROR_PROFILER_NOT_INITIALIZED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_NOT_INITIALIZED
 *     CUDA_ERROR_PROFILER_ALREADY_STARTED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STARTED
 *     CUDA_ERROR_PROFILER_ALREADY_STOPPED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STOPPED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STUB_LIBRARY = ccuda.cudaError_enum.CUDA_ERROR_STUB_LIBRARY
 *     CUDA_ERROR_NO_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_NO_DEVICE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PROFILER_ALREADY_STOPPED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PROFILER_ALREADY_STOP, __pyx_t_4) < 0) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":696
 *     CUDA_ERROR_PROFILER_ALREADY_STARTED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STARTED
 *     CUDA_ERROR_PROFILER_ALREADY_STOPPED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STOPPED
 *     CUDA_ERROR_STUB_LIBRARY = ccuda.cudaError_enum.CUDA_ERROR_STUB_LIBRARY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NO_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_NO_DEVICE
 *     CUDA_ERROR_INVALID_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_DEVICE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STUB_LIBRARY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STUB_LIBRARY, __pyx_t_4) < 0) __PYX_ERR(0, 696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":697
 *     CUDA_ERROR_PROFILER_ALREADY_STOPPED = ccuda.cudaError_enum.CUDA_ERROR_PROFILER_ALREADY_STOPPED
 *     CUDA_ERROR_STUB_LIBRARY = ccuda.cudaError_enum.CUDA_ERROR_STUB_LIBRARY
 *     CUDA_ERROR_NO_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_NO_DEVICE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_DEVICE
 *     CUDA_ERROR_DEVICE_NOT_LICENSED = ccuda.cudaError_enum.CUDA_ERROR_DEVICE_NOT_LICENSED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NO_DEVICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NO_DEVICE, __pyx_t_4) < 0) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":698
 *     CUDA_ERROR_STUB_LIBRARY = ccuda.cudaError_enum.CUDA_ERROR_STUB_LIBRARY
 *     CUDA_ERROR_NO_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_NO_DEVICE
 *     CUDA_ERROR_INVALID_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_DEVICE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_DEVICE_NOT_LICENSED = ccuda.cudaError_enum.CUDA_ERROR_DEVICE_NOT_LICENSED
 *     CUDA_ERROR_INVALID_IMAGE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_IMAGE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_DEVICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_DEVICE, __pyx_t_4) < 0) __PYX_ERR(0, 698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":699
 *     CUDA_ERROR_NO_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_NO_DEVICE
 *     CUDA_ERROR_INVALID_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_DEVICE
 *     CUDA_ERROR_DEVICE_NOT_LICENSED = ccuda.cudaError_enum.CUDA_ERROR_DEVICE_NOT_LICENSED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_IMAGE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_IMAGE
 *     CUDA_ERROR_INVALID_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_CONTEXT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_DEVICE_NOT_LICENSED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_DEVICE_NOT_LICENSED, __pyx_t_4) < 0) __PYX_ERR(0, 699, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":700
 *     CUDA_ERROR_INVALID_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_DEVICE
 *     CUDA_ERROR_DEVICE_NOT_LICENSED = ccuda.cudaError_enum.CUDA_ERROR_DEVICE_NOT_LICENSED
 *     CUDA_ERROR_INVALID_IMAGE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_IMAGE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_CONTEXT
 *     CUDA_ERROR_CONTEXT_ALREADY_CURRENT = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_CURRENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_IMAGE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_IMAGE, __pyx_t_4) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":701
 *     CUDA_ERROR_DEVICE_NOT_LICENSED = ccuda.cudaError_enum.CUDA_ERROR_DEVICE_NOT_LICENSED
 *     CUDA_ERROR_INVALID_IMAGE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_IMAGE
 *     CUDA_ERROR_INVALID_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_CONTEXT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_CONTEXT_ALREADY_CURRENT = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_CURRENT
 *     CUDA_ERROR_MAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MAP_FAILED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_CONTEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_CONTEXT, __pyx_t_4) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":702
 *     CUDA_ERROR_INVALID_IMAGE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_IMAGE
 *     CUDA_ERROR_INVALID_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_CONTEXT
 *     CUDA_ERROR_CONTEXT_ALREADY_CURRENT = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_CURRENT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MAP_FAILED
 *     CUDA_ERROR_UNMAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_UNMAP_FAILED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_CONTEXT_ALREADY_CURRENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_CONTEXT_ALREADY_CURRE, __pyx_t_4) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":703
 *     CUDA_ERROR_INVALID_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_CONTEXT
 *     CUDA_ERROR_CONTEXT_ALREADY_CURRENT = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_CURRENT
 *     CUDA_ERROR_MAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MAP_FAILED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_UNMAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_UNMAP_FAILED
 *     CUDA_ERROR_ARRAY_IS_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ARRAY_IS_MAPPED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MAP_FAILED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MAP_FAILED, __pyx_t_4) < 0) __PYX_ERR(0, 703, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":704
 *     CUDA_ERROR_CONTEXT_ALREADY_CURRENT = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_CURRENT
 *     CUDA_ERROR_MAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MAP_FAILED
 *     CUDA_ERROR_UNMAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_UNMAP_FAILED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ARRAY_IS_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ARRAY_IS_MAPPED
 *     CUDA_ERROR_ALREADY_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_MAPPED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_UNMAP_FAILED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_UNMAP_FAILED, __pyx_t_4) < 0) __PYX_ERR(0, 704, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":705
 *     CUDA_ERROR_MAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MAP_FAILED
 *     CUDA_ERROR_UNMAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_UNMAP_FAILED
 *     CUDA_ERROR_ARRAY_IS_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ARRAY_IS_MAPPED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ALREADY_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_MAPPED
 *     CUDA_ERROR_NO_BINARY_FOR_GPU = ccuda.cudaError_enum.CUDA_ERROR_NO_BINARY_FOR_GPU
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ARRAY_IS_MAPPED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ARRAY_IS_MAPPED, __pyx_t_4) < 0) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":706
 *     CUDA_ERROR_UNMAP_FAILED = ccuda.cudaError_enum.CUDA_ERROR_UNMAP_FAILED
 *     CUDA_ERROR_ARRAY_IS_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ARRAY_IS_MAPPED
 *     CUDA_ERROR_ALREADY_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_MAPPED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NO_BINARY_FOR_GPU = ccuda.cudaError_enum.CUDA_ERROR_NO_BINARY_FOR_GPU
 *     CUDA_ERROR_ALREADY_ACQUIRED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_ACQUIRED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ALREADY_MAPPED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ALREADY_MAPPED, __pyx_t_4) < 0) __PYX_ERR(0, 706, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":707
 *     CUDA_ERROR_ARRAY_IS_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ARRAY_IS_MAPPED
 *     CUDA_ERROR_ALREADY_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_MAPPED
 *     CUDA_ERROR_NO_BINARY_FOR_GPU = ccuda.cudaError_enum.CUDA_ERROR_NO_BINARY_FOR_GPU             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ALREADY_ACQUIRED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_ACQUIRED
 *     CUDA_ERROR_NOT_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NO_BINARY_FOR_GPU); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NO_BINARY_FOR_GPU, __pyx_t_4) < 0) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":708
 *     CUDA_ERROR_ALREADY_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_MAPPED
 *     CUDA_ERROR_NO_BINARY_FOR_GPU = ccuda.cudaError_enum.CUDA_ERROR_NO_BINARY_FOR_GPU
 *     CUDA_ERROR_ALREADY_ACQUIRED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_ACQUIRED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED
 *     CUDA_ERROR_NOT_MAPPED_AS_ARRAY = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_ARRAY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ALREADY_ACQUIRED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ALREADY_ACQUIRED, __pyx_t_4) < 0) __PYX_ERR(0, 708, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":709
 *     CUDA_ERROR_NO_BINARY_FOR_GPU = ccuda.cudaError_enum.CUDA_ERROR_NO_BINARY_FOR_GPU
 *     CUDA_ERROR_ALREADY_ACQUIRED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_ACQUIRED
 *     CUDA_ERROR_NOT_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_MAPPED_AS_ARRAY = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_ARRAY
 *     CUDA_ERROR_NOT_MAPPED_AS_POINTER = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_POINTER
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_MAPPED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_MAPPED, __pyx_t_4) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":710
 *     CUDA_ERROR_ALREADY_ACQUIRED = ccuda.cudaError_enum.CUDA_ERROR_ALREADY_ACQUIRED
 *     CUDA_ERROR_NOT_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED
 *     CUDA_ERROR_NOT_MAPPED_AS_ARRAY = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_ARRAY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_MAPPED_AS_POINTER = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_POINTER
 *     CUDA_ERROR_ECC_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_ECC_UNCORRECTABLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_MAPPED_AS_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_MAPPED_AS_ARRAY, __pyx_t_4) < 0) __PYX_ERR(0, 710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":711
 *     CUDA_ERROR_NOT_MAPPED = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED
 *     CUDA_ERROR_NOT_MAPPED_AS_ARRAY = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_ARRAY
 *     CUDA_ERROR_NOT_MAPPED_AS_POINTER = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_POINTER             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ECC_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_ECC_UNCORRECTABLE
 *     CUDA_ERROR_UNSUPPORTED_LIMIT = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_LIMIT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_MAPPED_AS_POINTER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_MAPPED_AS_POINTER, __pyx_t_4) < 0) __PYX_ERR(0, 711, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":712
 *     CUDA_ERROR_NOT_MAPPED_AS_ARRAY = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_ARRAY
 *     CUDA_ERROR_NOT_MAPPED_AS_POINTER = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_POINTER
 *     CUDA_ERROR_ECC_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_ECC_UNCORRECTABLE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_UNSUPPORTED_LIMIT = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_LIMIT
 *     CUDA_ERROR_CONTEXT_ALREADY_IN_USE = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_IN_USE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ECC_UNCORRECTABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ECC_UNCORRECTABLE, __pyx_t_4) < 0) __PYX_ERR(0, 712, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":713
 *     CUDA_ERROR_NOT_MAPPED_AS_POINTER = ccuda.cudaError_enum.CUDA_ERROR_NOT_MAPPED_AS_POINTER
 *     CUDA_ERROR_ECC_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_ECC_UNCORRECTABLE
 *     CUDA_ERROR_UNSUPPORTED_LIMIT = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_LIMIT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_CONTEXT_ALREADY_IN_USE = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_IN_USE
 *     CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_UNSUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_UNSUPPORTED_LIMIT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_UNSUPPORTED_LIMIT, __pyx_t_4) < 0) __PYX_ERR(0, 713, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":714
 *     CUDA_ERROR_ECC_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_ECC_UNCORRECTABLE
 *     CUDA_ERROR_UNSUPPORTED_LIMIT = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_LIMIT
 *     CUDA_ERROR_CONTEXT_ALREADY_IN_USE = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_IN_USE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_UNSUPPORTED
 *     CUDA_ERROR_INVALID_PTX = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PTX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_CONTEXT_ALREADY_IN_USE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_CONTEXT_ALREADY_IN_US, __pyx_t_4) < 0) __PYX_ERR(0, 714, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":715
 *     CUDA_ERROR_UNSUPPORTED_LIMIT = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_LIMIT
 *     CUDA_ERROR_CONTEXT_ALREADY_IN_USE = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_IN_USE
 *     CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_UNSUPPORTED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_PTX = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PTX
 *     CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_GRAPHICS_CONTEXT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PEER_ACCESS_UNSUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PEER_ACCESS_UNSUPPORT, __pyx_t_4) < 0) __PYX_ERR(0, 715, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":716
 *     CUDA_ERROR_CONTEXT_ALREADY_IN_USE = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_ALREADY_IN_USE
 *     CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_UNSUPPORTED
 *     CUDA_ERROR_INVALID_PTX = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PTX             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_GRAPHICS_CONTEXT
 *     CUDA_ERROR_NVLINK_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_NVLINK_UNCORRECTABLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_PTX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_PTX, __pyx_t_4) < 0) __PYX_ERR(0, 716, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":717
 *     CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_UNSUPPORTED
 *     CUDA_ERROR_INVALID_PTX = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PTX
 *     CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_GRAPHICS_CONTEXT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NVLINK_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_NVLINK_UNCORRECTABLE
 *     CUDA_ERROR_JIT_COMPILER_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILER_NOT_FOUND
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_GRAPHICS_CONTEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_GRAPHICS_CONT, __pyx_t_4) < 0) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":718
 *     CUDA_ERROR_INVALID_PTX = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PTX
 *     CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_GRAPHICS_CONTEXT
 *     CUDA_ERROR_NVLINK_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_NVLINK_UNCORRECTABLE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_JIT_COMPILER_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILER_NOT_FOUND
 *     CUDA_ERROR_UNSUPPORTED_PTX_VERSION = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_PTX_VERSION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NVLINK_UNCORRECTABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NVLINK_UNCORRECTABLE, __pyx_t_4) < 0) __PYX_ERR(0, 718, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":719
 *     CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = ccuda.cudaError_enum.CUDA_ERROR_INVALID_GRAPHICS_CONTEXT
 *     CUDA_ERROR_NVLINK_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_NVLINK_UNCORRECTABLE
 *     CUDA_ERROR_JIT_COMPILER_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILER_NOT_FOUND             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_UNSUPPORTED_PTX_VERSION = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_PTX_VERSION
 *     CUDA_ERROR_JIT_COMPILATION_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILATION_DISABLED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_JIT_COMPILER_NOT_FOUND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_JIT_COMPILER_NOT_FOUN, __pyx_t_4) < 0) __PYX_ERR(0, 719, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":720
 *     CUDA_ERROR_NVLINK_UNCORRECTABLE = ccuda.cudaError_enum.CUDA_ERROR_NVLINK_UNCORRECTABLE
 *     CUDA_ERROR_JIT_COMPILER_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILER_NOT_FOUND
 *     CUDA_ERROR_UNSUPPORTED_PTX_VERSION = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_PTX_VERSION             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_JIT_COMPILATION_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILATION_DISABLED
 *     CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_UNSUPPORTED_PTX_VERSION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_UNSUPPORTED_PTX_VERSI, __pyx_t_4) < 0) __PYX_ERR(0, 720, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":721
 *     CUDA_ERROR_JIT_COMPILER_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILER_NOT_FOUND
 *     CUDA_ERROR_UNSUPPORTED_PTX_VERSION = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_PTX_VERSION
 *     CUDA_ERROR_JIT_COMPILATION_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILATION_DISABLED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY
 *     CUDA_ERROR_INVALID_SOURCE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_SOURCE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_JIT_COMPILATION_DISABLED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_JIT_COMPILATION_DISAB, __pyx_t_4) < 0) __PYX_ERR(0, 721, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":722
 *     CUDA_ERROR_UNSUPPORTED_PTX_VERSION = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_PTX_VERSION
 *     CUDA_ERROR_JIT_COMPILATION_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILATION_DISABLED
 *     CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_SOURCE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_SOURCE
 *     CUDA_ERROR_FILE_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_FILE_NOT_FOUND
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_UNSUPPORTED_EXEC_AFFI, __pyx_t_4) < 0) __PYX_ERR(0, 722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":723
 *     CUDA_ERROR_JIT_COMPILATION_DISABLED = ccuda.cudaError_enum.CUDA_ERROR_JIT_COMPILATION_DISABLED
 *     CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY
 *     CUDA_ERROR_INVALID_SOURCE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_SOURCE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_FILE_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_FILE_NOT_FOUND
 *     CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_SOURCE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_SOURCE, __pyx_t_4) < 0) __PYX_ERR(0, 723, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":724
 *     CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = ccuda.cudaError_enum.CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY
 *     CUDA_ERROR_INVALID_SOURCE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_SOURCE
 *     CUDA_ERROR_FILE_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_FILE_NOT_FOUND             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND
 *     CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_FILE_NOT_FOUND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_FILE_NOT_FOUND, __pyx_t_4) < 0) __PYX_ERR(0, 724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":725
 *     CUDA_ERROR_INVALID_SOURCE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_SOURCE
 *     CUDA_ERROR_FILE_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_FILE_NOT_FOUND
 *     CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
 *     CUDA_ERROR_OPERATING_SYSTEM = ccuda.cudaError_enum.CUDA_ERROR_OPERATING_SYSTEM
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_SHARED_OBJECT_SYMBOL, __pyx_t_4) < 0) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":726
 *     CUDA_ERROR_FILE_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_FILE_NOT_FOUND
 *     CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND
 *     CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_INIT_FAILED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_OPERATING_SYSTEM = ccuda.cudaError_enum.CUDA_ERROR_OPERATING_SYSTEM
 *     CUDA_ERROR_INVALID_HANDLE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_HANDLE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_SHARED_OBJECT_INIT_FAILED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_SHARED_OBJECT_INIT_FA, __pyx_t_4) < 0) __PYX_ERR(0, 726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":727
 *     CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND
 *     CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
 *     CUDA_ERROR_OPERATING_SYSTEM = ccuda.cudaError_enum.CUDA_ERROR_OPERATING_SYSTEM             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_HANDLE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_HANDLE
 *     CUDA_ERROR_ILLEGAL_STATE = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_STATE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_OPERATING_SYSTEM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_OPERATING_SYSTEM, __pyx_t_4) < 0) __PYX_ERR(0, 727, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":728
 *     CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = ccuda.cudaError_enum.CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
 *     CUDA_ERROR_OPERATING_SYSTEM = ccuda.cudaError_enum.CUDA_ERROR_OPERATING_SYSTEM
 *     CUDA_ERROR_INVALID_HANDLE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_HANDLE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ILLEGAL_STATE = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_STATE
 *     CUDA_ERROR_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_NOT_FOUND
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_HANDLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_HANDLE, __pyx_t_4) < 0) __PYX_ERR(0, 728, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":729
 *     CUDA_ERROR_OPERATING_SYSTEM = ccuda.cudaError_enum.CUDA_ERROR_OPERATING_SYSTEM
 *     CUDA_ERROR_INVALID_HANDLE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_HANDLE
 *     CUDA_ERROR_ILLEGAL_STATE = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_STATE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_NOT_FOUND
 *     CUDA_ERROR_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_NOT_READY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ILLEGAL_STATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ILLEGAL_STATE, __pyx_t_4) < 0) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":730
 *     CUDA_ERROR_INVALID_HANDLE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_HANDLE
 *     CUDA_ERROR_ILLEGAL_STATE = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_STATE
 *     CUDA_ERROR_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_NOT_FOUND             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_NOT_READY
 *     CUDA_ERROR_ILLEGAL_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_ADDRESS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_FOUND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_FOUND, __pyx_t_4) < 0) __PYX_ERR(0, 730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":731
 *     CUDA_ERROR_ILLEGAL_STATE = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_STATE
 *     CUDA_ERROR_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_NOT_FOUND
 *     CUDA_ERROR_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_NOT_READY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ILLEGAL_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_ADDRESS
 *     CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_READY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_READY, __pyx_t_4) < 0) __PYX_ERR(0, 731, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":732
 *     CUDA_ERROR_NOT_FOUND = ccuda.cudaError_enum.CUDA_ERROR_NOT_FOUND
 *     CUDA_ERROR_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_NOT_READY
 *     CUDA_ERROR_ILLEGAL_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_ADDRESS             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES
 *     CUDA_ERROR_LAUNCH_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_TIMEOUT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ILLEGAL_ADDRESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ILLEGAL_ADDRESS, __pyx_t_4) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":733
 *     CUDA_ERROR_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_NOT_READY
 *     CUDA_ERROR_ILLEGAL_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_ADDRESS
 *     CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_LAUNCH_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_TIMEOUT
 *     CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_LAUNCH_OUT_OF_RESOURC, __pyx_t_4) < 0) __PYX_ERR(0, 733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":734
 *     CUDA_ERROR_ILLEGAL_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_ADDRESS
 *     CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES
 *     CUDA_ERROR_LAUNCH_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_TIMEOUT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING
 *     CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_TIMEOUT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_LAUNCH_TIMEOUT, __pyx_t_4) < 0) __PYX_ERR(0, 734, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":735
 *     CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES
 *     CUDA_ERROR_LAUNCH_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_TIMEOUT
 *     CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED
 *     CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_NOT_ENABLED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_LAUNCH_INCOMPATIBLE_T, __pyx_t_4) < 0) __PYX_ERR(0, 735, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":736
 *     CUDA_ERROR_LAUNCH_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_TIMEOUT
 *     CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING
 *     CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_NOT_ENABLED
 *     CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = ccuda.cudaError_enum.CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PEER_ACCESS_ALREADY_E, __pyx_t_4) < 0) __PYX_ERR(0, 736, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":737
 *     CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING
 *     CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED
 *     CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_NOT_ENABLED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = ccuda.cudaError_enum.CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE
 *     CUDA_ERROR_CONTEXT_IS_DESTROYED = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_IS_DESTROYED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PEER_ACCESS_NOT_ENABLED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PEER_ACCESS_NOT_ENABL, __pyx_t_4) < 0) __PYX_ERR(0, 737, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":738
 *     CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED
 *     CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_NOT_ENABLED
 *     CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = ccuda.cudaError_enum.CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_CONTEXT_IS_DESTROYED = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_IS_DESTROYED
 *     CUDA_ERROR_ASSERT = ccuda.cudaError_enum.CUDA_ERROR_ASSERT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_PRIMARY_CONTEXT_ACTIV, __pyx_t_4) < 0) __PYX_ERR(0, 738, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":739
 *     CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = ccuda.cudaError_enum.CUDA_ERROR_PEER_ACCESS_NOT_ENABLED
 *     CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = ccuda.cudaError_enum.CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE
 *     CUDA_ERROR_CONTEXT_IS_DESTROYED = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_IS_DESTROYED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ASSERT = ccuda.cudaError_enum.CUDA_ERROR_ASSERT
 *     CUDA_ERROR_TOO_MANY_PEERS = ccuda.cudaError_enum.CUDA_ERROR_TOO_MANY_PEERS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_CONTEXT_IS_DESTROYED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_CONTEXT_IS_DESTROYED, __pyx_t_4) < 0) __PYX_ERR(0, 739, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":740
 *     CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = ccuda.cudaError_enum.CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE
 *     CUDA_ERROR_CONTEXT_IS_DESTROYED = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_IS_DESTROYED
 *     CUDA_ERROR_ASSERT = ccuda.cudaError_enum.CUDA_ERROR_ASSERT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_TOO_MANY_PEERS = ccuda.cudaError_enum.CUDA_ERROR_TOO_MANY_PEERS
 *     CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ASSERT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ASSERT, __pyx_t_4) < 0) __PYX_ERR(0, 740, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":741
 *     CUDA_ERROR_CONTEXT_IS_DESTROYED = ccuda.cudaError_enum.CUDA_ERROR_CONTEXT_IS_DESTROYED
 *     CUDA_ERROR_ASSERT = ccuda.cudaError_enum.CUDA_ERROR_ASSERT
 *     CUDA_ERROR_TOO_MANY_PEERS = ccuda.cudaError_enum.CUDA_ERROR_TOO_MANY_PEERS             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED
 *     CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_TOO_MANY_PEERS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_TOO_MANY_PEERS, __pyx_t_4) < 0) __PYX_ERR(0, 741, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":742
 *     CUDA_ERROR_ASSERT = ccuda.cudaError_enum.CUDA_ERROR_ASSERT
 *     CUDA_ERROR_TOO_MANY_PEERS = ccuda.cudaError_enum.CUDA_ERROR_TOO_MANY_PEERS
 *     CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED
 *     CUDA_ERROR_HARDWARE_STACK_ERROR = ccuda.cudaError_enum.CUDA_ERROR_HARDWARE_STACK_ERROR
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_HOST_MEMORY_ALREADY_R, __pyx_t_4) < 0) __PYX_ERR(0, 742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":743
 *     CUDA_ERROR_TOO_MANY_PEERS = ccuda.cudaError_enum.CUDA_ERROR_TOO_MANY_PEERS
 *     CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED
 *     CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_HARDWARE_STACK_ERROR = ccuda.cudaError_enum.CUDA_ERROR_HARDWARE_STACK_ERROR
 *     CUDA_ERROR_ILLEGAL_INSTRUCTION = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_INSTRUCTION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_HOST_MEMORY_NOT_REGIS, __pyx_t_4) < 0) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":744
 *     CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED
 *     CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED
 *     CUDA_ERROR_HARDWARE_STACK_ERROR = ccuda.cudaError_enum.CUDA_ERROR_HARDWARE_STACK_ERROR             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_ILLEGAL_INSTRUCTION = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_INSTRUCTION
 *     CUDA_ERROR_MISALIGNED_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_MISALIGNED_ADDRESS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_HARDWARE_STACK_ERROR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_HARDWARE_STACK_ERROR, __pyx_t_4) < 0) __PYX_ERR(0, 744, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":745
 *     CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = ccuda.cudaError_enum.CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED
 *     CUDA_ERROR_HARDWARE_STACK_ERROR = ccuda.cudaError_enum.CUDA_ERROR_HARDWARE_STACK_ERROR
 *     CUDA_ERROR_ILLEGAL_INSTRUCTION = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_INSTRUCTION             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MISALIGNED_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_MISALIGNED_ADDRESS
 *     CUDA_ERROR_INVALID_ADDRESS_SPACE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_ADDRESS_SPACE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_ILLEGAL_INSTRUCTION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_ILLEGAL_INSTRUCTION, __pyx_t_4) < 0) __PYX_ERR(0, 745, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":746
 *     CUDA_ERROR_HARDWARE_STACK_ERROR = ccuda.cudaError_enum.CUDA_ERROR_HARDWARE_STACK_ERROR
 *     CUDA_ERROR_ILLEGAL_INSTRUCTION = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_INSTRUCTION
 *     CUDA_ERROR_MISALIGNED_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_MISALIGNED_ADDRESS             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_ADDRESS_SPACE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_ADDRESS_SPACE
 *     CUDA_ERROR_INVALID_PC = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PC
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MISALIGNED_ADDRESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MISALIGNED_ADDRESS, __pyx_t_4) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":747
 *     CUDA_ERROR_ILLEGAL_INSTRUCTION = ccuda.cudaError_enum.CUDA_ERROR_ILLEGAL_INSTRUCTION
 *     CUDA_ERROR_MISALIGNED_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_MISALIGNED_ADDRESS
 *     CUDA_ERROR_INVALID_ADDRESS_SPACE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_ADDRESS_SPACE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_INVALID_PC = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PC
 *     CUDA_ERROR_LAUNCH_FAILED = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_FAILED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_ADDRESS_SPACE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_ADDRESS_SPACE, __pyx_t_4) < 0) __PYX_ERR(0, 747, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":748
 *     CUDA_ERROR_MISALIGNED_ADDRESS = ccuda.cudaError_enum.CUDA_ERROR_MISALIGNED_ADDRESS
 *     CUDA_ERROR_INVALID_ADDRESS_SPACE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_ADDRESS_SPACE
 *     CUDA_ERROR_INVALID_PC = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PC             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_LAUNCH_FAILED = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_FAILED
 *     CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = ccuda.cudaError_enum.CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_INVALID_PC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_INVALID_PC, __pyx_t_4) < 0) __PYX_ERR(0, 748, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":749
 *     CUDA_ERROR_INVALID_ADDRESS_SPACE = ccuda.cudaError_enum.CUDA_ERROR_INVALID_ADDRESS_SPACE
 *     CUDA_ERROR_INVALID_PC = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PC
 *     CUDA_ERROR_LAUNCH_FAILED = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_FAILED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = ccuda.cudaError_enum.CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE
 *     CUDA_ERROR_NOT_PERMITTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_PERMITTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_LAUNCH_FAILED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_LAUNCH_FAILED, __pyx_t_4) < 0) __PYX_ERR(0, 749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":750
 *     CUDA_ERROR_INVALID_PC = ccuda.cudaError_enum.CUDA_ERROR_INVALID_PC
 *     CUDA_ERROR_LAUNCH_FAILED = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_FAILED
 *     CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = ccuda.cudaError_enum.CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_PERMITTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_PERMITTED
 *     CUDA_ERROR_NOT_SUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_COOPERATIVE_LAUNCH_TO, __pyx_t_4) < 0) __PYX_ERR(0, 750, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":751
 *     CUDA_ERROR_LAUNCH_FAILED = ccuda.cudaError_enum.CUDA_ERROR_LAUNCH_FAILED
 *     CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = ccuda.cudaError_enum.CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE
 *     CUDA_ERROR_NOT_PERMITTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_PERMITTED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_NOT_SUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_SUPPORTED
 *     CUDA_ERROR_SYSTEM_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_NOT_READY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_PERMITTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_PERMITTED, __pyx_t_4) < 0) __PYX_ERR(0, 751, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":752
 *     CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = ccuda.cudaError_enum.CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE
 *     CUDA_ERROR_NOT_PERMITTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_PERMITTED
 *     CUDA_ERROR_NOT_SUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_SUPPORTED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_SYSTEM_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_NOT_READY
 *     CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_DRIVER_MISMATCH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_NOT_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_NOT_SUPPORTED, __pyx_t_4) < 0) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":753
 *     CUDA_ERROR_NOT_PERMITTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_PERMITTED
 *     CUDA_ERROR_NOT_SUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_SUPPORTED
 *     CUDA_ERROR_SYSTEM_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_NOT_READY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_DRIVER_MISMATCH
 *     CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_SYSTEM_NOT_READY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_SYSTEM_NOT_READY, __pyx_t_4) < 0) __PYX_ERR(0, 753, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":754
 *     CUDA_ERROR_NOT_SUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_NOT_SUPPORTED
 *     CUDA_ERROR_SYSTEM_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_NOT_READY
 *     CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_DRIVER_MISMATCH             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE
 *     CUDA_ERROR_MPS_CONNECTION_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MPS_CONNECTION_FAILED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_SYSTEM_DRIVER_MISMATCH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_SYSTEM_DRIVER_MISMATC, __pyx_t_4) < 0) __PYX_ERR(0, 754, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":755
 *     CUDA_ERROR_SYSTEM_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_NOT_READY
 *     CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_DRIVER_MISMATCH
 *     CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MPS_CONNECTION_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MPS_CONNECTION_FAILED
 *     CUDA_ERROR_MPS_RPC_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_MPS_RPC_FAILURE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_COMPAT_NOT_SUPPORTED, __pyx_t_4) < 0) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":756
 *     CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = ccuda.cudaError_enum.CUDA_ERROR_SYSTEM_DRIVER_MISMATCH
 *     CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE
 *     CUDA_ERROR_MPS_CONNECTION_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MPS_CONNECTION_FAILED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MPS_RPC_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_MPS_RPC_FAILURE
 *     CUDA_ERROR_MPS_SERVER_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_MPS_SERVER_NOT_READY
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_CONNECTION_FAILED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MPS_CONNECTION_FAILED, __pyx_t_4) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":757
 *     CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE
 *     CUDA_ERROR_MPS_CONNECTION_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MPS_CONNECTION_FAILED
 *     CUDA_ERROR_MPS_RPC_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_MPS_RPC_FAILURE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MPS_SERVER_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_MPS_SERVER_NOT_READY
 *     CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CLIENTS_REACHED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_RPC_FAILURE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MPS_RPC_FAILURE, __pyx_t_4) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":758
 *     CUDA_ERROR_MPS_CONNECTION_FAILED = ccuda.cudaError_enum.CUDA_ERROR_MPS_CONNECTION_FAILED
 *     CUDA_ERROR_MPS_RPC_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_MPS_RPC_FAILURE
 *     CUDA_ERROR_MPS_SERVER_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_MPS_SERVER_NOT_READY             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CLIENTS_REACHED
 *     CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_SERVER_NOT_READY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MPS_SERVER_NOT_READY, __pyx_t_4) < 0) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":759
 *     CUDA_ERROR_MPS_RPC_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_MPS_RPC_FAILURE
 *     CUDA_ERROR_MPS_SERVER_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_MPS_SERVER_NOT_READY
 *     CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CLIENTS_REACHED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED
 *     CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_MAX_CLIENTS_REACHED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MPS_MAX_CLIENTS_REACH, __pyx_t_4) < 0) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":760
 *     CUDA_ERROR_MPS_SERVER_NOT_READY = ccuda.cudaError_enum.CUDA_ERROR_MPS_SERVER_NOT_READY
 *     CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CLIENTS_REACHED
 *     CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED
 *     CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_INVALIDATED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_MPS_MAX_CONNECTIONS_R, __pyx_t_4) < 0) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":761
 *     CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CLIENTS_REACHED
 *     CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED
 *     CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_INVALIDATED
 *     CUDA_ERROR_STREAM_CAPTURE_MERGE = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_MERGE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNSUPP, __pyx_t_4) < 0) __PYX_ERR(0, 761, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":762
 *     CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = ccuda.cudaError_enum.CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED
 *     CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED
 *     CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_INVALIDATED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_MERGE = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_MERGE
 *     CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNMATCHED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_INVALIDATED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_INVALI, __pyx_t_4) < 0) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":763
 *     CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED
 *     CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_INVALIDATED
 *     CUDA_ERROR_STREAM_CAPTURE_MERGE = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_MERGE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNMATCHED
 *     CUDA_ERROR_STREAM_CAPTURE_UNJOINED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNJOINED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_MERGE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_MERGE, __pyx_t_4) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":764
 *     CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_INVALIDATED
 *     CUDA_ERROR_STREAM_CAPTURE_MERGE = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_MERGE
 *     CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNMATCHED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_UNJOINED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNJOINED
 *     CUDA_ERROR_STREAM_CAPTURE_ISOLATION = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_ISOLATION
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_UNMATCHED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNMATC, __pyx_t_4) < 0) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":765
 *     CUDA_ERROR_STREAM_CAPTURE_MERGE = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_MERGE
 *     CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNMATCHED
 *     CUDA_ERROR_STREAM_CAPTURE_UNJOINED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNJOINED             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_ISOLATION = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_ISOLATION
 *     CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_IMPLICIT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_UNJOINED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_UNJOIN, __pyx_t_4) < 0) __PYX_ERR(0, 765, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":766
 *     CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNMATCHED
 *     CUDA_ERROR_STREAM_CAPTURE_UNJOINED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNJOINED
 *     CUDA_ERROR_STREAM_CAPTURE_ISOLATION = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_ISOLATION             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_IMPLICIT
 *     CUDA_ERROR_CAPTURED_EVENT = ccuda.cudaError_enum.CUDA_ERROR_CAPTURED_EVENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_ISOLATION); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_ISOLAT, __pyx_t_4) < 0) __PYX_ERR(0, 766, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":767
 *     CUDA_ERROR_STREAM_CAPTURE_UNJOINED = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_UNJOINED
 *     CUDA_ERROR_STREAM_CAPTURE_ISOLATION = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_ISOLATION
 *     CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_IMPLICIT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_CAPTURED_EVENT = ccuda.cudaError_enum.CUDA_ERROR_CAPTURED_EVENT
 *     CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_IMPLICIT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_IMPLIC, __pyx_t_4) < 0) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":768
 *     CUDA_ERROR_STREAM_CAPTURE_ISOLATION = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_ISOLATION
 *     CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_IMPLICIT
 *     CUDA_ERROR_CAPTURED_EVENT = ccuda.cudaError_enum.CUDA_ERROR_CAPTURED_EVENT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD
 *     CUDA_ERROR_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_TIMEOUT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_CAPTURED_EVENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_CAPTURED_EVENT, __pyx_t_4) < 0) __PYX_ERR(0, 768, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":769
 *     CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_IMPLICIT
 *     CUDA_ERROR_CAPTURED_EVENT = ccuda.cudaError_enum.CUDA_ERROR_CAPTURED_EVENT
 *     CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_TIMEOUT
 *     CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_STREAM_CAPTURE_WRONG, __pyx_t_4) < 0) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":770
 *     CUDA_ERROR_CAPTURED_EVENT = ccuda.cudaError_enum.CUDA_ERROR_CAPTURED_EVENT
 *     CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD
 *     CUDA_ERROR_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_TIMEOUT             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE
 *     CUDA_ERROR_EXTERNAL_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_EXTERNAL_DEVICE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_TIMEOUT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_TIMEOUT, __pyx_t_4) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":771
 *     CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = ccuda.cudaError_enum.CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD
 *     CUDA_ERROR_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_TIMEOUT
 *     CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_EXTERNAL_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_EXTERNAL_DEVICE
 *     CUDA_ERROR_UNKNOWN = ccuda.cudaError_enum.CUDA_ERROR_UNKNOWN
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_GRAPH_EXEC_UPDATE_FAI, __pyx_t_4) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":772
 *     CUDA_ERROR_TIMEOUT = ccuda.cudaError_enum.CUDA_ERROR_TIMEOUT
 *     CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE
 *     CUDA_ERROR_EXTERNAL_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_EXTERNAL_DEVICE             # <<<<<<<<<<<<<<
 *     CUDA_ERROR_UNKNOWN = ccuda.cudaError_enum.CUDA_ERROR_UNKNOWN
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_EXTERNAL_DEVICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_EXTERNAL_DEVICE, __pyx_t_4) < 0) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":773
 *     CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = ccuda.cudaError_enum.CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE
 *     CUDA_ERROR_EXTERNAL_DEVICE = ccuda.cudaError_enum.CUDA_ERROR_EXTERNAL_DEVICE
 *     CUDA_ERROR_UNKNOWN = ccuda.cudaError_enum.CUDA_ERROR_UNKNOWN             # <<<<<<<<<<<<<<
 * 
 * class CUdevice_P2PAttribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(__pyx_e_4cuda_5ccuda_CUDA_ERROR_UNKNOWN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_ERROR_UNKNOWN, __pyx_t_4) < 0) __PYX_ERR(0, 773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":683
 *     CU_EXEC_AFFINITY_TYPE_MAX = ccuda.CUexecAffinityType_enum.CU_EXEC_AFFINITY_TYPE_MAX
 * 
 * class CUresult(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Error codes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUresult, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUresult, __pyx_t_4) < 0) __PYX_ERR(0, 683, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":775
 *     CUDA_ERROR_UNKNOWN = ccuda.cudaError_enum.CUDA_ERROR_UNKNOWN
 * 
 * class CUdevice_P2PAttribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     P2P Attributes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUdevice_P2PAttribute, __pyx_n_s_CUdevice_P2PAttribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_P2P_Attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":779
 *     P2P Attributes
 *     """
 *     CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK             # <<<<<<<<<<<<<<
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_PERFORMA, __pyx_t_4) < 0) __PYX_ERR(0, 779, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":780
 *     """
 *     CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_S, __pyx_t_4) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":781
 *     CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_NATIVE_A, __pyx_t_4) < 0) __PYX_ERR(0, 781, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":782
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_ACCESS_A, __pyx_t_4) < 0) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":783
 *     CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED
 *     CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED             # <<<<<<<<<<<<<<
 * 
 * class CUresourceViewFormat(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(__pyx_e_4cuda_5ccuda_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARR, __pyx_t_4) < 0) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":775
 *     CUDA_ERROR_UNKNOWN = ccuda.cudaError_enum.CUDA_ERROR_UNKNOWN
 * 
 * class CUdevice_P2PAttribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     P2P Attributes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUdevice_P2PAttribute, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUdevice_P2PAttribute, __pyx_t_4) < 0) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":785
 *     CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED
 * 
 * class CUresourceViewFormat(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Resource view format
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUresourceViewFormat, __pyx_n_s_CUresourceViewFormat, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Resource_view_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":789
 *     Resource view format
 *     """
 *     CU_RES_VIEW_FORMAT_NONE = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_NONE             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X8
 *     CU_RES_VIEW_FORMAT_UINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X8
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":790
 *     """
 *     CU_RES_VIEW_FORMAT_NONE = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_NONE
 *     CU_RES_VIEW_FORMAT_UINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X8             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X8
 *     CU_RES_VIEW_FORMAT_UINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X8
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_1X8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X8, __pyx_t_4) < 0) __PYX_ERR(0, 790, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":791
 *     CU_RES_VIEW_FORMAT_NONE = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_NONE
 *     CU_RES_VIEW_FORMAT_UINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X8
 *     CU_RES_VIEW_FORMAT_UINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X8             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X8
 *     CU_RES_VIEW_FORMAT_SINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X8
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_2X8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X8, __pyx_t_4) < 0) __PYX_ERR(0, 791, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":792
 *     CU_RES_VIEW_FORMAT_UINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X8
 *     CU_RES_VIEW_FORMAT_UINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X8
 *     CU_RES_VIEW_FORMAT_UINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X8             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X8
 *     CU_RES_VIEW_FORMAT_SINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X8
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_4X8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X8, __pyx_t_4) < 0) __PYX_ERR(0, 792, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":793
 *     CU_RES_VIEW_FORMAT_UINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X8
 *     CU_RES_VIEW_FORMAT_UINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X8
 *     CU_RES_VIEW_FORMAT_SINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X8             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X8
 *     CU_RES_VIEW_FORMAT_SINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X8
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_1X8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X8, __pyx_t_4) < 0) __PYX_ERR(0, 793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":794
 *     CU_RES_VIEW_FORMAT_UINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X8
 *     CU_RES_VIEW_FORMAT_SINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X8
 *     CU_RES_VIEW_FORMAT_SINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X8             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X8
 *     CU_RES_VIEW_FORMAT_UINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_2X8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X8, __pyx_t_4) < 0) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":795
 *     CU_RES_VIEW_FORMAT_SINT_1X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X8
 *     CU_RES_VIEW_FORMAT_SINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X8
 *     CU_RES_VIEW_FORMAT_SINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X8             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X16
 *     CU_RES_VIEW_FORMAT_UINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_4X8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X8, __pyx_t_4) < 0) __PYX_ERR(0, 795, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":796
 *     CU_RES_VIEW_FORMAT_SINT_2X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X8
 *     CU_RES_VIEW_FORMAT_SINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X8
 *     CU_RES_VIEW_FORMAT_UINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X16
 *     CU_RES_VIEW_FORMAT_UINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_1X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 796, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X16, __pyx_t_4) < 0) __PYX_ERR(0, 796, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":797
 *     CU_RES_VIEW_FORMAT_SINT_4X8 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X8
 *     CU_RES_VIEW_FORMAT_UINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X16
 *     CU_RES_VIEW_FORMAT_UINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X16
 *     CU_RES_VIEW_FORMAT_SINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_2X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X16, __pyx_t_4) < 0) __PYX_ERR(0, 797, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":798
 *     CU_RES_VIEW_FORMAT_UINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X16
 *     CU_RES_VIEW_FORMAT_UINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X16
 *     CU_RES_VIEW_FORMAT_UINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X16
 *     CU_RES_VIEW_FORMAT_SINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_4X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X16, __pyx_t_4) < 0) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":799
 *     CU_RES_VIEW_FORMAT_UINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X16
 *     CU_RES_VIEW_FORMAT_UINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X16
 *     CU_RES_VIEW_FORMAT_SINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X16
 *     CU_RES_VIEW_FORMAT_SINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_1X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X16, __pyx_t_4) < 0) __PYX_ERR(0, 799, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":800
 *     CU_RES_VIEW_FORMAT_UINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X16
 *     CU_RES_VIEW_FORMAT_SINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X16
 *     CU_RES_VIEW_FORMAT_SINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X16
 *     CU_RES_VIEW_FORMAT_UINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_2X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X16, __pyx_t_4) < 0) __PYX_ERR(0, 800, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":801
 *     CU_RES_VIEW_FORMAT_SINT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X16
 *     CU_RES_VIEW_FORMAT_SINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X16
 *     CU_RES_VIEW_FORMAT_SINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X32
 *     CU_RES_VIEW_FORMAT_UINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_4X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X16, __pyx_t_4) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":802
 *     CU_RES_VIEW_FORMAT_SINT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X16
 *     CU_RES_VIEW_FORMAT_SINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X16
 *     CU_RES_VIEW_FORMAT_UINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X32
 *     CU_RES_VIEW_FORMAT_UINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_1X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_1X32, __pyx_t_4) < 0) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":803
 *     CU_RES_VIEW_FORMAT_SINT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X16
 *     CU_RES_VIEW_FORMAT_UINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X32
 *     CU_RES_VIEW_FORMAT_UINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X32
 *     CU_RES_VIEW_FORMAT_SINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_2X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_2X32, __pyx_t_4) < 0) __PYX_ERR(0, 803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":804
 *     CU_RES_VIEW_FORMAT_UINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_1X32
 *     CU_RES_VIEW_FORMAT_UINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X32
 *     CU_RES_VIEW_FORMAT_UINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X32
 *     CU_RES_VIEW_FORMAT_SINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UINT_4X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UINT_4X32, __pyx_t_4) < 0) __PYX_ERR(0, 804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":805
 *     CU_RES_VIEW_FORMAT_UINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_2X32
 *     CU_RES_VIEW_FORMAT_UINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X32
 *     CU_RES_VIEW_FORMAT_SINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X32
 *     CU_RES_VIEW_FORMAT_SINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_1X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_1X32, __pyx_t_4) < 0) __PYX_ERR(0, 805, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":806
 *     CU_RES_VIEW_FORMAT_UINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UINT_4X32
 *     CU_RES_VIEW_FORMAT_SINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X32
 *     CU_RES_VIEW_FORMAT_SINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X32
 *     CU_RES_VIEW_FORMAT_FLOAT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_2X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_2X32, __pyx_t_4) < 0) __PYX_ERR(0, 806, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":807
 *     CU_RES_VIEW_FORMAT_SINT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_1X32
 *     CU_RES_VIEW_FORMAT_SINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X32
 *     CU_RES_VIEW_FORMAT_SINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_FLOAT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X16
 *     CU_RES_VIEW_FORMAT_FLOAT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SINT_4X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SINT_4X32, __pyx_t_4) < 0) __PYX_ERR(0, 807, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":808
 *     CU_RES_VIEW_FORMAT_SINT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_2X32
 *     CU_RES_VIEW_FORMAT_SINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X32
 *     CU_RES_VIEW_FORMAT_FLOAT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_FLOAT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X16
 *     CU_RES_VIEW_FORMAT_FLOAT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X16
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_1X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_1X16, __pyx_t_4) < 0) __PYX_ERR(0, 808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":809
 *     CU_RES_VIEW_FORMAT_SINT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SINT_4X32
 *     CU_RES_VIEW_FORMAT_FLOAT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X16
 *     CU_RES_VIEW_FORMAT_FLOAT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_FLOAT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X16
 *     CU_RES_VIEW_FORMAT_FLOAT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_2X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_2X16, __pyx_t_4) < 0) __PYX_ERR(0, 809, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":810
 *     CU_RES_VIEW_FORMAT_FLOAT_1X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X16
 *     CU_RES_VIEW_FORMAT_FLOAT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X16
 *     CU_RES_VIEW_FORMAT_FLOAT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X16             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_FLOAT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X32
 *     CU_RES_VIEW_FORMAT_FLOAT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_4X16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_4X16, __pyx_t_4) < 0) __PYX_ERR(0, 810, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":811
 *     CU_RES_VIEW_FORMAT_FLOAT_2X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X16
 *     CU_RES_VIEW_FORMAT_FLOAT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X16
 *     CU_RES_VIEW_FORMAT_FLOAT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_FLOAT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X32
 *     CU_RES_VIEW_FORMAT_FLOAT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_1X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_1X32, __pyx_t_4) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":812
 *     CU_RES_VIEW_FORMAT_FLOAT_4X16 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X16
 *     CU_RES_VIEW_FORMAT_FLOAT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X32
 *     CU_RES_VIEW_FORMAT_FLOAT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_FLOAT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X32
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC1
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_2X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_2X32, __pyx_t_4) < 0) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":813
 *     CU_RES_VIEW_FORMAT_FLOAT_1X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_1X32
 *     CU_RES_VIEW_FORMAT_FLOAT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X32
 *     CU_RES_VIEW_FORMAT_FLOAT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X32             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC1
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC2
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_FLOAT_4X32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_FLOAT_4X32, __pyx_t_4) < 0) __PYX_ERR(0, 813, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":814
 *     CU_RES_VIEW_FORMAT_FLOAT_2X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_2X32
 *     CU_RES_VIEW_FORMAT_FLOAT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X32
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC1             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC2
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC3
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC1, __pyx_t_4) < 0) __PYX_ERR(0, 814, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":815
 *     CU_RES_VIEW_FORMAT_FLOAT_4X32 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_FLOAT_4X32
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC1
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC2             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC3
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC4
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC2, __pyx_t_4) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":816
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC1
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC2
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC3             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC4
 *     CU_RES_VIEW_FORMAT_SIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC4
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC3, __pyx_t_4) < 0) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":817
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC2
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC3
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC4             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC4
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC5
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC4, __pyx_t_4) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":818
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC3
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC4
 *     CU_RES_VIEW_FORMAT_SIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC4             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC5
 *     CU_RES_VIEW_FORMAT_SIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC5
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SIGNED_BC4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC4, __pyx_t_4) < 0) __PYX_ERR(0, 818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":819
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC4
 *     CU_RES_VIEW_FORMAT_SIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC4
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC5             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC5
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC6H
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC5, __pyx_t_4) < 0) __PYX_ERR(0, 819, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":820
 *     CU_RES_VIEW_FORMAT_SIGNED_BC4 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC4
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC5
 *     CU_RES_VIEW_FORMAT_SIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC5             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC6H
 *     CU_RES_VIEW_FORMAT_SIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC6H
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SIGNED_BC5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC5, __pyx_t_4) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":821
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC5
 *     CU_RES_VIEW_FORMAT_SIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC5
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC6H             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_SIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC6H
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC7
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC6H, __pyx_t_4) < 0) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":822
 *     CU_RES_VIEW_FORMAT_SIGNED_BC5 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC5
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC6H
 *     CU_RES_VIEW_FORMAT_SIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC6H             # <<<<<<<<<<<<<<
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC7
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_SIGNED_BC6H); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_SIGNED_BC6H, __pyx_t_4) < 0) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":823
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC6H
 *     CU_RES_VIEW_FORMAT_SIGNED_BC6H = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_SIGNED_BC6H
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC7             # <<<<<<<<<<<<<<
 * 
 * class CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(__pyx_e_4cuda_5ccuda_CU_RES_VIEW_FORMAT_UNSIGNED_BC7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_RES_VIEW_FORMAT_UNSIGNED_BC7, __pyx_t_4) < 0) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":785
 *     CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = ccuda.CUdevice_P2PAttribute_enum.CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED
 * 
 * class CUresourceViewFormat(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Resource view format
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUresourceViewFormat, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUresourceViewFormat, __pyx_t_4) < 0) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":825
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC7
 * 
 * class CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Access flags that specify the level of access the current context's
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_ACCESS_FL, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_ACCESS_FL, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Access_flags_that_specify_the_l); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":830
 *     device has on the memory referenced.
 *     """
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_2, __pyx_t_4) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":831
 *     """
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ             # <<<<<<<<<<<<<<
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_3, __pyx_t_4) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":832
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE             # <<<<<<<<<<<<<<
 * 
 * class CUexternalMemoryHandleType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum(__pyx_e_4cuda_5ccuda_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_POINTER_ATTRIBUTE_ACCESS_FLAG_4, __pyx_t_4) < 0) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":825
 *     CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = ccuda.CUresourceViewFormat_enum.CU_RES_VIEW_FORMAT_UNSIGNED_BC7
 * 
 * class CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Access flags that specify the level of access the current context's
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_ACCESS_FL, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_ACCESS_FL, __pyx_t_4) < 0) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":834
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE
 * 
 * class CUexternalMemoryHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     External memory handle types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUexternalMemoryHandleType, __pyx_n_s_CUexternalMemoryHandleType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_External_memory_handle_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":838
 *     External memory handle types
 *     """
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O, __pyx_t_4) < 0) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":839
 *     """
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_2, __pyx_t_4) < 0) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":840
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_O_3, __pyx_t_4) < 0) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":841
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D, __pyx_t_4) < 0) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":842
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_2, __pyx_t_4) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":843
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_3, __pyx_t_4) < 0) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":844
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_D_4, __pyx_t_4) < 0) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":845
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF             # <<<<<<<<<<<<<<
 * 
 * class CUexternalSemaphoreHandleType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_MEMORY_HANDLE_TYPE_N, __pyx_t_4) < 0) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":834
 *     CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = ccuda.CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum.CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE
 * 
 * class CUexternalMemoryHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     External memory handle types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUexternalMemoryHandleType, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUexternalMemoryHandleType, __pyx_t_4) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":847
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF
 * 
 * class CUexternalSemaphoreHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore handle types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUexternalSemaphoreHandleType, __pyx_n_s_CUexternalSemaphoreHandleType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_External_semaphore_handle_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":851
 *     External semaphore handle types
 *     """
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP, __pyx_t_4) < 0) __PYX_ERR(0, 851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":852
 *     """
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_2, __pyx_t_4) < 0) __PYX_ERR(0, 852, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":853
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_3, __pyx_t_4) < 0) __PYX_ERR(0, 853, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":854
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_4, __pyx_t_4) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":855
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_5, __pyx_t_4) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":856
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_6, __pyx_t_4) < 0) __PYX_ERR(0, 856, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":857
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_7, __pyx_t_4) < 0) __PYX_ERR(0, 857, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":858
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_8, __pyx_t_4) < 0) __PYX_ERR(0, 858, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":859
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD             # <<<<<<<<<<<<<<
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_9, __pyx_t_4) < 0) __PYX_ERR(0, 859, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":860
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32             # <<<<<<<<<<<<<<
 * 
 * class CUmemAllocationHandleType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(__pyx_e_4cuda_5ccuda_CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_EXTERNAL_SEMAPHORE_HANDLE_TYP_10, __pyx_t_4) < 0) __PYX_ERR(0, 860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":847
 *     CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = ccuda.CUexternalMemoryHandleType_enum.CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF
 * 
 * class CUexternalSemaphoreHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     External semaphore handle types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUexternalSemaphoreHandleType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUexternalSemaphoreHandleType, __pyx_t_4) < 0) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":862
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32
 * 
 * class CUmemAllocationHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for specifying particular handle types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmemAllocationHandleType, __pyx_n_s_CUmemAllocationHandleType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_specifying_particular); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":866
 *     Flags for specifying particular handle types
 *     """
 *     CU_MEM_HANDLE_TYPE_NONE = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_NONE             # <<<<<<<<<<<<<<
 *     CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR
 *     CU_MEM_HANDLE_TYPE_WIN32 = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_HANDLE_TYPE_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":867
 *     """
 *     CU_MEM_HANDLE_TYPE_NONE = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_NONE
 *     CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR             # <<<<<<<<<<<<<<
 *     CU_MEM_HANDLE_TYPE_WIN32 = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32
 *     CU_MEM_HANDLE_TYPE_WIN32_KMT = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32_KMT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_HANDLE_TYPE_POSIX_FILE_DE, __pyx_t_4) < 0) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":868
 *     CU_MEM_HANDLE_TYPE_NONE = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_NONE
 *     CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR
 *     CU_MEM_HANDLE_TYPE_WIN32 = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32             # <<<<<<<<<<<<<<
 *     CU_MEM_HANDLE_TYPE_WIN32_KMT = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32_KMT
 *     CU_MEM_HANDLE_TYPE_MAX = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_WIN32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_HANDLE_TYPE_WIN32, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":869
 *     CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR
 *     CU_MEM_HANDLE_TYPE_WIN32 = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32
 *     CU_MEM_HANDLE_TYPE_WIN32_KMT = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32_KMT             # <<<<<<<<<<<<<<
 *     CU_MEM_HANDLE_TYPE_MAX = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_WIN32_KMT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_HANDLE_TYPE_WIN32_KMT, __pyx_t_4) < 0) __PYX_ERR(0, 869, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":870
 *     CU_MEM_HANDLE_TYPE_WIN32 = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32
 *     CU_MEM_HANDLE_TYPE_WIN32_KMT = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_WIN32_KMT
 *     CU_MEM_HANDLE_TYPE_MAX = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUmemAccess_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_HANDLE_TYPE_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 870, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":862
 *     CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = ccuda.CUexternalSemaphoreHandleType_enum.CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32
 * 
 * class CUmemAllocationHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for specifying particular handle types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmemAllocationHandleType, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemAllocationHandleType, __pyx_t_4) < 0) __PYX_ERR(0, 862, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":872
 *     CU_MEM_HANDLE_TYPE_MAX = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_MAX
 * 
 * class CUmemAccess_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the memory protection flags for mapping.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUmemAccess_flags, __pyx_n_s_CUmemAccess_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Specifies_the_memory_protection); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":876
 *     Specifies the memory protection flags for mapping.
 *     """
 *     CU_MEM_ACCESS_FLAGS_PROT_NONE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_NONE             # <<<<<<<<<<<<<<
 *     CU_MEM_ACCESS_FLAGS_PROT_READ = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READ
 *     CU_MEM_ACCESS_FLAGS_PROT_READWRITE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READWRITE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":877
 *     """
 *     CU_MEM_ACCESS_FLAGS_PROT_NONE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_NONE
 *     CU_MEM_ACCESS_FLAGS_PROT_READ = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READ             # <<<<<<<<<<<<<<
 *     CU_MEM_ACCESS_FLAGS_PROT_READWRITE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READWRITE
 *     CU_MEM_ACCESS_FLAGS_PROT_MAX = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_READ); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_READ, __pyx_t_4) < 0) __PYX_ERR(0, 877, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":878
 *     CU_MEM_ACCESS_FLAGS_PROT_NONE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_NONE
 *     CU_MEM_ACCESS_FLAGS_PROT_READ = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READ
 *     CU_MEM_ACCESS_FLAGS_PROT_READWRITE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READWRITE             # <<<<<<<<<<<<<<
 *     CU_MEM_ACCESS_FLAGS_PROT_MAX = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_READWRITE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_READWRI, __pyx_t_4) < 0) __PYX_ERR(0, 878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":879
 *     CU_MEM_ACCESS_FLAGS_PROT_READ = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READ
 *     CU_MEM_ACCESS_FLAGS_PROT_READWRITE = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_READWRITE
 *     CU_MEM_ACCESS_FLAGS_PROT_MAX = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUmemLocationType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ACCESS_FLAGS_PROT_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ACCESS_FLAGS_PROT_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 879, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":872
 *     CU_MEM_HANDLE_TYPE_MAX = ccuda.CUmemAllocationHandleType_enum.CU_MEM_HANDLE_TYPE_MAX
 * 
 * class CUmemAccess_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the memory protection flags for mapping.
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUmemAccess_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemAccess_flags, __pyx_t_4) < 0) __PYX_ERR(0, 872, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":881
 *     CU_MEM_ACCESS_FLAGS_PROT_MAX = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_MAX
 * 
 * class CUmemLocationType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the type of location
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmemLocationType, __pyx_n_s_CUmemLocationType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Specifies_the_type_of_location); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":885
 *     Specifies the type of location
 *     """
 *     CU_MEM_LOCATION_TYPE_INVALID = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_INVALID             # <<<<<<<<<<<<<<
 *     CU_MEM_LOCATION_TYPE_DEVICE = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_DEVICE
 *     CU_MEM_LOCATION_TYPE_MAX = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_LOCATION_TYPE_INVALID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_LOCATION_TYPE_INVALID, __pyx_t_4) < 0) __PYX_ERR(0, 885, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":886
 *     """
 *     CU_MEM_LOCATION_TYPE_INVALID = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_INVALID
 *     CU_MEM_LOCATION_TYPE_DEVICE = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_DEVICE             # <<<<<<<<<<<<<<
 *     CU_MEM_LOCATION_TYPE_MAX = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_LOCATION_TYPE_DEVICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_LOCATION_TYPE_DEVICE, __pyx_t_4) < 0) __PYX_ERR(0, 886, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":887
 *     CU_MEM_LOCATION_TYPE_INVALID = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_INVALID
 *     CU_MEM_LOCATION_TYPE_DEVICE = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_DEVICE
 *     CU_MEM_LOCATION_TYPE_MAX = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUmemAllocationType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_LOCATION_TYPE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_LOCATION_TYPE_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":881
 *     CU_MEM_ACCESS_FLAGS_PROT_MAX = ccuda.CUmemAccess_flags_enum.CU_MEM_ACCESS_FLAGS_PROT_MAX
 * 
 * class CUmemLocationType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies the type of location
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmemLocationType, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemLocationType, __pyx_t_4) < 0) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":889
 *     CU_MEM_LOCATION_TYPE_MAX = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_MAX
 * 
 * class CUmemAllocationType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Defines the allocation types available
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUmemAllocationType, __pyx_n_s_CUmemAllocationType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Defines_the_allocation_types_av); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":893
 *     Defines the allocation types available
 *     """
 *     CU_MEM_ALLOCATION_TYPE_INVALID = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_INVALID             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOCATION_TYPE_PINNED = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_PINNED
 *     CU_MEM_ALLOCATION_TYPE_MAX = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_MAX
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_TYPE_INVALID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOCATION_TYPE_INVALID, __pyx_t_4) < 0) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":894
 *     """
 *     CU_MEM_ALLOCATION_TYPE_INVALID = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_INVALID
 *     CU_MEM_ALLOCATION_TYPE_PINNED = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_PINNED             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOCATION_TYPE_MAX = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_MAX
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_TYPE_PINNED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOCATION_TYPE_PINNED, __pyx_t_4) < 0) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":895
 *     CU_MEM_ALLOCATION_TYPE_INVALID = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_INVALID
 *     CU_MEM_ALLOCATION_TYPE_PINNED = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_PINNED
 *     CU_MEM_ALLOCATION_TYPE_MAX = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_MAX             # <<<<<<<<<<<<<<
 * 
 * class CUmemAllocationGranularity_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_TYPE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOCATION_TYPE_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":889
 *     CU_MEM_LOCATION_TYPE_MAX = ccuda.CUmemLocationType_enum.CU_MEM_LOCATION_TYPE_MAX
 * 
 * class CUmemAllocationType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Defines the allocation types available
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUmemAllocationType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemAllocationType, __pyx_t_4) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":897
 *     CU_MEM_ALLOCATION_TYPE_MAX = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_MAX
 * 
 * class CUmemAllocationGranularity_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flag for requesting different optimal and required granularities
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmemAllocationGranularity_flags, __pyx_n_s_CUmemAllocationGranularity_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flag_for_requesting_different_o); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":902
 *     for an allocation.
 *     """
 *     CU_MEM_ALLOC_GRANULARITY_MINIMUM = ccuda.CUmemAllocationGranularity_flags_enum.CU_MEM_ALLOC_GRANULARITY_MINIMUM             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = ccuda.CUmemAllocationGranularity_flags_enum.CU_MEM_ALLOC_GRANULARITY_RECOMMENDED
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOC_GRANULARITY_MINIMUM); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOC_GRANULARITY_MINIMUM, __pyx_t_4) < 0) __PYX_ERR(0, 902, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":903
 *     """
 *     CU_MEM_ALLOC_GRANULARITY_MINIMUM = ccuda.CUmemAllocationGranularity_flags_enum.CU_MEM_ALLOC_GRANULARITY_MINIMUM
 *     CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = ccuda.CUmemAllocationGranularity_flags_enum.CU_MEM_ALLOC_GRANULARITY_RECOMMENDED             # <<<<<<<<<<<<<<
 * 
 * class CUarraySparseSubresourceType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOC_GRANULARITY_RECOMMENDED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOC_GRANULARITY_RECOMME, __pyx_t_4) < 0) __PYX_ERR(0, 903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":897
 *     CU_MEM_ALLOCATION_TYPE_MAX = ccuda.CUmemAllocationType_enum.CU_MEM_ALLOCATION_TYPE_MAX
 * 
 * class CUmemAllocationGranularity_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flag for requesting different optimal and required granularities
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmemAllocationGranularity_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemAllocationGranularity_flags, __pyx_t_4) < 0) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":905
 *     CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = ccuda.CUmemAllocationGranularity_flags_enum.CU_MEM_ALLOC_GRANULARITY_RECOMMENDED
 * 
 * class CUarraySparseSubresourceType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Sparse subresource types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUarraySparseSubresourceType, __pyx_n_s_CUarraySparseSubresourceType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Sparse_subresource_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":909
 *     Sparse subresource types
 *     """
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL = ccuda.CUarraySparseSubresourceType_enum.CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL             # <<<<<<<<<<<<<<
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = ccuda.CUarraySparseSubresourceType_enum.CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(__pyx_e_4cuda_5ccuda_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE, __pyx_t_4) < 0) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":910
 *     """
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL = ccuda.CUarraySparseSubresourceType_enum.CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = ccuda.CUarraySparseSubresourceType_enum.CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL             # <<<<<<<<<<<<<<
 * 
 * class CUmemOperationType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(__pyx_e_4cuda_5ccuda_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_2, __pyx_t_4) < 0) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":905
 *     CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = ccuda.CUmemAllocationGranularity_flags_enum.CU_MEM_ALLOC_GRANULARITY_RECOMMENDED
 * 
 * class CUarraySparseSubresourceType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Sparse subresource types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUarraySparseSubresourceType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUarraySparseSubresourceType, __pyx_t_4) < 0) __PYX_ERR(0, 905, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":912
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = ccuda.CUarraySparseSubresourceType_enum.CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL
 * 
 * class CUmemOperationType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory operation types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmemOperationType, __pyx_n_s_CUmemOperationType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Memory_operation_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":916
 *     Memory operation types
 *     """
 *     CU_MEM_OPERATION_TYPE_MAP = ccuda.CUmemOperationType_enum.CU_MEM_OPERATION_TYPE_MAP             # <<<<<<<<<<<<<<
 *     CU_MEM_OPERATION_TYPE_UNMAP = ccuda.CUmemOperationType_enum.CU_MEM_OPERATION_TYPE_UNMAP
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_OPERATION_TYPE_MAP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_OPERATION_TYPE_MAP, __pyx_t_4) < 0) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":917
 *     """
 *     CU_MEM_OPERATION_TYPE_MAP = ccuda.CUmemOperationType_enum.CU_MEM_OPERATION_TYPE_MAP
 *     CU_MEM_OPERATION_TYPE_UNMAP = ccuda.CUmemOperationType_enum.CU_MEM_OPERATION_TYPE_UNMAP             # <<<<<<<<<<<<<<
 * 
 * class CUmemHandleType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_OPERATION_TYPE_UNMAP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_OPERATION_TYPE_UNMAP, __pyx_t_4) < 0) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":912
 *     CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = ccuda.CUarraySparseSubresourceType_enum.CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL
 * 
 * class CUmemOperationType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory operation types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmemOperationType, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemOperationType, __pyx_t_4) < 0) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":919
 *     CU_MEM_OPERATION_TYPE_UNMAP = ccuda.CUmemOperationType_enum.CU_MEM_OPERATION_TYPE_UNMAP
 * 
 * class CUmemHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory handle types
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUmemHandleType, __pyx_n_s_CUmemHandleType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Memory_handle_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":923
 *     Memory handle types
 *     """
 *     CU_MEM_HANDLE_TYPE_GENERIC = ccuda.CUmemHandleType_enum.CU_MEM_HANDLE_TYPE_GENERIC             # <<<<<<<<<<<<<<
 * 
 * class CUmemAllocationCompType(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_HANDLE_TYPE_GENERIC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_HANDLE_TYPE_GENERIC, __pyx_t_4) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":919
 *     CU_MEM_OPERATION_TYPE_UNMAP = ccuda.CUmemOperationType_enum.CU_MEM_OPERATION_TYPE_UNMAP
 * 
 * class CUmemHandleType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Memory handle types
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUmemHandleType, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemHandleType, __pyx_t_4) < 0) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":925
 *     CU_MEM_HANDLE_TYPE_GENERIC = ccuda.CUmemHandleType_enum.CU_MEM_HANDLE_TYPE_GENERIC
 * 
 * class CUmemAllocationCompType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies compression attribute for an allocation.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmemAllocationCompType, __pyx_n_s_CUmemAllocationCompType, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Specifies_compression_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":929
 *     Specifies compression attribute for an allocation.
 *     """
 *     CU_MEM_ALLOCATION_COMP_NONE = ccuda.CUmemAllocationCompType_enum.CU_MEM_ALLOCATION_COMP_NONE             # <<<<<<<<<<<<<<
 *     CU_MEM_ALLOCATION_COMP_GENERIC = ccuda.CUmemAllocationCompType_enum.CU_MEM_ALLOCATION_COMP_GENERIC
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_COMP_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOCATION_COMP_NONE, __pyx_t_4) < 0) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":930
 *     """
 *     CU_MEM_ALLOCATION_COMP_NONE = ccuda.CUmemAllocationCompType_enum.CU_MEM_ALLOCATION_COMP_NONE
 *     CU_MEM_ALLOCATION_COMP_GENERIC = ccuda.CUmemAllocationCompType_enum.CU_MEM_ALLOCATION_COMP_GENERIC             # <<<<<<<<<<<<<<
 * 
 * class CUgraphExecUpdateResult(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum(__pyx_e_4cuda_5ccuda_CU_MEM_ALLOCATION_COMP_GENERIC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEM_ALLOCATION_COMP_GENERIC, __pyx_t_4) < 0) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":925
 *     CU_MEM_HANDLE_TYPE_GENERIC = ccuda.CUmemHandleType_enum.CU_MEM_HANDLE_TYPE_GENERIC
 * 
 * class CUmemAllocationCompType(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Specifies compression attribute for an allocation.
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmemAllocationCompType, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemAllocationCompType, __pyx_t_4) < 0) __PYX_ERR(0, 925, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":932
 *     CU_MEM_ALLOCATION_COMP_GENERIC = ccuda.CUmemAllocationCompType_enum.CU_MEM_ALLOCATION_COMP_GENERIC
 * 
 * class CUgraphExecUpdateResult(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUgraphExecUpdateResult, __pyx_n_s_CUgraphExecUpdateResult, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s__879); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":936
 * 
 *     """
 *     CU_GRAPH_EXEC_UPDATE_SUCCESS = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_SUCCESS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR
 *     CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_SUCCESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_SUCCESS, __pyx_t_4) < 0) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":937
 *     """
 *     CU_GRAPH_EXEC_UPDATE_SUCCESS = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_SUCCESS
 *     CU_GRAPH_EXEC_UPDATE_ERROR = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR, __pyx_t_4) < 0) __PYX_ERR(0, 937, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":938
 *     CU_GRAPH_EXEC_UPDATE_SUCCESS = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_SUCCESS
 *     CU_GRAPH_EXEC_UPDATE_ERROR = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR
 *     CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_TOPOL, __pyx_t_4) < 0) __PYX_ERR(0, 938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":939
 *     CU_GRAPH_EXEC_UPDATE_ERROR = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR
 *     CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_NODE, __pyx_t_4) < 0) __PYX_ERR(0, 939, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":940
 *     CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_FUNCT, __pyx_t_4) < 0) __PYX_ERR(0, 940, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":941
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_PARAM, __pyx_t_4) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":942
 *     CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED             # <<<<<<<<<<<<<<
 *     CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_NOT_S, __pyx_t_4) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":943
 *     CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED
 *     CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE             # <<<<<<<<<<<<<<
 * 
 * class CUmemPool_attribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_EXEC_UPDATE_ERROR_UNSUP, __pyx_t_4) < 0) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":932
 *     CU_MEM_ALLOCATION_COMP_GENERIC = ccuda.CUmemAllocationCompType_enum.CU_MEM_ALLOCATION_COMP_GENERIC
 * 
 * class CUgraphExecUpdateResult(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUgraphExecUpdateResult, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphExecUpdateResult, __pyx_t_4) < 0) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":945
 *     CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE
 * 
 * class CUmemPool_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA memory pool attributes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUmemPool_attribute, __pyx_n_s_CUmemPool_attribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_CUDA_memory_pool_attributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":949
 *     CUDA memory pool attributes
 *     """
 *     CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVE, __pyx_t_4) < 0) __PYX_ERR(0, 949, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":950
 *     """
 *     CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES
 *     CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RELEASE_THRESHOLD
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPO, __pyx_t_4) < 0) __PYX_ERR(0, 950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":951
 *     CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RELEASE_THRESHOLD
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_REUSE_ALLOW_INTE, __pyx_t_4) < 0) __PYX_ERR(0, 951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":952
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES
 *     CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RELEASE_THRESHOLD             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_RELEASE_THRESHOLD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_RELEASE_THRESHOL, __pyx_t_4) < 0) __PYX_ERR(0, 952, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":953
 *     CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES
 *     CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RELEASE_THRESHOLD
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH
 *     CU_MEMPOOL_ATTR_USED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_CURRENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_RESERVED_MEM_CUR, __pyx_t_4) < 0) __PYX_ERR(0, 953, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":954
 *     CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RELEASE_THRESHOLD
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_USED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_CURRENT
 *     CU_MEMPOOL_ATTR_USED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_HIGH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_RESERVED_MEM_HIG, __pyx_t_4) < 0) __PYX_ERR(0, 954, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":955
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH
 *     CU_MEMPOOL_ATTR_USED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_CURRENT             # <<<<<<<<<<<<<<
 *     CU_MEMPOOL_ATTR_USED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_HIGH
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_USED_MEM_CURRENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_USED_MEM_CURRENT, __pyx_t_4) < 0) __PYX_ERR(0, 955, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":956
 *     CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH
 *     CU_MEMPOOL_ATTR_USED_MEM_CURRENT = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_CURRENT
 *     CU_MEMPOOL_ATTR_USED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_HIGH             # <<<<<<<<<<<<<<
 * 
 * class CUgraphMem_attribute(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(__pyx_e_4cuda_5ccuda_CU_MEMPOOL_ATTR_USED_MEM_HIGH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_MEMPOOL_ATTR_USED_MEM_HIGH, __pyx_t_4) < 0) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":945
 *     CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = ccuda.CUgraphExecUpdateResult_enum.CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE
 * 
 * class CUmemPool_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     CUDA memory pool attributes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUmemPool_attribute, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUmemPool_attribute, __pyx_t_4) < 0) __PYX_ERR(0, 945, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":958
 *     CU_MEMPOOL_ATTR_USED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_HIGH
 * 
 * class CUgraphMem_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUgraphMem_attribute, __pyx_n_s_CUgraphMem_attribute, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s__879); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":962
 * 
 *     """
 *     CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT             # <<<<<<<<<<<<<<
 *     CU_GRAPH_MEM_ATTR_USED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_HIGH
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_MEM_ATTR_USED_MEM_CURRE, __pyx_t_4) < 0) __PYX_ERR(0, 962, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":963
 *     """
 *     CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT
 *     CU_GRAPH_MEM_ATTR_USED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_HIGH             # <<<<<<<<<<<<<<
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_MEM_ATTR_USED_MEM_HIGH, __pyx_t_4) < 0) __PYX_ERR(0, 963, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":964
 *     CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT
 *     CU_GRAPH_MEM_ATTR_USED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_HIGH
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT             # <<<<<<<<<<<<<<
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_MEM_ATTR_RESERVED_MEM_C, __pyx_t_4) < 0) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":965
 *     CU_GRAPH_MEM_ATTR_USED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_USED_MEM_HIGH
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH             # <<<<<<<<<<<<<<
 * 
 * class CUflushGPUDirectRDMAWritesOptions(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_MEM_ATTR_RESERVED_MEM_H, __pyx_t_4) < 0) __PYX_ERR(0, 965, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":958
 *     CU_MEMPOOL_ATTR_USED_MEM_HIGH = ccuda.CUmemPool_attribute_enum.CU_MEMPOOL_ATTR_USED_MEM_HIGH
 * 
 * class CUgraphMem_attribute(Enum):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUgraphMem_attribute, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphMem_attribute, __pyx_t_4) < 0) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":967
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
 * 
 * class CUflushGPUDirectRDMAWritesOptions(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Bitmasks for
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUflushGPUDirectRDMAWritesOption, __pyx_n_s_CUflushGPUDirectRDMAWritesOption, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Bitmasks_for_CU_DEVICE_ATTRIBUT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":972
 *     CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS
 *     """
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = ccuda.CUflushGPUDirectRDMAWritesOptions_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST             # <<<<<<<<<<<<<<
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = ccuda.CUflushGPUDirectRDMAWritesOptions_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum(__pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES, __pyx_t_4) < 0) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":973
 *     """
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = ccuda.CUflushGPUDirectRDMAWritesOptions_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = ccuda.CUflushGPUDirectRDMAWritesOptions_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS             # <<<<<<<<<<<<<<
 * 
 * class CUGPUDirectRDMAWritesOrdering(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum(__pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_2, __pyx_t_4) < 0) __PYX_ERR(0, 973, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":967
 *     CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = ccuda.CUgraphMem_attribute_enum.CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
 * 
 * class CUflushGPUDirectRDMAWritesOptions(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Bitmasks for
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUflushGPUDirectRDMAWritesOption, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUflushGPUDirectRDMAWritesOption, __pyx_t_4) < 0) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":975
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = ccuda.CUflushGPUDirectRDMAWritesOptions_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS
 * 
 * class CUGPUDirectRDMAWritesOrdering(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Platform native ordering for GPUDirect RDMA writes
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUGPUDirectRDMAWritesOrdering, __pyx_n_s_CUGPUDirectRDMAWritesOrdering, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Platform_native_ordering_for_GP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":979
 *     Platform native ordering for GPUDirect RDMA writes
 *     """
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE             # <<<<<<<<<<<<<<
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum(__pyx_e_4cuda_5ccuda_CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI, __pyx_t_4) < 0) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":980
 *     """
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER             # <<<<<<<<<<<<<<
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum(__pyx_e_4cuda_5ccuda_CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_2, __pyx_t_4) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":981
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES             # <<<<<<<<<<<<<<
 * 
 * class CUflushGPUDirectRDMAWritesScope(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum(__pyx_e_4cuda_5ccuda_CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GPU_DIRECT_RDMA_WRITES_ORDERI_3, __pyx_t_4) < 0) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":975
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = ccuda.CUflushGPUDirectRDMAWritesOptions_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS
 * 
 * class CUGPUDirectRDMAWritesOrdering(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Platform native ordering for GPUDirect RDMA writes
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUGPUDirectRDMAWritesOrdering, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUGPUDirectRDMAWritesOrdering, __pyx_t_4) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":983
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES
 * 
 * class CUflushGPUDirectRDMAWritesScope(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     The scopes for cuFlushGPUDirectRDMAWrites
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUflushGPUDirectRDMAWritesScope, __pyx_n_s_CUflushGPUDirectRDMAWritesScope, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_The_scopes_for_cuFlushGPUDirect); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":987
 *     The scopes for cuFlushGPUDirectRDMAWrites
 *     """
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER = ccuda.CUflushGPUDirectRDMAWritesScope_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER             # <<<<<<<<<<<<<<
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = ccuda.CUflushGPUDirectRDMAWritesScope_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(__pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_3, __pyx_t_4) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":988
 *     """
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER = ccuda.CUflushGPUDirectRDMAWritesScope_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = ccuda.CUflushGPUDirectRDMAWritesScope_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES             # <<<<<<<<<<<<<<
 * 
 * class CUflushGPUDirectRDMAWritesTarget(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(__pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_4, __pyx_t_4) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":983
 *     CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = ccuda.CUGPUDirectRDMAWritesOrdering_enum.CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES
 * 
 * class CUflushGPUDirectRDMAWritesScope(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     The scopes for cuFlushGPUDirectRDMAWrites
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUflushGPUDirectRDMAWritesScope, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUflushGPUDirectRDMAWritesScope, __pyx_t_4) < 0) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":990
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = ccuda.CUflushGPUDirectRDMAWritesScope_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES
 * 
 * class CUflushGPUDirectRDMAWritesTarget(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     The targets for cuFlushGPUDirectRDMAWrites
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUflushGPUDirectRDMAWritesTarget, __pyx_n_s_CUflushGPUDirectRDMAWritesTarget, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_The_targets_for_cuFlushGPUDirec); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":994
 *     The targets for cuFlushGPUDirectRDMAWrites
 *     """
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = ccuda.CUflushGPUDirectRDMAWritesTarget_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX             # <<<<<<<<<<<<<<
 * 
 * class CUgraphDebugDot_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(__pyx_e_4cuda_5ccuda_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_FLUSH_GPU_DIRECT_RDMA_WRITES_5, __pyx_t_4) < 0) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":990
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = ccuda.CUflushGPUDirectRDMAWritesScope_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES
 * 
 * class CUflushGPUDirectRDMAWritesTarget(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     The targets for cuFlushGPUDirectRDMAWrites
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUflushGPUDirectRDMAWritesTarget, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUflushGPUDirectRDMAWritesTarget, __pyx_t_4) < 0) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":996
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = ccuda.CUflushGPUDirectRDMAWritesTarget_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX
 * 
 * class CUgraphDebugDot_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     The additional write options for cuGraphDebugDotPrint
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUgraphDebugDot_flags, __pyx_n_s_CUgraphDebugDot_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_The_additional_write_options_fo); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":1000
 *     The additional write options for cuGraphDebugDotPrint
 *     """
 *     CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE, __pyx_t_4) < 0) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1001
 *     """
 *     CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE
 *     CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME, __pyx_t_4) < 0) __PYX_ERR(0, 1001, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1002
 *     CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE
 *     CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL, __pyx_t_4) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1003
 *     CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY, __pyx_t_4) < 0) __PYX_ERR(0, 1003, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1004
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET, __pyx_t_4) < 0) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1005
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NO, __pyx_t_4) < 0) __PYX_ERR(0, 1005, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1006
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_N, __pyx_t_4) < 0) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1007
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM, __pyx_t_4) < 0) __PYX_ERR(0, 1007, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1008
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEM_2, __pyx_t_4) < 0) __PYX_ERR(0, 1008, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1009
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_2, __pyx_t_4) < 0) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1010
 *     CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES, __pyx_t_4) < 0) __PYX_ERR(0, 1010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1011
 *     CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS             # <<<<<<<<<<<<<<
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALL, __pyx_t_4) < 0) __PYX_ERR(0, 1011, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1012
 *     CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS             # <<<<<<<<<<<<<<
 * 
 * class CUuserObject_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1012, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FRE, __pyx_t_4) < 0) __PYX_ERR(0, 1012, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":996
 *     CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = ccuda.CUflushGPUDirectRDMAWritesTarget_enum.CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX
 * 
 * class CUgraphDebugDot_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     The additional write options for cuGraphDebugDotPrint
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUgraphDebugDot_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphDebugDot_flags, __pyx_t_4) < 0) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":1014
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS
 * 
 * class CUuserObject_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for user objects for graphs
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUuserObject_flags, __pyx_n_s_CUuserObject_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_user_objects_for_grap); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":1018
 *     Flags for user objects for graphs
 *     """
 *     CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = ccuda.CUuserObject_flags_enum.CU_USER_OBJECT_NO_DESTRUCTOR_SYNC             # <<<<<<<<<<<<<<
 * 
 * class CUuserObjectRetain_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUuserObject_flags_enum(__pyx_e_4cuda_5ccuda_CU_USER_OBJECT_NO_DESTRUCTOR_SYNC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_USER_OBJECT_NO_DESTRUCTOR_SYN, __pyx_t_4) < 0) __PYX_ERR(0, 1018, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1014
 *     CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = ccuda.CUgraphDebugDot_flags_enum.CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS
 * 
 * class CUuserObject_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for user objects for graphs
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUuserObject_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUuserObject_flags, __pyx_t_4) < 0) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1020
 *     CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = ccuda.CUuserObject_flags_enum.CU_USER_OBJECT_NO_DESTRUCTOR_SYNC
 * 
 * class CUuserObjectRetain_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for retaining user object references for graphs
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_CUuserObjectRetain_flags, __pyx_n_s_CUuserObjectRetain_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_retaining_user_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":1024
 *     Flags for retaining user object references for graphs
 *     """
 *     CU_GRAPH_USER_OBJECT_MOVE = ccuda.CUuserObjectRetain_flags_enum.CU_GRAPH_USER_OBJECT_MOVE             # <<<<<<<<<<<<<<
 * 
 * class CUgraphInstantiate_flags(Enum):
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum(__pyx_e_4cuda_5ccuda_CU_GRAPH_USER_OBJECT_MOVE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CU_GRAPH_USER_OBJECT_MOVE, __pyx_t_4) < 0) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1020
 *     CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = ccuda.CUuserObject_flags_enum.CU_USER_OBJECT_NO_DESTRUCTOR_SYNC
 * 
 * class CUuserObjectRetain_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for retaining user object references for graphs
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_CUuserObjectRetain_flags, __pyx_t_2, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUuserObjectRetain_flags, __pyx_t_4) < 0) __PYX_ERR(0, 1020, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":1026
 *     CU_GRAPH_USER_OBJECT_MOVE = ccuda.CUuserObjectRetain_flags_enum.CU_GRAPH_USER_OBJECT_MOVE
 * 
 * class CUgraphInstantiate_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for instantiating a graph
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_CUgraphInstantiate_flags, __pyx_n_s_CUgraphInstantiate_flags, (PyObject *) NULL, __pyx_n_s_cuda_cuda, __pyx_kp_s_Flags_for_instantiating_a_graph); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "cuda/cuda.pyx":1030
 *     Flags for instantiating a graph
 *     """
 *     CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH = ccuda.CUgraphInstantiate_flags_enum.CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum(__pyx_e_4cuda_5ccuda_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_CUDA_GRAPH_INSTANTIATE_FLAG_AUTO, __pyx_t_4) < 0) __PYX_ERR(0, 1030, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":1026
 *     CU_GRAPH_USER_OBJECT_MOVE = ccuda.CUuserObjectRetain_flags_enum.CU_GRAPH_USER_OBJECT_MOVE
 * 
 * class CUgraphInstantiate_flags(Enum):             # <<<<<<<<<<<<<<
 *     """
 *     Flags for instantiating a graph
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CUgraphInstantiate_flags, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CUgraphInstantiate_flags, __pyx_t_4) < 0) __PYX_ERR(0, 1026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1064
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUcontext_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUcontext_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUcontext->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUcontext);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUcontext_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUcontext___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUcontext_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUcontext___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1098
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUmodule_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmodule_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__7)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmodule->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmodule);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUmodule_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmodule___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUmodule_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmodule___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1132
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10CUfunction_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUfunction_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUfunction->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUfunction);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10CUfunction_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUfunction___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10CUfunction_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUfunction___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1166
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUarray_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarray_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUarray->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUarray);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUarray_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarray___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUarray_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarray___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1200
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUmipmappedArray_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmipmappedArray_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmipmappedArray->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmipmappedArray);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUmipmappedArray_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmipmappedArray___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUmipmappedArray_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmipmappedArray___setstate_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__25)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1234
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUtexref_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexref_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__27)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexref->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUtexref);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUtexref_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexref___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUtexref_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexref___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1268
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUsurfref_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfref_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfref->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUsurfref);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUsurfref_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfref___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUsurfref_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfref___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1302
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUevent_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUevent_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUevent->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUevent);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUevent_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUevent___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUevent_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUevent___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1336
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUstream_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstream_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstream->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstream);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUstream_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstream___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUstream_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstream___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1370
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUgraphicsResource_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphicsResource_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphicsResource->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUgraphicsResource);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUgraphicsResource_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphicsResource___reduce_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUgraphicsResource_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphicsResource___setstate_cy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1404
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUexternalMemory_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexternalMemory_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalMemory->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUexternalMemory);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUexternalMemory_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexternalMemory___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUexternalMemory_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexternalMemory___setstate_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1438
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19CUexternalSemaphore_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexternalSemaphore_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1438, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUexternalSemaphore);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19CUexternalSemaphore_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexternalSemaphore___reduce_cyt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19CUexternalSemaphore_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexternalSemaphore___setstate_c, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1472
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUgraph_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraph_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraph->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1472, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUgraph);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUgraph_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraph___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7CUgraph_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraph___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1506
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUgraphNode_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphNode_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUgraphNode);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUgraphNode_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphNode___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUgraphNode_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphNode___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1540
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUgraphExec_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphExec_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphExec->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1540, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUgraphExec);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUgraphExec_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphExec___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUgraphExec_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUgraphExec___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1574
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUmemoryPool_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemoryPool_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemoryPool->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1574, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemoryPool);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUmemoryPool_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemoryPool___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUmemoryPool_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemoryPool___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1608
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUuserObject_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUuserObject_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUuserObject->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1608, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUuserObject);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUuserObject_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUuserObject___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUuserObject_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUuserObject___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1642
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUlinkState_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUlinkState_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUlinkState->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1642, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUlinkState);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUlinkState_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUlinkState___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUlinkState_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUlinkState___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1676
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUhostFn_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUhostFn_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUhostFn->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1676, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUhostFn);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUhostFn_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUhostFn___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUhostFn_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUhostFn___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1710
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUstreamCallback_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamCallback_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamCallback->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstreamCallback);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUstreamCallback_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamCallback___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUstreamCallback_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamCallback___setstate_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1744
 *     def __int__(self):
 *         return <void_ptr>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUoccupancyB2DSize_13getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUoccupancyB2DSize_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1744, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUoccupancyB2DSize);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUoccupancyB2DSize_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUoccupancyB2DSize___reduce_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUoccupancyB2DSize_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUoccupancyB2DSize___setstate_cy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1776
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUuuid_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUuuid_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUuuid_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1776, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUuuid_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUuuid_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUuuid_st___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9CUuuid_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUuuid_st___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1820
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19CUipcEventHandle_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUipcEventHandle_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcEventHandle_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1820, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUipcEventHandle_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19CUipcEventHandle_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUipcEventHandle_st___reduce_cyt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19CUipcEventHandle_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUipcEventHandle_st___setstate_c, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1872
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUipcMemHandle_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUipcMemHandle_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUipcMemHandle_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1872, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUipcMemHandle_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUipcMemHandle_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUipcMemHandle_st___reduce_cytho, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUipcMemHandle_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUipcMemHandle_st___setstate_cyt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1933
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpWaitValueParams_st_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 1933, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstreamMemOpWaitValueParams_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpWaitValueParams_st_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUstreamMemOpWaitValueParams_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpWaitValueParams_st_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2022
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpWriteValueParams_st_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstreamMemOpWriteValueParams_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpWriteValueParams_st_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_32CUstreamMemOpWriteValueParams_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpWriteValueParams_st_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2103
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstreamMemOpFlushRemoteWritesParams_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_39CUstreamMemOpFlushRemoteWritesParams_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamMemOpFlushRemoteWritesPa_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2169
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_30CUstreamBatchMemOpParams_union_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamBatchMemOpParams_union_g, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams_union);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_30CUstreamBatchMemOpParams_union_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamBatchMemOpParams_union_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_30CUstreamBatchMemOpParams_union_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamBatchMemOpParams_union_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2279
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUdevprop_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevprop_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevprop_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUdevprop_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUdevprop_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevprop_st___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUdevprop_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevprop_st___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__149)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2419
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23CUaccessPolicyWindow_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUaccessPolicyWindow_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__151)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUaccessPolicyWindow_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23CUaccessPolicyWindow_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUaccessPolicyWindow_st___reduce, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23CUaccessPolicyWindow_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUaccessPolicyWindow_st___setsta, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__154)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2517
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st_getPt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_KERNEL_NODE_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st___red, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_KERNEL_NODE_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_KERNEL_NODE_PARAMS_st___set, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2646
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st_getPt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_MEMSET_NODE_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st___red, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_MEMSET_NODE_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMSET_NODE_PARAMS_st___set, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2736
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_HOST_NODE_PARAMS_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2736, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_HOST_NODE_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_HOST_NODE_PARAMS_st___reduc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__167)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUDA_HOST_NODE_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_HOST_NODE_PARAMS_st___setst, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__169)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2793
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_27CUkernelNodeAttrValue_union_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUkernelNodeAttrValue_union_getP, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__171)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUkernelNodeAttrValue_union);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_27CUkernelNodeAttrValue_union_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUkernelNodeAttrValue_union___re, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_27CUkernelNodeAttrValue_union_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUkernelNodeAttrValue_union___se, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2854
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23CUstreamAttrValue_union_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamAttrValue_union_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__176)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2854, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUstreamAttrValue_union);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23CUstreamAttrValue_union_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamAttrValue_union___reduce, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23CUstreamAttrValue_union_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUstreamAttrValue_union___setsta, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2914
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUexecAffinitySmCount_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinitySmCount_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__181)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2914, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUexecAffinitySmCount_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUexecAffinitySmCount_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinitySmCount_st___reduc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUexecAffinitySmCount_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinitySmCount_st___setst, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":2950
 *     def __init__(self, void_ptr _ptr):
 *         self._smCount = CUexecAffinitySmCount(_ptr=<void_ptr>&self._ptr[0].param.smCount)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinityParam_v1_CUexecAf_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__186)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinityParam_v1_CUexecAf_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_77_CUexecAffinityParam_v1_CUexecAffinityParam_v1_CUexecAffinityParam_st_param_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinityParam_v1_CUexecAf_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__189)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3004
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_22CUexecAffinityParam_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinityParam_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 3004, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUexecAffinityParam_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_22CUexecAffinityParam_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinityParam_st___reduce, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_22CUexecAffinityParam_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUexecAffinityParam_st___setstat, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3097
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY2D_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY2D_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY2D_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY2D_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY2D_st___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY2D_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY2D_st___setstate_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3317
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY3D_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY3D_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 3317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY3D_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY3D_st___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUDA_MEMCPY3D_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY3D_st___setstate_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3612
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY3D_PEER_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 3612, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_MEMCPY3D_PEER_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY3D_PEER_st___reduce_c, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__207)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_MEMCPY3D_PEER_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEMCPY3D_PEER_st___setstate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3858
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 3858, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_DESCRIPTOR_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st___reduc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_24CUDA_ARRAY_DESCRIPTOR_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_DESCRIPTOR_st___setst, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":3940
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st_getPt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 3940, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_ARRAY3D_DESCRIPTOR_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st___red, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__217)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_ARRAY3D_DESCRIPTOR_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY3D_DESCRIPTOR_st___set, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__219)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4020
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4020, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_109_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_v1_CUDA_ARRAY_SPARSE_PROPERTIES_st_tileExtent_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_v1_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4093
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4093, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_ARRAY_SPARSE_PROPERTIES_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUDA_ARRAY_SPARSE_PROPERTIES_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_ARRAY_SPARSE_PROPERTIES_st_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4165
 *     def __init__(self, void_ptr _ptr):
 *         self._hArray = CUarray(_ptr=<void_ptr>&self._ptr[0].res.array.hArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_7, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__232)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_82_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_array_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_9, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__234)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4201
 *     def __init__(self, void_ptr _ptr):
 *         self._hMipmappedArray = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].res.mipmap.hMipmappedArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_10, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__236)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_11, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_mipmap_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_12, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4243
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.linear.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_13, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__241)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_14, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_linear_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_15, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__244)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4313
 *     def __init__(self, void_ptr _ptr):
 *         self._devPtr = CUdeviceptr(_ptr=<void_ptr>&self._ptr[0].res.pitch2D.devPtr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_16, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4313, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_17, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__247)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_84_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_18, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__249)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4389
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_19, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__251)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_20, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_85_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_21, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4437
 *         self._pitch2D = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_pitch2D_s(_ptr=<void_ptr>self._ptr)
 *         self._reserved = _CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_res_reserved_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_22, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__256)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_23, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_72_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_v1_CUDA_RESOURCE_DESC_st_res_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_v1_CUDA_RESO_24, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4541
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4541, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_st___reduce_c, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__262)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_RESOURCE_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_DESC_st___setstate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__264)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4627
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_TEXTURE_DESC_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__266)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4627, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_TEXTURE_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_TEXTURE_DESC_st___reduce_cy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_20CUDA_TEXTURE_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_TEXTURE_DESC_st___setstate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__269)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4762
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st_getPt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__271)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4762, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_RESOURCE_VIEW_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st___red, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_26CUDA_RESOURCE_VIEW_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_RESOURCE_VIEW_DESC_st___set, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4876
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__277)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_36CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_POINTER_ATTRIBUTE_P2P_TOKEN_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__279)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":4951
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_LAUNCH_PARAMS_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__281)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 4951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_LAUNCH_PARAMS_st___reduce_c, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21CUDA_LAUNCH_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_LAUNCH_PARAMS_st___setstate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5061
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5061, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__287)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_130_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5109
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_7, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__292)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_117_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_handle_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DES_8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__294)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5185
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__296)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5275
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__302)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5354
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__306)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__307)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_44CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5420
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__311)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__312)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5468
 *     def __init__(self, void_ptr _ptr):
 *         self._win32 = _CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_handle_win32_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__316)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_7, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_handle_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__319)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5542
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__321)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5542, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__322)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__324)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5606
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__326)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5606, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__327)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_145_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_fence_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_7, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__329)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5644
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__331)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5644, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_9, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_149_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_10, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5688
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_11, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__336)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_12, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_150_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_13, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__339)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5732
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_14, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__341)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5732, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_15, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_132_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_params_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_16, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__344)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5827
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5827, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_40CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_P_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5883
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__352)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_fence_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_7, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5921
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__356)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_9, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_143_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_10, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__359)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":5967
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_11, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_12, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__362)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_144_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_13, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6019
 *         self._nvSciSync = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_nvSciSync_u(_ptr=<void_ptr>self._ptr)
 *         self._keyedMutex = _CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_params_keyedMutex_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_14, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__366)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6019, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_15, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_126_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_params_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PA_16, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6114
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__371)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_38CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXTERNAL_SEMAPHORE_WAIT_PAR_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__374)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6190
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__376)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6190, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__377)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_34CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__379)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6288
 *         if self._paramsArray is not NULL:
 *             free(self._paramsArray)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__381)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__382)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_32CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__384)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6369
 *         self._mipmap = CUmipmappedArray(_ptr=<void_ptr>&self._ptr[0].resource.mipmap)
 *         self._array = CUarray(_ptr=<void_ptr>&self._ptr[0].resource.array)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_6, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__386)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_7, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_65_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_resource_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__389)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6427
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_9, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__391)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6427, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_10, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__392)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_92_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_11, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__394)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6523
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_12, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_13, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__397)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_88_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_14, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__399)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6578
 *         self._sparseLevel = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_sparseLevel_s(_ptr=<void_ptr>self._ptr)
 *         self._miptail = _CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_subresource_miptail_s(_ptr=<void_ptr>self._ptr)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_15, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__401)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6578, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_16, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__402)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_68_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_subresource_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_17, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__404)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6630
 *     def __init__(self, void_ptr _ptr):
 *         self._memHandle = CUmemGenericAllocationHandle(_ptr=<void_ptr>&self._ptr[0].memHandle.memHandle)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_18, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6630, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_19, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__407)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_66_CUarrayMapInfo_v1_CUarrayMapInfo_v1_CUarrayMapInfo_st_memHandle_u_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_v1_CUarrayMapInf_20, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__409)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6701
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUarrayMapInfo_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__411)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUarrayMapInfo_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUarrayMapInfo_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_st___reduce_cytho, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__412)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUarrayMapInfo_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUarrayMapInfo_st___setstate_cyt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__414)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6843
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUmemLocation_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemLocation_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__416)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemLocation_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6843, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemLocation_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUmemLocation_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemLocation_st___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__417)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_16CUmemLocation_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemLocation_st___setstate_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__419)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6893
 *     def __init__(self, void_ptr _ptr):
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_5getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAllocationProp_v1_CUmemAll_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda__CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAllocationProp_v1_CUmemAll_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__422)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_82_CUmemAllocationProp_v1_CUmemAllocationProp_v1_CUmemAllocationProp_st_allocFlags_s_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAllocationProp_v1_CUmemAll_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__424)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":6980
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_22CUmemAllocationProp_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAllocationProp_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__426)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 6980, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemAllocationProp_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_22CUmemAllocationProp_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAllocationProp_st___reduce, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__427)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_22CUmemAllocationProp_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAllocationProp_st___setstat, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__429)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7070
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUmemAccessDesc_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAccessDesc_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__431)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7070, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemAccessDesc_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUmemAccessDesc_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAccessDesc_st___reduce_cyth, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__432)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_18CUmemAccessDesc_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemAccessDesc_st___setstate_cy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__434)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7143
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUmemPoolProps_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemPoolProps_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__436)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolProps_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemPoolProps_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUmemPoolProps_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemPoolProps_st___reduce_cytho, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__437)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17CUmemPoolProps_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemPoolProps_st___setstate_cyt, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__439)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7229
 *             free(self._ptr)
 *         pass
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_25CUmemPoolPtrExportData_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemPoolPtrExportData_st_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__441)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemPoolPtrExportData_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_25CUmemPoolPtrExportData_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemPoolPtrExportData_st___redu, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__442)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_25CUmemPoolPtrExportData_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemPoolPtrExportData_st___sets, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__444)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7293
 *         if self._accessDescs is not NULL:
 *             free(self._accessDescs)
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 *     def __repr__(self):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_7getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_ge, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__446)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7293, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUDA_MEM_ALLOC_NODE_PARAMS_st);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__447)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_29CUDA_MEM_ALLOC_NODE_PARAMS_st_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUDA_MEM_ALLOC_NODE_PARAMS_st_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__449)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7388
 *     def __int__(self):
 *         return <uint32_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10cuuint32_t_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cuuint32_t_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__451)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint32_t->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7388, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_cuuint32_t);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10cuuint32_t_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cuuint32_t___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10cuuint32_t_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cuuint32_t___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__454)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7419
 *     def __int__(self):
 *         return <uint64_t>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10cuuint64_t_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cuuint64_t_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__456)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_cuuint64_t->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_cuuint64_t);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10cuuint64_t_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cuuint64_t___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__457)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_10cuuint64_t_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cuuint64_t___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__459)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7450
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_14CUdeviceptr_v2_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdeviceptr_v2_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__461)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr_v2->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7450, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUdeviceptr_v2);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_14CUdeviceptr_v2_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdeviceptr_v2___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__462)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_14CUdeviceptr_v2_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdeviceptr_v2___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__464)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7481
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUdeviceptr_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdeviceptr_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__466)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUdeviceptr->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7481, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUdeviceptr);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUdeviceptr_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdeviceptr___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__467)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUdeviceptr_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdeviceptr___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__469)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7512
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUdevice_v1_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevice_v1_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__471)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice_v1->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7512, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUdevice_v1);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUdevice_v1_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevice_v1___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__472)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUdevice_v1_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevice_v1___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__474)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7543
 *     def __int__(self):
 *         return <int>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUdevice_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevice_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__476)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUdevice->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUdevice);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUdevice_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevice___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__477)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_8CUdevice_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUdevice___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__479)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7574
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_14CUtexObject_v1_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexObject_v1_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__481)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexObject_v1->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7574, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUtexObject_v1);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_14CUtexObject_v1_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexObject_v1___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__482)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_14CUtexObject_v1_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexObject_v1___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__484)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7605
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUtexObject_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexObject_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__486)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUtexObject->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7605, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUtexObject);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUtexObject_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexObject___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__487)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11CUtexObject_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUtexObject___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__489)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7636
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_15CUsurfObject_v1_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfObject_v1_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__491)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfObject_v1->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUsurfObject_v1);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_15CUsurfObject_v1_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfObject_v1___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__492)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_15CUsurfObject_v1_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfObject_v1___setstate_cytho, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__494)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7667
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUsurfObject_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfObject_getPtr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__496)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUsurfObject->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7667, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUsurfObject);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUsurfObject_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfObject___reduce_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__497)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_12CUsurfObject_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUsurfObject___setstate_cython, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__499)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7698
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemGenericAllocationHandle_v1_3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__501)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle_v1->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle_v1);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemGenericAllocationHandle_v1_4, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31CUmemGenericAllocationHandle_v1_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemGenericAllocationHandle_v1_5, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__504)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7729
 *     def __int__(self):
 *         return <unsigned long long>self._ptr[0]
 *     def getPtr(self):             # <<<<<<<<<<<<<<
 *         return <void_ptr>self._ptr
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_28CUmemGenericAllocationHandle_9getPtr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemGenericAllocationHandle_get, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__506)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle->tp_dict, __pyx_n_s_getPtr, __pyx_t_1) < 0) __PYX_ERR(0, 7729, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cuda_4cuda_CUmemGenericAllocationHandle);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_28CUmemGenericAllocationHandle_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemGenericAllocationHandle___r, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__507)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_28CUmemGenericAllocationHandle_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CUmemGenericAllocationHandle___s, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__509)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7733
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorString(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string description of an error code.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_error, __pyx_t_2) < 0) __PYX_ERR(0, 7733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_1cuGetErrorString, 0, __pyx_n_s_cuGetErrorString, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__511)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGetErrorString, __pyx_t_2) < 0) __PYX_ERR(0, 7733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7765
 * 
 * @cython.embedsignature(True)
 * def cuGetErrorName(error not None : CUresult):             # <<<<<<<<<<<<<<
 *     """ Gets the string representation of an error code enum name.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUresult); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_error, __pyx_t_1) < 0) __PYX_ERR(0, 7765, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_3cuGetErrorName, 0, __pyx_n_s_cuGetErrorName, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__512)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGetErrorName, __pyx_t_1) < 0) __PYX_ERR(0, 7765, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7797
 * 
 * @cython.embedsignature(True)
 * def cuInit(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Initialize the CUDA driver API.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_5cuInit, 0, __pyx_n_s_cuInit, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__513)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuInit, __pyx_t_1) < 0) __PYX_ERR(0, 7797, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7825
 * 
 * @cython.embedsignature(True)
 * def cuDriverGetVersion():             # <<<<<<<<<<<<<<
 *     """ Returns the latest CUDA version supported by driver.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_7cuDriverGetVersion, 0, __pyx_n_s_cuDriverGetVersion, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__514)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDriverGetVersion, __pyx_t_1) < 0) __PYX_ERR(0, 7825, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7853
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGet(int ordinal):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_9cuDeviceGet, 0, __pyx_n_s_cuDeviceGet, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__515)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGet, __pyx_t_1) < 0) __PYX_ERR(0, 7853, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7891
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetCount():             # <<<<<<<<<<<<<<
 *     """ Returns the number of compute-capable devices.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_11cuDeviceGetCount, 0, __pyx_n_s_cuDeviceGetCount, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__516)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetCount, __pyx_t_1) < 0) __PYX_ERR(0, 7891, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":7925
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetName(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns an identifer string for the device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 7925, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_13cuDeviceGetName, 0, __pyx_n_s_cuDeviceGetName, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__517)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetName, __pyx_t_2) < 0) __PYX_ERR(0, 7925, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":7967
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 7967, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_15cuDeviceGetUuid, 0, __pyx_n_s_cuDeviceGetUuid, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__518)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetUuid, __pyx_t_1) < 0) __PYX_ERR(0, 7967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8010
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetUuid_v2(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an UUID for the device (11.4+)
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8010, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_17cuDeviceGetUuid_v2, 0, __pyx_n_s_cuDeviceGetUuid_v2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__519)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetUuid_v2, __pyx_t_2) < 0) __PYX_ERR(0, 8010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8048
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetLuid(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Return an LUID and device node mask for the device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8048, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_19cuDeviceGetLuid, 0, __pyx_n_s_cuDeviceGetLuid, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__520)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetLuid, __pyx_t_1) < 0) __PYX_ERR(0, 8048, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8088
 * 
 * @cython.embedsignature(True)
 * def cuDeviceTotalMem(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the total amount of memory on the device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8088, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_21cuDeviceTotalMem, 0, __pyx_n_s_cuDeviceTotalMem, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__521)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceTotalMem, __pyx_t_2) < 0) __PYX_ERR(0, 8088, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8126
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetTexture1DLinearMaxWidth(pformat not None : CUarray_format, unsigned numChannels, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the maximum number of elements allocatable in a 1D linear texture for a given texture element size.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pformat, __pyx_t_1) < 0) __PYX_ERR(0, 8126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8126, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_23cuDeviceGetTexture1DLinearMaxWidth, 0, __pyx_n_s_cuDeviceGetTexture1DLinearMaxWid, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__522)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetTexture1DLinearMaxWid, __pyx_t_1) < 0) __PYX_ERR(0, 8126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8171
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetAttribute(attrib not None : CUdevice_attribute, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUdevice_attribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attrib, __pyx_t_2) < 0) __PYX_ERR(0, 8171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8171, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_25cuDeviceGetAttribute, 0, __pyx_n_s_cuDeviceGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__523)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetAttribute, __pyx_t_2) < 0) __PYX_ERR(0, 8171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8414
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetNvSciSyncAttributes(dev not None : CUdevice, int flags):             # <<<<<<<<<<<<<<
 *     """ Return NvSciSync attributes that this device can support.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8414, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_27cuDeviceGetNvSciSyncAttributes, 0, __pyx_n_s_cuDeviceGetNvSciSyncAttributes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__524)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetNvSciSyncAttributes, __pyx_t_1) < 0) __PYX_ERR(0, 8414, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8468
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetMemPool(dev not None : CUdevice, pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Sets the current memory pool of a device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8468, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 8468, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_29cuDeviceSetMemPool, 0, __pyx_n_s_cuDeviceSetMemPool, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__525)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceSetMemPool, __pyx_t_2) < 0) __PYX_ERR(0, 8468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8500
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Gets the current mempool for a device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8500, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_31cuDeviceGetMemPool, 0, __pyx_n_s_cuDeviceGetMemPool, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__526)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetMemPool, __pyx_t_1) < 0) __PYX_ERR(0, 8500, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8528
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetDefaultMemPool(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the default mempool of a device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8528, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_33cuDeviceGetDefaultMemPool, 0, __pyx_n_s_cuDeviceGetDefaultMemPool, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__527)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetDefaultMemPool, __pyx_t_2) < 0) __PYX_ERR(0, 8528, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8561
 * 
 * @cython.embedsignature(True)
 * def cuFlushGPUDirectRDMAWrites(target not None : CUflushGPUDirectRDMAWritesTarget, scope not None : CUflushGPUDirectRDMAWritesScope):             # <<<<<<<<<<<<<<
 *     """ Blocks until remote writes are visible to the specified scope.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUflushGPUDirectRDMAWritesTarget); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target, __pyx_t_1) < 0) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUflushGPUDirectRDMAWritesScope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_scope, __pyx_t_1) < 0) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_35cuFlushGPUDirectRDMAWrites, 0, __pyx_n_s_cuFlushGPUDirectRDMAWrites, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__528)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFlushGPUDirectRDMAWrites, __pyx_t_1) < 0) __PYX_ERR(0, 8561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8602
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetProperties(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns properties for a selected device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8602, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_37cuDeviceGetProperties, 0, __pyx_n_s_cuDeviceGetProperties, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__529)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetProperties, __pyx_t_2) < 0) __PYX_ERR(0, 8602, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8662
 * 
 * @cython.embedsignature(True)
 * def cuDeviceComputeCapability(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns the compute capability of the device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8662, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_39cuDeviceComputeCapability, 0, __pyx_n_s_cuDeviceComputeCapability, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__530)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceComputeCapability, __pyx_t_1) < 0) __PYX_ERR(0, 8662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8707
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRetain(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Retain the primary context on the GPU.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8707, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_41cuDevicePrimaryCtxRetain, 0, __pyx_n_s_cuDevicePrimaryCtxRetain, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__531)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDevicePrimaryCtxRetain, __pyx_t_2) < 0) __PYX_ERR(0, 8707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8769
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxRelease(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Release the primary context on the GPU.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8769, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_43cuDevicePrimaryCtxRelease, 0, __pyx_n_s_cuDevicePrimaryCtxRelease, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__532)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDevicePrimaryCtxRelease, __pyx_t_1) < 0) __PYX_ERR(0, 8769, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8820
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxSetFlags(dev not None : CUdevice, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set flags for the primary context.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8820, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_45cuDevicePrimaryCtxSetFlags, 0, __pyx_n_s_cuDevicePrimaryCtxSetFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__533)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDevicePrimaryCtxSetFlags, __pyx_t_2) < 0) __PYX_ERR(0, 8820, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8889
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxGetState(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Get the state of the primary context.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8889, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_47cuDevicePrimaryCtxGetState, 0, __pyx_n_s_cuDevicePrimaryCtxGetState, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__534)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDevicePrimaryCtxGetState, __pyx_t_1) < 0) __PYX_ERR(0, 8889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":8926
 * 
 * @cython.embedsignature(True)
 * def cuDevicePrimaryCtxReset(dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Destroy all allocations and reset all state on the primary context.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8926, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_49cuDevicePrimaryCtxReset, 0, __pyx_n_s_cuDevicePrimaryCtxReset, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__535)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDevicePrimaryCtxReset, __pyx_t_2) < 0) __PYX_ERR(0, 8926, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":8976
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetExecAffinitySupport(typename not None : CUexecAffinityType, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns information about the execution affinity support of the device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUexecAffinityType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_typename, __pyx_t_1) < 0) __PYX_ERR(0, 8976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 8976, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_51cuDeviceGetExecAffinitySupport, 0, __pyx_n_s_cuDeviceGetExecAffinitySupport, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__536)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetExecAffinitySupport, __pyx_t_1) < 0) __PYX_ERR(0, 8976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":9019
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate(unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 9019, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_53cuCtxCreate, 0, __pyx_n_s_cuCtxCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__537)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxCreate, __pyx_t_2) < 0) __PYX_ERR(0, 9019, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9112
 * 
 * @cython.embedsignature(True)
 * def cuCtxCreate_v3(paramsArray : List[CUexecAffinityParam], int numParams, unsigned int flags, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA context with execution affinity.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexecAffinityParam)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_paramsArray_2, __pyx_t_3) < 0) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 9112, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_55cuCtxCreate_v3, 0, __pyx_n_s_cuCtxCreate_v3, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__538)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxCreate_v3, __pyx_t_3) < 0) __PYX_ERR(0, 9112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9241
 * 
 * @cython.embedsignature(True)
 * def cuCtxDestroy(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Destroy a CUDA context.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 9241, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_57cuCtxDestroy, 0, __pyx_n_s_cuCtxDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__540)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxDestroy, __pyx_t_2) < 0) __PYX_ERR(0, 9241, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9298
 * 
 * @cython.embedsignature(True)
 * def cuCtxPushCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Pushes a context on the current CPU thread.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 9298, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_59cuCtxPushCurrent, 0, __pyx_n_s_cuCtxPushCurrent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__541)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxPushCurrent, __pyx_t_3) < 0) __PYX_ERR(0, 9298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9343
 * 
 * @cython.embedsignature(True)
 * def cuCtxPopCurrent():             # <<<<<<<<<<<<<<
 *     """ Pops the current CUDA context from the current CPU thread.
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_61cuCtxPopCurrent, 0, __pyx_n_s_cuCtxPopCurrent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__542)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxPopCurrent, __pyx_t_3) < 0) __PYX_ERR(0, 9343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9383
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCurrent(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Binds the specified CUDA context to the calling CPU thread.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 9383, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_63cuCtxSetCurrent, 0, __pyx_n_s_cuCtxSetCurrent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__543)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxSetCurrent, __pyx_t_2) < 0) __PYX_ERR(0, 9383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9422
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCurrent():             # <<<<<<<<<<<<<<
 *     """ Returns the CUDA context bound to the calling CPU thread.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_65cuCtxGetCurrent, 0, __pyx_n_s_cuCtxGetCurrent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__544)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetCurrent, __pyx_t_2) < 0) __PYX_ERR(0, 9422, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9450
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetDevice():             # <<<<<<<<<<<<<<
 *     """ Returns the device ID for the current context.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_67cuCtxGetDevice, 0, __pyx_n_s_cuCtxGetDevice, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__545)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetDevice, __pyx_t_2) < 0) __PYX_ERR(0, 9450, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9486
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetFlags():             # <<<<<<<<<<<<<<
 *     """ Returns the flags for the current context.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_69cuCtxGetFlags, 0, __pyx_n_s_cuCtxGetFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__546)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetFlags, __pyx_t_2) < 0) __PYX_ERR(0, 9486, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9520
 * 
 * @cython.embedsignature(True)
 * def cuCtxSynchronize():             # <<<<<<<<<<<<<<
 *     """ Block for a context's tasks to complete.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_71cuCtxSynchronize, 0, __pyx_n_s_cuCtxSynchronize, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__547)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxSynchronize, __pyx_t_2) < 0) __PYX_ERR(0, 9520, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9558
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetLimit(limit not None : CUlimit, size_t value):             # <<<<<<<<<<<<<<
 *     """ Set resource limits.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUlimit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_limit, __pyx_t_3) < 0) __PYX_ERR(0, 9558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_73cuCtxSetLimit, 0, __pyx_n_s_cuCtxSetLimit, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__548)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxSetLimit, __pyx_t_3) < 0) __PYX_ERR(0, 9558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9663
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetLimit(limit not None : CUlimit):             # <<<<<<<<<<<<<<
 *     """ Returns resource limits.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUlimit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_limit, __pyx_t_2) < 0) __PYX_ERR(0, 9663, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_75cuCtxGetLimit, 0, __pyx_n_s_cuCtxGetLimit, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__549)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetLimit, __pyx_t_2) < 0) __PYX_ERR(0, 9663, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9714
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetCacheConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the preferred cache configuration for the current context.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_77cuCtxGetCacheConfig, 0, __pyx_n_s_cuCtxGetCacheConfig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__550)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetCacheConfig, __pyx_t_2) < 0) __PYX_ERR(0, 9714, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9765
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetCacheConfig(config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for the current context.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUfunc_cache); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_config, __pyx_t_3) < 0) __PYX_ERR(0, 9765, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_79cuCtxSetCacheConfig, 0, __pyx_n_s_cuCtxSetCacheConfig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__551)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxSetCacheConfig, __pyx_t_3) < 0) __PYX_ERR(0, 9765, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9829
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetSharedMemConfig():             # <<<<<<<<<<<<<<
 *     """ Returns the current shared memory configuration for the current context.
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_81cuCtxGetSharedMemConfig, 0, __pyx_n_s_cuCtxGetSharedMemConfig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__552)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetSharedMemConfig, __pyx_t_3) < 0) __PYX_ERR(0, 9829, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9878
 * 
 * @cython.embedsignature(True)
 * def cuCtxSetSharedMemConfig(config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for the current context.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUsharedconfig); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_config, __pyx_t_2) < 0) __PYX_ERR(0, 9878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_83cuCtxSetSharedMemConfig, 0, __pyx_n_s_cuCtxSetSharedMemConfig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__553)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxSetSharedMemConfig, __pyx_t_2) < 0) __PYX_ERR(0, 9878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":9942
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetApiVersion(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Gets the context's API version.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 9942, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_85cuCtxGetApiVersion, 0, __pyx_n_s_cuCtxGetApiVersion, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__554)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetApiVersion, __pyx_t_3) < 0) __PYX_ERR(0, 9942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":9990
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetStreamPriorityRange():             # <<<<<<<<<<<<<<
 *     """ Returns numerical values that correspond to the least and greatest stream priorities.
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_87cuCtxGetStreamPriorityRange, 0, __pyx_n_s_cuCtxGetStreamPriorityRange, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__555)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetStreamPriorityRange, __pyx_t_3) < 0) __PYX_ERR(0, 9990, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10037
 * 
 * @cython.embedsignature(True)
 * def cuCtxResetPersistingL2Cache():             # <<<<<<<<<<<<<<
 *     """ Resets all persisting lines in cache to normal status.
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_89cuCtxResetPersistingL2Cache, 0, __pyx_n_s_cuCtxResetPersistingL2Cache, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__556)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxResetPersistingL2Cache, __pyx_t_3) < 0) __PYX_ERR(0, 10037, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10055
 * 
 * @cython.embedsignature(True)
 * def cuCtxGetExecAffinity(typename not None : CUexecAffinityType):             # <<<<<<<<<<<<<<
 *     """ Returns the execution affinity setting for the current context.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUexecAffinityType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_typename, __pyx_t_2) < 0) __PYX_ERR(0, 10055, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_91cuCtxGetExecAffinity, 0, __pyx_n_s_cuCtxGetExecAffinity, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__557)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxGetExecAffinity, __pyx_t_2) < 0) __PYX_ERR(0, 10055, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10086
 * 
 * @cython.embedsignature(True)
 * def cuCtxAttach(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Increment a context's usage-count.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_93cuCtxAttach, 0, __pyx_n_s_cuCtxAttach, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__558)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxAttach, __pyx_t_2) < 0) __PYX_ERR(0, 10086, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10137
 * 
 * @cython.embedsignature(True)
 * def cuCtxDetach(ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Decrement a context's usage-count.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 10137, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_95cuCtxDetach, 0, __pyx_n_s_cuCtxDetach, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__559)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxDetach, __pyx_t_3) < 0) __PYX_ERR(0, 10137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10183
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoad(char* fname):             # <<<<<<<<<<<<<<
 *     """ Loads a compute module.
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_97cuModuleLoad, 0, __pyx_n_s_cuModuleLoad, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__560)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleLoad, __pyx_t_3) < 0) __PYX_ERR(0, 10183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10234
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadData(image):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_99cuModuleLoadData, 0, __pyx_n_s_cuModuleLoadData, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__561)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleLoadData, __pyx_t_3) < 0) __PYX_ERR(0, 10234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10284
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadDataEx(image, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Load a module's data with options.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_options, __pyx_t_4) < 0) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_List); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_optionValues, __pyx_t_2) < 0) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_101cuModuleLoadDataEx, 0, __pyx_n_s_cuModuleLoadDataEx, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__562)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleLoadDataEx, __pyx_t_2) < 0) __PYX_ERR(0, 10284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10351
 * 
 * @cython.embedsignature(True)
 * def cuModuleLoadFatBinary(fatCubin):             # <<<<<<<<<<<<<<
 *     """ Load a module's data.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_103cuModuleLoadFatBinary, 0, __pyx_n_s_cuModuleLoadFatBinary, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__565)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleLoadFatBinary, __pyx_t_2) < 0) __PYX_ERR(0, 10351, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10406
 * 
 * @cython.embedsignature(True)
 * def cuModuleUnload(hmod not None : CUmodule):             # <<<<<<<<<<<<<<
 *     """ Unloads a module.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hmod, __pyx_n_u_CUmodule_2) < 0) __PYX_ERR(0, 10406, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_105cuModuleUnload, 0, __pyx_n_s_cuModuleUnload, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__566)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleUnload, __pyx_t_3) < 0) __PYX_ERR(0, 10406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10441
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetFunction(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a function handle.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hmod, __pyx_n_u_CUmodule_2) < 0) __PYX_ERR(0, 10441, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_107cuModuleGetFunction, 0, __pyx_n_s_cuModuleGetFunction, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__567)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleGetFunction, __pyx_t_2) < 0) __PYX_ERR(0, 10441, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10482
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetGlobal(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a global pointer from a module.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hmod, __pyx_n_u_CUmodule_2) < 0) __PYX_ERR(0, 10482, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_109cuModuleGetGlobal, 0, __pyx_n_s_cuModuleGetGlobal, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__568)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleGetGlobal, __pyx_t_3) < 0) __PYX_ERR(0, 10482, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10530
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetTexRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a texture reference.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hmod, __pyx_n_u_CUmodule_2) < 0) __PYX_ERR(0, 10530, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_111cuModuleGetTexRef, 0, __pyx_n_s_cuModuleGetTexRef, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__569)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleGetTexRef, __pyx_t_2) < 0) __PYX_ERR(0, 10530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10575
 * 
 * @cython.embedsignature(True)
 * def cuModuleGetSurfRef(hmod not None : CUmodule, char* name):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a surface reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hmod, __pyx_n_u_CUmodule_2) < 0) __PYX_ERR(0, 10575, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_113cuModuleGetSurfRef, 0, __pyx_n_s_cuModuleGetSurfRef, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__570)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuModuleGetSurfRef, __pyx_t_3) < 0) __PYX_ERR(0, 10575, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10618
 * 
 * @cython.embedsignature(True)
 * def cuLinkCreate(unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Creates a pending JIT linker invocation.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_options, __pyx_t_4) < 0) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_List); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_optionValues, __pyx_t_2) < 0) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_115cuLinkCreate, 0, __pyx_n_s_cuLinkCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__571)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLinkCreate, __pyx_t_2) < 0) __PYX_ERR(0, 10618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10682
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddData(state not None : CUlinkState, typename not None : CUjitInputType, data, size_t size, char* name, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add an input to a pending linker invocation.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_state, __pyx_n_u_CUlinkState_2) < 0) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUjitInputType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_typename, __pyx_t_3) < 0) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_options, __pyx_t_4) < 0) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_List); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_optionValues, __pyx_t_3) < 0) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_117cuLinkAddData, 0, __pyx_n_s_cuLinkAddData, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__572)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLinkAddData, __pyx_t_3) < 0) __PYX_ERR(0, 10682, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10749
 * 
 * @cython.embedsignature(True)
 * def cuLinkAddFile(state not None : CUlinkState, typename not None : CUjitInputType, char* path, unsigned int numOptions, options : List[CUjit_option], optionValues : List[Any]):             # <<<<<<<<<<<<<<
 *     """ Add a file input to a pending linker invocation.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_state, __pyx_n_u_CUlinkState_2) < 0) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUjitInputType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_typename, __pyx_t_2) < 0) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUjit_option); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_options, __pyx_t_4) < 0) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_List); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_optionValues, __pyx_t_2) < 0) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_119cuLinkAddFile, 0, __pyx_n_s_cuLinkAddFile, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__573)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLinkAddFile, __pyx_t_2) < 0) __PYX_ERR(0, 10749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10813
 * 
 * @cython.embedsignature(True)
 * def cuLinkComplete(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Complete a pending linker invocation.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_state, __pyx_n_u_CUlinkState_2) < 0) __PYX_ERR(0, 10813, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_121cuLinkComplete, 0, __pyx_n_s_cuLinkComplete, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__574)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLinkComplete, __pyx_t_3) < 0) __PYX_ERR(0, 10813, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":10851
 * 
 * @cython.embedsignature(True)
 * def cuLinkDestroy(state not None : CUlinkState):             # <<<<<<<<<<<<<<
 *     """ Destroys state for a JIT linker invocation.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_state, __pyx_n_u_CUlinkState_2) < 0) __PYX_ERR(0, 10851, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_123cuLinkDestroy, 0, __pyx_n_s_cuLinkDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__575)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLinkDestroy, __pyx_t_2) < 0) __PYX_ERR(0, 10851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10875
 * 
 * @cython.embedsignature(True)
 * def cuMemGetInfo():             # <<<<<<<<<<<<<<
 *     """ Gets free and total memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_125cuMemGetInfo, 0, __pyx_n_s_cuMemGetInfo, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__576)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemGetInfo, __pyx_t_2) < 0) __PYX_ERR(0, 10875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":10943
 * 
 * @cython.embedsignature(True)
 * def cuMemAlloc(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates device memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_127cuMemAlloc, 0, __pyx_n_s_cuMemAlloc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__577)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAlloc, __pyx_t_2) < 0) __PYX_ERR(0, 10943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11014
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocPitch(size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes):             # <<<<<<<<<<<<<<
 *     """ Allocates pitched device memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_129cuMemAllocPitch, 0, __pyx_n_s_cuMemAllocPitch, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__578)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAllocPitch, __pyx_t_2) < 0) __PYX_ERR(0, 11014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11116
 * 
 * @cython.embedsignature(True)
 * def cuMemFree(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Frees device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 11116, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_131cuMemFree, 0, __pyx_n_s_cuMemFree, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__579)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemFree, __pyx_t_3) < 0) __PYX_ERR(0, 11116, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":11183
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAddressRange(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get information on memory allocations.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 11183, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_133cuMemGetAddressRange, 0, __pyx_n_s_cuMemGetAddressRange, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__580)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemGetAddressRange, __pyx_t_2) < 0) __PYX_ERR(0, 11183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11256
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocHost(size_t bytesize):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_135cuMemAllocHost, 0, __pyx_n_s_cuMemAllocHost, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__581)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAllocHost, __pyx_t_2) < 0) __PYX_ERR(0, 11256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11342
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeHost(p):             # <<<<<<<<<<<<<<
 *     """ Frees page-locked host memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_137cuMemFreeHost, 0, __pyx_n_s_cuMemFreeHost, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__582)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemFreeHost, __pyx_t_2) < 0) __PYX_ERR(0, 11342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11411
 * 
 * @cython.embedsignature(True)
 * def cuMemHostAlloc(size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Allocates page-locked host memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_139cuMemHostAlloc, 0, __pyx_n_s_cuMemHostAlloc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__583)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemHostAlloc, __pyx_t_2) < 0) __PYX_ERR(0, 11411, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11530
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetDevicePointer(p, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Passes back device pointer of mapped pinned memory.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_141cuMemHostGetDevicePointer, 0, __pyx_n_s_cuMemHostGetDevicePointer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__584)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemHostGetDevicePointer, __pyx_t_2) < 0) __PYX_ERR(0, 11530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11625
 * 
 * @cython.embedsignature(True)
 * def cuMemHostGetFlags(p):             # <<<<<<<<<<<<<<
 *     """ Passes back flags that were used for a pinned allocation.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_143cuMemHostGetFlags, 0, __pyx_n_s_cuMemHostGetFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__585)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemHostGetFlags, __pyx_t_2) < 0) __PYX_ERR(0, 11625, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11663
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocManaged(size_t bytesize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Allocates memory that will be automatically managed by the Unified Memory system.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_145cuMemAllocManaged, 0, __pyx_n_s_cuMemAllocManaged, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__586)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAllocManaged, __pyx_t_2) < 0) __PYX_ERR(0, 11663, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11826
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetByPCIBusId(char* pciBusId):             # <<<<<<<<<<<<<<
 *     """ Returns a handle to a compute device.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_147cuDeviceGetByPCIBusId, 0, __pyx_n_s_cuDeviceGetByPCIBusId, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__587)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetByPCIBusId, __pyx_t_2) < 0) __PYX_ERR(0, 11826, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11859
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetPCIBusId(int length, dev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Returns a PCI Bus Id string for the device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 11859, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_149cuDeviceGetPCIBusId, 0, __pyx_n_s_cuDeviceGetPCIBusId, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__588)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetPCIBusId, __pyx_t_3) < 0) __PYX_ERR(0, 11859, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":11896
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetEventHandle(event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess handle for a previously allocated event.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 11896, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_151cuIpcGetEventHandle, 0, __pyx_n_s_cuIpcGetEventHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__589)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuIpcGetEventHandle, __pyx_t_2) < 0) __PYX_ERR(0, 11896, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":11951
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenEventHandle(handle not None : CUipcEventHandle):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess event handle for use in the current process.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_handle_2, __pyx_n_u_CUipcEventHandle) < 0) __PYX_ERR(0, 11951, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_153cuIpcOpenEventHandle, 0, __pyx_n_s_cuIpcOpenEventHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__590)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuIpcOpenEventHandle, __pyx_t_3) < 0) __PYX_ERR(0, 11951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12001
 * 
 * @cython.embedsignature(True)
 * def cuIpcGetMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Gets an interprocess memory handle for an existing device memory allocation.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12001, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_155cuIpcGetMemHandle, 0, __pyx_n_s_cuIpcGetMemHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__591)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuIpcGetMemHandle, __pyx_t_2) < 0) __PYX_ERR(0, 12001, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12049
 * 
 * @cython.embedsignature(True)
 * def cuIpcOpenMemHandle(handle not None : CUipcMemHandle, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Opens an interprocess memory handle exported from another process and returns a device pointer usable in the local process.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_handle_2, __pyx_n_u_CUipcMemHandle) < 0) __PYX_ERR(0, 12049, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_157cuIpcOpenMemHandle, 0, __pyx_n_s_cuIpcOpenMemHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__592)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuIpcOpenMemHandle, __pyx_t_3) < 0) __PYX_ERR(0, 12049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12120
 * 
 * @cython.embedsignature(True)
 * def cuIpcCloseMemHandle(dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Attempts to close memory mapped with cuIpcOpenMemHandle.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12120, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_159cuIpcCloseMemHandle, 0, __pyx_n_s_cuIpcCloseMemHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__593)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuIpcCloseMemHandle, __pyx_t_2) < 0) __PYX_ERR(0, 12120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12165
 * 
 * @cython.embedsignature(True)
 * def cuMemHostRegister(p, size_t bytesize, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Registers an existing host memory range for use by CUDA.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_161cuMemHostRegister, 0, __pyx_n_s_cuMemHostRegister, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__594)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemHostRegister, __pyx_t_2) < 0) __PYX_ERR(0, 12165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12268
 * 
 * @cython.embedsignature(True)
 * def cuMemHostUnregister(p):             # <<<<<<<<<<<<<<
 *     """ Unregisters a memory range that was registered with cuMemHostRegister.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_163cuMemHostUnregister, 0, __pyx_n_s_cuMemHostUnregister, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__595)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemHostUnregister, __pyx_t_2) < 0) __PYX_ERR(0, 12268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12305
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dst_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12305, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_src, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12305, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_165cuMemcpy, 0, __pyx_n_s_cuMemcpy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__596)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy, __pyx_t_3) < 0) __PYX_ERR(0, 12305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12381
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeer(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12381, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstContext_2, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 12381, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12381, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcContext_2, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 12381, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_167cuMemcpyPeer, 0, __pyx_n_s_cuMemcpyPeer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__597)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyPeer, __pyx_t_2) < 0) __PYX_ERR(0, 12381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12427
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoD(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12427, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_169cuMemcpyHtoD, 0, __pyx_n_s_cuMemcpyHtoD, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__598)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyHtoD, __pyx_t_3) < 0) __PYX_ERR(0, 12427, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12502
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoH(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12502, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_171cuMemcpyDtoH, 0, __pyx_n_s_cuMemcpyDtoH, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__599)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyDtoH, __pyx_t_2) < 0) __PYX_ERR(0, 12502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12577
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoD(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12577, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_173cuMemcpyDtoD, 0, __pyx_n_s_cuMemcpyDtoD, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__600)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyDtoD, __pyx_t_3) < 0) __PYX_ERR(0, 12577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12650
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoA(dstArray not None : CUarray, size_t dstOffset, srcDevice not None : CUdeviceptr, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 12650, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12650, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_175cuMemcpyDtoA, 0, __pyx_n_s_cuMemcpyDtoA, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__601)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyDtoA, __pyx_t_2) < 0) __PYX_ERR(0, 12650, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoD(dstDevice not None : CUdeviceptr, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 12725, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_srcArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 12725, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_177cuMemcpyAtoD, 0, __pyx_n_s_cuMemcpyAtoD, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__602)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyAtoD, __pyx_t_3) < 0) __PYX_ERR(0, 12725, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12802
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoA(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 12802, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_179cuMemcpyHtoA, 0, __pyx_n_s_cuMemcpyHtoA, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__603)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyHtoA, __pyx_t_2) < 0) __PYX_ERR(0, 12802, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":12879
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoH(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_srcArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 12879, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_181cuMemcpyAtoH, 0, __pyx_n_s_cuMemcpyAtoH, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__604)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyAtoH, __pyx_t_3) < 0) __PYX_ERR(0, 12879, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":12956
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoA(dstArray not None : CUarray, size_t dstOffset, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 12956, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 12956, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_183cuMemcpyAtoA, 0, __pyx_n_s_cuMemcpyAtoA, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__605)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyAtoA, __pyx_t_2) < 0) __PYX_ERR(0, 12956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":13036
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2D(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY2D) < 0) __PYX_ERR(0, 13036, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_185cuMemcpy2D, 0, __pyx_n_s_cuMemcpy2D, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__606)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy2D, __pyx_t_3) < 0) __PYX_ERR(0, 13036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":13180
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DUnaligned(pCopy : CUDA_MEMCPY2D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY2D) < 0) __PYX_ERR(0, 13180, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_187cuMemcpy2DUnaligned, 0, __pyx_n_s_cuMemcpy2DUnaligned, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__607)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy2DUnaligned, __pyx_t_2) < 0) __PYX_ERR(0, 13180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":13324
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3D(pCopy : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY3D) < 0) __PYX_ERR(0, 13324, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_189cuMemcpy3D, 0, __pyx_n_s_cuMemcpy3D, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__608)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy3D, __pyx_t_3) < 0) __PYX_ERR(0, 13324, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":13469
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeer(pCopy : CUDA_MEMCPY3D_PEER):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY3D_PEER) < 0) __PYX_ERR(0, 13469, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_191cuMemcpy3DPeer, 0, __pyx_n_s_cuMemcpy3DPeer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__609)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy3DPeer, __pyx_t_2) < 0) __PYX_ERR(0, 13469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":13506
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAsync(dst not None : CUdeviceptr, src not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory asynchronously.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dst_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13506, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_src, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13506, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13506, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_193cuMemcpyAsync, 0, __pyx_n_s_cuMemcpyAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__610)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyAsync, __pyx_t_3) < 0) __PYX_ERR(0, 13506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":13592
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyPeerAsync(dstDevice not None : CUdeviceptr, dstContext not None : CUcontext, srcDevice not None : CUdeviceptr, srcContext not None : CUcontext, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies device memory between two contexts asynchronously.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstContext_2, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcContext_2, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 13592, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13592, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_195cuMemcpyPeerAsync, 0, __pyx_n_s_cuMemcpyPeerAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__611)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyPeerAsync, __pyx_t_2) < 0) __PYX_ERR(0, 13592, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":13641
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoDAsync(dstDevice not None : CUdeviceptr, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13641, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13641, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_197cuMemcpyHtoDAsync, 0, __pyx_n_s_cuMemcpyHtoDAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__612)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyHtoDAsync, __pyx_t_3) < 0) __PYX_ERR(0, 13641, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":13725
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoHAsync(dstHost, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Host.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13725, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13725, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_199cuMemcpyDtoHAsync, 0, __pyx_n_s_cuMemcpyDtoHAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__613)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyDtoHAsync, __pyx_t_2) < 0) __PYX_ERR(0, 13725, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":13809
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyDtoDAsync(dstDevice not None : CUdeviceptr, srcDevice not None : CUdeviceptr, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Device to Device.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13809, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 13809, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13809, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_201cuMemcpyDtoDAsync, 0, __pyx_n_s_cuMemcpyDtoDAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__614)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyDtoDAsync, __pyx_t_3) < 0) __PYX_ERR(0, 13809, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":13892
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyHtoAAsync(dstArray not None : CUarray, size_t dstOffset, srcHost, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Host to Array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 13892, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13892, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_203cuMemcpyHtoAAsync, 0, __pyx_n_s_cuMemcpyHtoAAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__615)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyHtoAAsync, __pyx_t_2) < 0) __PYX_ERR(0, 13892, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":13978
 * 
 * @cython.embedsignature(True)
 * def cuMemcpyAtoHAsync(dstHost, srcArray not None : CUarray, size_t srcOffset, size_t ByteCount, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory from Array to Host.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_srcArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 13978, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 13978, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_205cuMemcpyAtoHAsync, 0, __pyx_n_s_cuMemcpyAtoHAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__616)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpyAtoHAsync, __pyx_t_3) < 0) __PYX_ERR(0, 13978, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":14064
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy2DAsync(pCopy : CUDA_MEMCPY2D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 2D arrays.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY2D) < 0) __PYX_ERR(0, 14064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 14064, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_207cuMemcpy2DAsync, 0, __pyx_n_s_cuMemcpy2DAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__617)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy2DAsync, __pyx_t_2) < 0) __PYX_ERR(0, 14064, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":14215
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DAsync(pCopy : CUDA_MEMCPY3D, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory for 3D arrays.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY3D) < 0) __PYX_ERR(0, 14215, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 14215, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_209cuMemcpy3DAsync, 0, __pyx_n_s_cuMemcpy3DAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__618)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy3DAsync, __pyx_t_3) < 0) __PYX_ERR(0, 14215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":14369
 * 
 * @cython.embedsignature(True)
 * def cuMemcpy3DPeerAsync(pCopy : CUDA_MEMCPY3D_PEER, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies memory between contexts asynchronously.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pCopy, __pyx_n_u_CUDA_MEMCPY3D_PEER) < 0) __PYX_ERR(0, 14369, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 14369, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_211cuMemcpy3DPeerAsync, 0, __pyx_n_s_cuMemcpy3DPeerAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__619)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemcpy3DPeerAsync, __pyx_t_2) < 0) __PYX_ERR(0, 14369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":14408
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14408, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_213cuMemsetD8, 0, __pyx_n_s_cuMemsetD8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__620)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD8, __pyx_t_3) < 0) __PYX_ERR(0, 14408, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":14484
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16(dstDevice not None : CUdeviceptr, unsigned short us, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14484, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_215cuMemsetD16, 0, __pyx_n_s_cuMemsetD16, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__621)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD16, __pyx_t_2) < 0) __PYX_ERR(0, 14484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":14561
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14561, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_217cuMemsetD32, 0, __pyx_n_s_cuMemsetD32, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__622)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD32, __pyx_t_3) < 0) __PYX_ERR(0, 14561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":14638
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14638, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_219cuMemsetD2D8, 0, __pyx_n_s_cuMemsetD2D8, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__623)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD2D8, __pyx_t_2) < 0) __PYX_ERR(0, 14638, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":14722
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14722, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_221cuMemsetD2D16, 0, __pyx_n_s_cuMemsetD2D16, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__624)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD2D16, __pyx_t_3) < 0) __PYX_ERR(0, 14722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":14807
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height):             # <<<<<<<<<<<<<<
 *     """ Initializes device memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14807, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_223cuMemsetD2D32, 0, __pyx_n_s_cuMemsetD2D32, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__625)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD2D32, __pyx_t_2) < 0) __PYX_ERR(0, 14807, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":14892
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD8Async(dstDevice not None : CUdeviceptr, unsigned char uc, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14892, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 14892, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_225cuMemsetD8Async, 0, __pyx_n_s_cuMemsetD8Async, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__626)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD8Async, __pyx_t_3) < 0) __PYX_ERR(0, 14892, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":14970
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD16Async(dstDevice not None : CUdeviceptr, unsigned short us, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 14970, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 14970, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_227cuMemsetD16Async, 0, __pyx_n_s_cuMemsetD16Async, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__627)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD16Async, __pyx_t_2) < 0) __PYX_ERR(0, 14970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":15049
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD32Async(dstDevice not None : CUdeviceptr, unsigned int ui, size_t N, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 15049, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 15049, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_229cuMemsetD32Async, 0, __pyx_n_s_cuMemsetD32Async, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__628)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD32Async, __pyx_t_3) < 0) __PYX_ERR(0, 15049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":15128
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D8Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 15128, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 15128, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_231cuMemsetD2D8Async, 0, __pyx_n_s_cuMemsetD2D8Async, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__629)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD2D8Async, __pyx_t_2) < 0) __PYX_ERR(0, 15128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":15214
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D16Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned short us, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 15214, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 15214, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_233cuMemsetD2D16Async, 0, __pyx_n_s_cuMemsetD2D16Async, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__630)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD2D16Async, __pyx_t_3) < 0) __PYX_ERR(0, 15214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":15301
 * 
 * @cython.embedsignature(True)
 * def cuMemsetD2D32Async(dstDevice not None : CUdeviceptr, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Sets device memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 15301, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 15301, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_235cuMemsetD2D32Async, 0, __pyx_n_s_cuMemsetD2D32Async, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__631)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemsetD2D32Async, __pyx_t_2) < 0) __PYX_ERR(0, 15301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":15388
 * 
 * @cython.embedsignature(True)
 * def cuArrayCreate(pAllocateArray : CUDA_ARRAY_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 1D or 2D CUDA array.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pAllocateArray, __pyx_n_u_CUDA_ARRAY_DESCRIPTOR) < 0) __PYX_ERR(0, 15388, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_237cuArrayCreate, 0, __pyx_n_s_cuArrayCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__632)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArrayCreate, __pyx_t_3) < 0) __PYX_ERR(0, 15388, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":15494
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 1D or 2D CUDA array descriptor.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 15494, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_239cuArrayGetDescriptor, 0, __pyx_n_s_cuArrayGetDescriptor, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__633)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArrayGetDescriptor, __pyx_t_2) < 0) __PYX_ERR(0, 15494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":15565
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetSparseProperties(array not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA array.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_array_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 15565, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_241cuArrayGetSparseProperties, 0, __pyx_n_s_cuArrayGetSparseProperties, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__634)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArrayGetSparseProperties, __pyx_t_3) < 0) __PYX_ERR(0, 15565, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":15607
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetSparseProperties(mipmap not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Returns the layout properties of a sparse CUDA mipmapped array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_mipmap_2, __pyx_n_u_CUmipmappedArray_2) < 0) __PYX_ERR(0, 15607, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_243cuMipmappedArrayGetSparseProperties, 0, __pyx_n_s_cuMipmappedArrayGetSparsePropert, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__635)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMipmappedArrayGetSparsePropert, __pyx_t_2) < 0) __PYX_ERR(0, 15607, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":15650
 * 
 * @cython.embedsignature(True)
 * def cuArrayGetPlane(hArray not None : CUarray, unsigned int planeIdx):             # <<<<<<<<<<<<<<
 *     """ Gets a CUDA array plane from a CUDA array.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 15650, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_245cuArrayGetPlane, 0, __pyx_n_s_cuArrayGetPlane, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__636)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArrayGetPlane, __pyx_t_3) < 0) __PYX_ERR(0, 15650, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":15696
 * 
 * @cython.embedsignature(True)
 * def cuArrayDestroy(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 15696, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_247cuArrayDestroy, 0, __pyx_n_s_cuArrayDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__637)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArrayDestroy, __pyx_t_2) < 0) __PYX_ERR(0, 15696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":15764
 * 
 * @cython.embedsignature(True)
 * def cuArray3DCreate(pAllocateArray : CUDA_ARRAY3D_DESCRIPTOR):             # <<<<<<<<<<<<<<
 *     """ Creates a 3D CUDA array.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pAllocateArray, __pyx_n_u_CUDA_ARRAY3D_DESCRIPTOR) < 0) __PYX_ERR(0, 15764, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_249cuArray3DCreate, 0, __pyx_n_s_cuArray3DCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__638)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArray3DCreate, __pyx_t_3) < 0) __PYX_ERR(0, 15764, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":15933
 * 
 * @cython.embedsignature(True)
 * def cuArray3DGetDescriptor(hArray not None : CUarray):             # <<<<<<<<<<<<<<
 *     """ Get a 3D CUDA array descriptor.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 15933, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_251cuArray3DGetDescriptor, 0, __pyx_n_s_cuArray3DGetDescriptor, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__639)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuArray3DGetDescriptor, __pyx_t_2) < 0) __PYX_ERR(0, 15933, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16009
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayCreate(pMipmappedArrayDesc : CUDA_ARRAY3D_DESCRIPTOR, unsigned int numMipmapLevels):             # <<<<<<<<<<<<<<
 *     """ Creates a CUDA mipmapped array.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pMipmappedArrayDesc, __pyx_n_u_CUDA_ARRAY3D_DESCRIPTOR) < 0) __PYX_ERR(0, 16009, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_253cuMipmappedArrayCreate, 0, __pyx_n_s_cuMipmappedArrayCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__640)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMipmappedArrayCreate, __pyx_t_3) < 0) __PYX_ERR(0, 16009, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16130
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayGetLevel(hMipmappedArray not None : CUmipmappedArray, unsigned int level):             # <<<<<<<<<<<<<<
 *     """ Gets a mipmap level of a CUDA mipmapped array.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hMipmappedArray_2, __pyx_n_u_CUmipmappedArray_2) < 0) __PYX_ERR(0, 16130, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_255cuMipmappedArrayGetLevel, 0, __pyx_n_s_cuMipmappedArrayGetLevel, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__641)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMipmappedArrayGetLevel, __pyx_t_2) < 0) __PYX_ERR(0, 16130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16170
 * 
 * @cython.embedsignature(True)
 * def cuMipmappedArrayDestroy(hMipmappedArray not None : CUmipmappedArray):             # <<<<<<<<<<<<<<
 *     """ Destroys a CUDA mipmapped array.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hMipmappedArray_2, __pyx_n_u_CUmipmappedArray_2) < 0) __PYX_ERR(0, 16170, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_257cuMipmappedArrayDestroy, 0, __pyx_n_s_cuMipmappedArrayDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__642)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMipmappedArrayDestroy, __pyx_t_3) < 0) __PYX_ERR(0, 16170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16204
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressReserve(size_t size, size_t alignment, addr not None : CUdeviceptr, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Allocate an address range reservation.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_addr, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16204, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_259cuMemAddressReserve, 0, __pyx_n_s_cuMemAddressReserve, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__643)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAddressReserve, __pyx_t_2) < 0) __PYX_ERR(0, 16204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16246
 * 
 * @cython.embedsignature(True)
 * def cuMemAddressFree(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Free an address range reservation.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16246, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_261cuMemAddressFree, 0, __pyx_n_s_cuMemAddressFree, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__644)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAddressFree, __pyx_t_3) < 0) __PYX_ERR(0, 16246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16280
 * 
 * @cython.embedsignature(True)
 * def cuMemCreate(size_t size, prop : CUmemAllocationProp, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Create a CUDA memory handle representing a memory allocation of a given size described by the given properties.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_prop, __pyx_n_u_CUmemAllocationProp) < 0) __PYX_ERR(0, 16280, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_263cuMemCreate, 0, __pyx_n_s_cuMemCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__645)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemCreate, __pyx_t_2) < 0) __PYX_ERR(0, 16280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16335
 * 
 * @cython.embedsignature(True)
 * def cuMemRelease(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Release a memory handle representing a memory allocation which was previously allocated through cuMemCreate.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_handle_2, __pyx_n_u_CUmemGenericAllocationHandle_2) < 0) __PYX_ERR(0, 16335, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_265cuMemRelease, 0, __pyx_n_s_cuMemRelease, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__646)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemRelease, __pyx_t_3) < 0) __PYX_ERR(0, 16335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16374
 * 
 * @cython.embedsignature(True)
 * def cuMemMap(ptr not None : CUdeviceptr, size_t size, size_t offset, handle not None : CUmemGenericAllocationHandle, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Maps an allocation handle to a reserved virtual address range.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16374, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_handle_2, __pyx_n_u_CUmemGenericAllocationHandle_2) < 0) __PYX_ERR(0, 16374, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_267cuMemMap, 0, __pyx_n_s_cuMemMap, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__647)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemMap, __pyx_t_2) < 0) __PYX_ERR(0, 16374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16437
 * 
 * @cython.embedsignature(True)
 * def cuMemMapArrayAsync(mapInfoList : List[CUarrayMapInfo], unsigned int count, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Maps or unmaps subregions of sparse CUDA arrays and sparse CUDA mipmapped arrays.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUarrayMapInfo)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_mapInfoList, __pyx_t_1) < 0) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 16437, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_269cuMemMapArrayAsync, 0, __pyx_n_s_cuMemMapArrayAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__648)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemMapArrayAsync, __pyx_t_1) < 0) __PYX_ERR(0, 16437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":16596
 * 
 * @cython.embedsignature(True)
 * def cuMemUnmap(ptr not None : CUdeviceptr, size_t size):             # <<<<<<<<<<<<<<
 *     """ Unmap the backing memory of a given address range.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16596, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_271cuMemUnmap, 0, __pyx_n_s_cuMemUnmap, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__650)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemUnmap, __pyx_t_2) < 0) __PYX_ERR(0, 16596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16639
 * 
 * @cython.embedsignature(True)
 * def cuMemSetAccess(ptr not None : CUdeviceptr, size_t size, desc : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Set the access flags for each location specified in `desc` for the given virtual address range.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_desc, __pyx_t_3) < 0) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_273cuMemSetAccess, 0, __pyx_n_s_cuMemSetAccess, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__651)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemSetAccess, __pyx_t_3) < 0) __PYX_ERR(0, 16639, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16693
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAccess(location : CUmemLocation, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Get the access `flags` set for the given `location` and `ptr`.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_location_2, __pyx_n_u_CUmemLocation) < 0) __PYX_ERR(0, 16693, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16693, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_275cuMemGetAccess, 0, __pyx_n_s_cuMemGetAccess, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__653)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemGetAccess, __pyx_t_2) < 0) __PYX_ERR(0, 16693, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16726
 * 
 * @cython.embedsignature(True)
 * def cuMemExportToShareableHandle(handle not None : CUmemGenericAllocationHandle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports an allocation to a requested shareable handle type.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_handle_2, __pyx_n_u_CUmemGenericAllocationHandle_2) < 0) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUmemAllocationHandleType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_handleType, __pyx_t_3) < 0) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_277cuMemExportToShareableHandle, 0, __pyx_n_s_cuMemExportToShareableHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__654)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemExportToShareableHandle, __pyx_t_3) < 0) __PYX_ERR(0, 16726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16778
 * 
 * @cython.embedsignature(True)
 * def cuMemImportFromShareableHandle(osHandle, shHandleType not None : CUmemAllocationHandleType):             # <<<<<<<<<<<<<<
 *     """ Imports an allocation from a requested shareable handle type.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemAllocationHandleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_shHandleType, __pyx_t_2) < 0) __PYX_ERR(0, 16778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_279cuMemImportFromShareableHandle, 0, __pyx_n_s_cuMemImportFromShareableHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__655)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemImportFromShareableHandle, __pyx_t_2) < 0) __PYX_ERR(0, 16778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16823
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationGranularity(prop : CUmemAllocationProp, option not None : CUmemAllocationGranularity_flags):             # <<<<<<<<<<<<<<
 *     """ Calculates either the minimal or recommended granularity.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_prop, __pyx_n_u_CUmemAllocationProp) < 0) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUmemAllocationGranularity_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_option, __pyx_t_3) < 0) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_281cuMemGetAllocationGranularity, 0, __pyx_n_s_cuMemGetAllocationGranularity, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__656)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemGetAllocationGranularity, __pyx_t_3) < 0) __PYX_ERR(0, 16823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16862
 * 
 * @cython.embedsignature(True)
 * def cuMemGetAllocationPropertiesFromHandle(handle not None : CUmemGenericAllocationHandle):             # <<<<<<<<<<<<<<
 *     """ Retrieve the contents of the property structure defining properties for this handle.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_handle_2, __pyx_n_u_CUmemGenericAllocationHandle_2) < 0) __PYX_ERR(0, 16862, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_283cuMemGetAllocationPropertiesFromHandle, 0, __pyx_n_s_cuMemGetAllocationPropertiesFrom, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__657)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemGetAllocationPropertiesFrom, __pyx_t_2) < 0) __PYX_ERR(0, 16862, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16893
 * 
 * @cython.embedsignature(True)
 * def cuMemRetainAllocationHandle(addr):             # <<<<<<<<<<<<<<
 *     """ Given an address `addr`, returns the allocation handle of the backing memory allocation.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_285cuMemRetainAllocationHandle, 0, __pyx_n_s_cuMemRetainAllocationHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__658)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemRetainAllocationHandle, __pyx_t_2) < 0) __PYX_ERR(0, 16893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":16936
 * 
 * @cython.embedsignature(True)
 * def cuMemFreeAsync(dptr not None : CUdeviceptr, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Frees memory with stream ordered semantics.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 16936, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 16936, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_287cuMemFreeAsync, 0, __pyx_n_s_cuMemFreeAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__659)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemFreeAsync, __pyx_t_3) < 0) __PYX_ERR(0, 16936, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":16978
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocAsync(size_t bytesize, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory with stream ordered semantics.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 16978, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_289cuMemAllocAsync, 0, __pyx_n_s_cuMemAllocAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__660)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAllocAsync, __pyx_t_2) < 0) __PYX_ERR(0, 16978, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":17034
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolTrimTo(pool not None : CUmemoryPool, size_t minBytesToKeep):             # <<<<<<<<<<<<<<
 *     """ Tries to release memory back to the OS.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17034, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_291cuMemPoolTrimTo, 0, __pyx_n_s_cuMemPoolTrimTo, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__661)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolTrimTo, __pyx_t_3) < 0) __PYX_ERR(0, 17034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17079
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Sets attributes of a memory pool.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUmemPool_attribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attr, __pyx_t_2) < 0) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_293cuMemPoolSetAttribute, 0, __pyx_n_s_cuMemPoolSetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__662)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolSetAttribute, __pyx_t_2) < 0) __PYX_ERR(0, 17079, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":17139
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAttribute(pool not None : CUmemoryPool, attr not None : CUmemPool_attribute):             # <<<<<<<<<<<<<<
 *     """ Gets attributes of a memory pool.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUmemPool_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_attr, __pyx_t_3) < 0) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_295cuMemPoolGetAttribute, 0, __pyx_n_s_cuMemPoolGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__663)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolGetAttribute, __pyx_t_3) < 0) __PYX_ERR(0, 17139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17201
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolSetAccess(pool not None : CUmemoryPool, map : List[CUmemAccessDesc], size_t count):             # <<<<<<<<<<<<<<
 *     """ Controls visibility of pools between devices.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUmemAccessDesc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_map, __pyx_t_1) < 0) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_297cuMemPoolSetAccess, 0, __pyx_n_s_cuMemPoolSetAccess, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__664)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolSetAccess, __pyx_t_1) < 0) __PYX_ERR(0, 17201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17249
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolGetAccess(memPool not None : CUmemoryPool, location : CUmemLocation):             # <<<<<<<<<<<<<<
 *     """ Returns the accessibility of a pool from a device.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_memPool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17249, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_location_2, __pyx_n_u_CUmemLocation) < 0) __PYX_ERR(0, 17249, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_299cuMemPoolGetAccess, 0, __pyx_n_s_cuMemPoolGetAccess, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__666)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolGetAccess, __pyx_t_3) < 0) __PYX_ERR(0, 17249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17283
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolCreate(poolProps : CUmemPoolProps):             # <<<<<<<<<<<<<<
 *     """ Creates a memory pool.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_poolProps_2, __pyx_n_u_CUmemPoolProps) < 0) __PYX_ERR(0, 17283, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_301cuMemPoolCreate, 0, __pyx_n_s_cuMemPoolCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__667)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolCreate, __pyx_t_1) < 0) __PYX_ERR(0, 17283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17323
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolDestroy(pool not None : CUmemoryPool):             # <<<<<<<<<<<<<<
 *     """ Destroys the specified memory pool.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17323, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_303cuMemPoolDestroy, 0, __pyx_n_s_cuMemPoolDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__668)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolDestroy, __pyx_t_3) < 0) __PYX_ERR(0, 17323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17360
 * 
 * @cython.embedsignature(True)
 * def cuMemAllocFromPoolAsync(size_t bytesize, pool not None : CUmemoryPool, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Allocates memory from a specified pool with stream ordered semantics.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17360, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 17360, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_305cuMemAllocFromPoolAsync, 0, __pyx_n_s_cuMemAllocFromPoolAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__669)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAllocFromPoolAsync, __pyx_t_1) < 0) __PYX_ERR(0, 17360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17416
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportToShareableHandle(pool not None : CUmemoryPool, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Exports a memory pool to the requested handle type.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUmemAllocationHandleType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_handleType, __pyx_t_3) < 0) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_307cuMemPoolExportToShareableHandle, 0, __pyx_n_s_cuMemPoolExportToShareableHandle, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__670)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolExportToShareableHandle, __pyx_t_3) < 0) __PYX_ERR(0, 17416, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17471
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportFromShareableHandle(handle, handleType not None : CUmemAllocationHandleType, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ imports a memory pool from a shared handle.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUmemAllocationHandleType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_handleType, __pyx_t_1) < 0) __PYX_ERR(0, 17471, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_309cuMemPoolImportFromShareableHandle, 0, __pyx_n_s_cuMemPoolImportFromShareableHand, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__671)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolImportFromShareableHand, __pyx_t_1) < 0) __PYX_ERR(0, 17471, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17515
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolExportPointer(ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Export data to share a memory pool allocation between processes.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 17515, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_311cuMemPoolExportPointer, 0, __pyx_n_s_cuMemPoolExportPointer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__672)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolExportPointer, __pyx_t_3) < 0) __PYX_ERR(0, 17515, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17549
 * 
 * @cython.embedsignature(True)
 * def cuMemPoolImportPointer(pool not None : CUmemoryPool, shareData : CUmemPoolPtrExportData):             # <<<<<<<<<<<<<<
 *     """ Import a memory pool allocation from another process.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pool, __pyx_n_u_CUmemoryPool_2) < 0) __PYX_ERR(0, 17549, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_shareData, __pyx_n_u_CUmemPoolPtrExportData) < 0) __PYX_ERR(0, 17549, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_313cuMemPoolImportPointer, 0, __pyx_n_s_cuMemPoolImportPointer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__673)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPoolImportPointer, __pyx_t_1) < 0) __PYX_ERR(0, 17549, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17594
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttribute(attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUpointer_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attribute, __pyx_t_3) < 0) __PYX_ERR(0, 17594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 17594, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_315cuPointerGetAttribute, 0, __pyx_n_s_cuPointerGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__674)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuPointerGetAttribute, __pyx_t_3) < 0) __PYX_ERR(0, 17594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17718
 * 
 * @cython.embedsignature(True)
 * def cuMemPrefetchAsync(devPtr not None : CUdeviceptr, size_t count, dstDevice not None : CUdevice, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Prefetches memory to the specified destination device.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_devPtr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 17718, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 17718, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 17718, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_317cuMemPrefetchAsync, 0, __pyx_n_s_cuMemPrefetchAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__675)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemPrefetchAsync, __pyx_t_1) < 0) __PYX_ERR(0, 17718, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":17807
 * 
 * @cython.embedsignature(True)
 * def cuMemAdvise(devPtr not None : CUdeviceptr, size_t count, advice not None : CUmem_advise, device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Advise about the usage of a given memory range.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_devPtr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUmem_advise); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_advice, __pyx_t_3) < 0) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_device, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 17807, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_319cuMemAdvise, 0, __pyx_n_s_cuMemAdvise, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__676)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemAdvise, __pyx_t_3) < 0) __PYX_ERR(0, 17807, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":17963
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttribute(size_t dataSize, attribute not None : CUmem_range_attribute, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query an attribute of a given memory range.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUmem_range_attribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute, __pyx_t_1) < 0) __PYX_ERR(0, 17963, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_devPtr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 17963, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_321cuMemRangeGetAttribute, 0, __pyx_n_s_cuMemRangeGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__677)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemRangeGetAttribute, __pyx_t_1) < 0) __PYX_ERR(0, 17963, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18047
 * 
 * @cython.embedsignature(True)
 * def cuMemRangeGetAttributes(dataSizes : List[int], attributes : List[CUmem_range_attribute], size_t numAttributes, devPtr not None : CUdeviceptr, size_t count):             # <<<<<<<<<<<<<<
 *     """ Query attributes of a given memory range.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dataSizes, __pyx_t_2) < 0) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUmem_range_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attributes, __pyx_t_4) < 0) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_devPtr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 18047, __pyx_L1_error)
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_323cuMemRangeGetAttributes, 0, __pyx_n_s_cuMemRangeGetAttributes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__678)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuMemRangeGetAttributes, __pyx_t_4) < 0) __PYX_ERR(0, 18047, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cuda/cuda.pyx":18114
 * 
 * @cython.embedsignature(True)
 * def cuPointerSetAttribute(value, attribute not None : CUpointer_attribute, ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Set attributes on a previously allocated memory region.
 * 
 */
  __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUpointer_attribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_attribute, __pyx_t_1) < 0) __PYX_ERR(0, 18114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 18114, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_325cuPointerSetAttribute, 0, __pyx_n_s_cuPointerSetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__681)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuPointerSetAttribute, __pyx_t_1) < 0) __PYX_ERR(0, 18114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18171
 * 
 * @cython.embedsignature(True)
 * def cuPointerGetAttributes(unsigned int numAttributes, attributes : List[CUpointer_attribute], ptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Returns information about a pointer.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_List); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUpointer_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attributes, __pyx_t_2) < 0) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 18171, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_327cuPointerGetAttributes, 0, __pyx_n_s_cuPointerGetAttributes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__682)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuPointerGetAttributes, __pyx_t_2) < 0) __PYX_ERR(0, 18171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18231
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Create a stream.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_329cuStreamCreate, 0, __pyx_n_s_cuStreamCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__684)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamCreate, __pyx_t_2) < 0) __PYX_ERR(0, 18231, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18278
 * 
 * @cython.embedsignature(True)
 * def cuStreamCreateWithPriority(unsigned int flags, int priority):             # <<<<<<<<<<<<<<
 *     """ Create a stream with the given priority.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_331cuStreamCreateWithPriority, 0, __pyx_n_s_cuStreamCreateWithPriority, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__685)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamCreateWithPriority, __pyx_t_2) < 0) __PYX_ERR(0, 18278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18338
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetPriority(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the priority of a given stream.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18338, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_333cuStreamGetPriority, 0, __pyx_n_s_cuStreamGetPriority, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__686)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamGetPriority, __pyx_t_1) < 0) __PYX_ERR(0, 18338, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18381
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetFlags(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the flags of a given stream.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18381, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_335cuStreamGetFlags, 0, __pyx_n_s_cuStreamGetFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__687)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamGetFlags, __pyx_t_2) < 0) __PYX_ERR(0, 18381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18420
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCtx(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query the context associated with a stream.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18420, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_337cuStreamGetCtx, 0, __pyx_n_s_cuStreamGetCtx, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__688)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamGetCtx, __pyx_t_1) < 0) __PYX_ERR(0, 18420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18473
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitEvent(hStream not None : CUstream, hEvent not None : CUevent, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Make a compute stream wait on an event.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18473, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hEvent, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 18473, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_339cuStreamWaitEvent, 0, __pyx_n_s_cuStreamWaitEvent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__689)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamWaitEvent, __pyx_t_2) < 0) __PYX_ERR(0, 18473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18521
 * 
 * @cython.embedsignature(True)
 * def cuStreamAddCallback(hStream not None : CUstream, callback not None : CUstreamCallback, userData, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Add a callback to a compute stream.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18521, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_callback, __pyx_n_u_CUstreamCallback_2) < 0) __PYX_ERR(0, 18521, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_341cuStreamAddCallback, 0, __pyx_n_s_cuStreamAddCallback, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__690)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamAddCallback, __pyx_t_1) < 0) __PYX_ERR(0, 18521, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18599
 * 
 * @cython.embedsignature(True)
 * def cuStreamBeginCapture(hStream not None : CUstream, mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Begins graph capture on a stream.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUstreamCaptureMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_mode, __pyx_t_2) < 0) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_343cuStreamBeginCapture, 0, __pyx_n_s_cuStreamBeginCapture, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__691)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamBeginCapture, __pyx_t_2) < 0) __PYX_ERR(0, 18599, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18651
 * 
 * @cython.embedsignature(True)
 * def cuThreadExchangeStreamCaptureMode(mode not None : CUstreamCaptureMode):             # <<<<<<<<<<<<<<
 *     """ Swaps the stream capture interaction mode for a thread.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUstreamCaptureMode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_mode, __pyx_t_1) < 0) __PYX_ERR(0, 18651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_345cuThreadExchangeStreamCaptureMode, 0, __pyx_n_s_cuThreadExchangeStreamCaptureMod, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__692)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuThreadExchangeStreamCaptureMod, __pyx_t_1) < 0) __PYX_ERR(0, 18651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18715
 * 
 * @cython.embedsignature(True)
 * def cuStreamEndCapture(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Ends capture on a stream, returning the captured graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18715, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_347cuStreamEndCapture, 0, __pyx_n_s_cuStreamEndCapture, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__693)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamEndCapture, __pyx_t_2) < 0) __PYX_ERR(0, 18715, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18754
 * 
 * @cython.embedsignature(True)
 * def cuStreamIsCapturing(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Returns a stream's capture status.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18754, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_349cuStreamIsCapturing, 0, __pyx_n_s_cuStreamIsCapturing, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__694)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamIsCapturing, __pyx_t_1) < 0) __PYX_ERR(0, 18754, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18804
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query capture status of a stream.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18804, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_351cuStreamGetCaptureInfo, 0, __pyx_n_s_cuStreamGetCaptureInfo, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__695)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamGetCaptureInfo, __pyx_t_2) < 0) __PYX_ERR(0, 18804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":18842
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetCaptureInfo_v2(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Query a stream's capture state (11.3+)
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18842, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_353cuStreamGetCaptureInfo_v2, 0, __pyx_n_s_cuStreamGetCaptureInfo_v2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__696)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamGetCaptureInfo_v2, __pyx_t_1) < 0) __PYX_ERR(0, 18842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":18918
 * 
 * @cython.embedsignature(True)
 * def cuStreamUpdateCaptureDependencies(hStream not None : CUstream, dependencies : List[CUgraphNode], size_t numDependencies, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Update the set of dependencies in a capturing stream (11.3+)
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dependencies, __pyx_t_3) < 0) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_355cuStreamUpdateCaptureDependencies, 0, __pyx_n_s_cuStreamUpdateCaptureDependencie_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__697)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamUpdateCaptureDependencie_2, __pyx_t_3) < 0) __PYX_ERR(0, 18918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":18974
 * 
 * @cython.embedsignature(True)
 * def cuStreamAttachMemAsync(hStream not None : CUstream, dptr not None : CUdeviceptr, size_t length, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Attach memory to a stream asynchronously.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 18974, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 18974, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_357cuStreamAttachMemAsync, 0, __pyx_n_s_cuStreamAttachMemAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__699)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamAttachMemAsync, __pyx_t_1) < 0) __PYX_ERR(0, 18974, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19076
 * 
 * @cython.embedsignature(True)
 * def cuStreamQuery(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Determine status of a compute stream.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19076, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_359cuStreamQuery, 0, __pyx_n_s_cuStreamQuery, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__700)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamQuery, __pyx_t_3) < 0) __PYX_ERR(0, 19076, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19115
 * 
 * @cython.embedsignature(True)
 * def cuStreamSynchronize(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Wait until a stream's tasks are completed.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19115, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_361cuStreamSynchronize, 0, __pyx_n_s_cuStreamSynchronize, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__701)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamSynchronize, __pyx_t_1) < 0) __PYX_ERR(0, 19115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19152
 * 
 * @cython.embedsignature(True)
 * def cuStreamDestroy(hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Destroys a stream.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19152, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_363cuStreamDestroy, 0, __pyx_n_s_cuStreamDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__702)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamDestroy, __pyx_t_3) < 0) __PYX_ERR(0, 19152, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19192
 * 
 * @cython.embedsignature(True)
 * def cuStreamCopyAttributes(dst not None : CUstream, src not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source stream to destination stream.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dst_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19192, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_src, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19192, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_365cuStreamCopyAttributes, 0, __pyx_n_s_cuStreamCopyAttributes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__703)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamCopyAttributes, __pyx_t_1) < 0) __PYX_ERR(0, 19192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19217
 * 
 * @cython.embedsignature(True)
 * def cuStreamGetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries stream attribute.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUstreamAttrID); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attr, __pyx_t_3) < 0) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_367cuStreamGetAttribute, 0, __pyx_n_s_cuStreamGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__704)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamGetAttribute, __pyx_t_3) < 0) __PYX_ERR(0, 19217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19245
 * 
 * @cython.embedsignature(True)
 * def cuStreamSetAttribute(hStream not None : CUstream, attr not None : CUstreamAttrID, value : CUstreamAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets stream attribute.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUstreamAttrID); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attr, __pyx_t_1) < 0) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, __pyx_n_u_CUstreamAttrValue) < 0) __PYX_ERR(0, 19245, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_369cuStreamSetAttribute, 0, __pyx_n_s_cuStreamSetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__705)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamSetAttribute, __pyx_t_1) < 0) __PYX_ERR(0, 19245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19276
 * 
 * @cython.embedsignature(True)
 * def cuEventCreate(unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Creates an event.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_371cuEventCreate, 0, __pyx_n_s_cuEventCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__706)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventCreate, __pyx_t_1) < 0) __PYX_ERR(0, 19276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19325
 * 
 * @cython.embedsignature(True)
 * def cuEventRecord(hEvent not None : CUevent, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hEvent, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19325, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19325, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_373cuEventRecord, 0, __pyx_n_s_cuEventRecord, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__707)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventRecord, __pyx_t_3) < 0) __PYX_ERR(0, 19325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19376
 * 
 * @cython.embedsignature(True)
 * def cuEventRecordWithFlags(hEvent not None : CUevent, hStream not None : CUstream, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Records an event.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hEvent, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19376, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 19376, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_375cuEventRecordWithFlags, 0, __pyx_n_s_cuEventRecordWithFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__708)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventRecordWithFlags, __pyx_t_1) < 0) __PYX_ERR(0, 19376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19435
 * 
 * @cython.embedsignature(True)
 * def cuEventQuery(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Queries an event's status.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hEvent, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19435, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_377cuEventQuery, 0, __pyx_n_s_cuEventQuery, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__709)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventQuery, __pyx_t_3) < 0) __PYX_ERR(0, 19435, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19477
 * 
 * @cython.embedsignature(True)
 * def cuEventSynchronize(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Waits for an event to complete.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hEvent, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19477, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_379cuEventSynchronize, 0, __pyx_n_s_cuEventSynchronize, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__710)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventSynchronize, __pyx_t_1) < 0) __PYX_ERR(0, 19477, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19518
 * 
 * @cython.embedsignature(True)
 * def cuEventDestroy(hEvent not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Destroys an event.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hEvent, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19518, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_381cuEventDestroy, 0, __pyx_n_s_cuEventDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__711)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventDestroy, __pyx_t_3) < 0) __PYX_ERR(0, 19518, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19557
 * 
 * @cython.embedsignature(True)
 * def cuEventElapsedTime(hStart not None : CUevent, hEnd not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Computes the elapsed time between two events.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStart, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19557, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hEnd, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 19557, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_383cuEventElapsedTime, 0, __pyx_n_s_cuEventElapsedTime, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__712)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuEventElapsedTime, __pyx_t_1) < 0) __PYX_ERR(0, 19557, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19612
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalMemory(memHandleDesc : CUDA_EXTERNAL_MEMORY_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external memory object.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_memHandleDesc, __pyx_n_u_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_3) < 0) __PYX_ERR(0, 19612, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_385cuImportExternalMemory, 0, __pyx_n_s_cuImportExternalMemory, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__713)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuImportExternalMemory, __pyx_t_3) < 0) __PYX_ERR(0, 19612, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19768
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedBuffer(extMem not None : CUexternalMemory, bufferDesc : CUDA_EXTERNAL_MEMORY_BUFFER_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a buffer onto an imported memory object.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extMem, __pyx_n_u_CUexternalMemory_2) < 0) __PYX_ERR(0, 19768, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_bufferDesc, __pyx_n_u_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_3) < 0) __PYX_ERR(0, 19768, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_387cuExternalMemoryGetMappedBuffer, 0, __pyx_n_s_cuExternalMemoryGetMappedBuffer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__714)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuExternalMemoryGetMappedBuffer, __pyx_t_1) < 0) __PYX_ERR(0, 19768, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19829
 * 
 * @cython.embedsignature(True)
 * def cuExternalMemoryGetMappedMipmappedArray(extMem not None : CUexternalMemory, mipmapDesc : CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC):             # <<<<<<<<<<<<<<
 *     """ Maps a CUDA mipmapped array onto an external memory object.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_extMem, __pyx_n_u_CUexternalMemory_2) < 0) __PYX_ERR(0, 19829, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_mipmapDesc, __pyx_n_u_CUDA_EXTERNAL_MEMORY_MIPMAPPED_A_3) < 0) __PYX_ERR(0, 19829, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_389cuExternalMemoryGetMappedMipmappedArray, 0, __pyx_n_s_cuExternalMemoryGetMappedMipmapp, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__715)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuExternalMemoryGetMappedMipmapp, __pyx_t_3) < 0) __PYX_ERR(0, 19829, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":19892
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalMemory(extMem not None : CUexternalMemory):             # <<<<<<<<<<<<<<
 *     """ Destroys an external memory object.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extMem, __pyx_n_u_CUexternalMemory_2) < 0) __PYX_ERR(0, 19892, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_391cuDestroyExternalMemory, 0, __pyx_n_s_cuDestroyExternalMemory, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__716)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDestroyExternalMemory, __pyx_t_1) < 0) __PYX_ERR(0, 19892, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":19924
 * 
 * @cython.embedsignature(True)
 * def cuImportExternalSemaphore(semHandleDesc : CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC):             # <<<<<<<<<<<<<<
 *     """ Imports an external semaphore.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_semHandleDesc, __pyx_n_u_CUDA_EXTERNAL_SEMAPHORE_HANDLE_D_3) < 0) __PYX_ERR(0, 19924, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_393cuImportExternalSemaphore, 0, __pyx_n_s_cuImportExternalSemaphore, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__717)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuImportExternalSemaphore, __pyx_t_3) < 0) __PYX_ERR(0, 19924, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":20074
 * 
 * @cython.embedsignature(True)
 * def cuSignalExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Signals a set of external semaphore objects.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extSemArray_2, __pyx_t_2) < 0) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_paramsArray_2, __pyx_t_1) < 0) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20074, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_395cuSignalExternalSemaphoresAsync, 0, __pyx_n_s_cuSignalExternalSemaphoresAsync_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__718)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuSignalExternalSemaphoresAsync_2, __pyx_t_1) < 0) __PYX_ERR(0, 20074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20187
 * 
 * @cython.embedsignature(True)
 * def cuWaitExternalSemaphoresAsync(extSemArray : List[CUexternalSemaphore], paramsArray : List[CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS], unsigned int numExtSems, stream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Waits on a set of external semaphore objects.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUexternalSemaphore)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_extSemArray_2, __pyx_t_2) < 0) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_paramsArray_2, __pyx_t_3) < 0) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20187, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_397cuWaitExternalSemaphoresAsync, 0, __pyx_n_s_cuWaitExternalSemaphoresAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__721)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuWaitExternalSemaphoresAsync, __pyx_t_3) < 0) __PYX_ERR(0, 20187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":20308
 * 
 * @cython.embedsignature(True)
 * def cuDestroyExternalSemaphore(extSem not None : CUexternalSemaphore):             # <<<<<<<<<<<<<<
 *     """ Destroys an external semaphore.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extSem, __pyx_n_u_CUexternalSemaphore_2) < 0) __PYX_ERR(0, 20308, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_399cuDestroyExternalSemaphore, 0, __pyx_n_s_cuDestroyExternalSemaphore, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__723)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDestroyExternalSemaphore, __pyx_t_1) < 0) __PYX_ERR(0, 20308, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20339
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20339, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_addr, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 20339, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_n_u_cuuint32_t_2) < 0) __PYX_ERR(0, 20339, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_401cuStreamWaitValue32, 0, __pyx_n_s_cuStreamWaitValue32, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__724)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamWaitValue32, __pyx_t_3) < 0) __PYX_ERR(0, 20339, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":20392
 * 
 * @cython.embedsignature(True)
 * def cuStreamWaitValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Wait on a memory location.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20392, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_addr, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 20392, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, __pyx_n_u_cuuint64_t_2) < 0) __PYX_ERR(0, 20392, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_403cuStreamWaitValue64, 0, __pyx_n_s_cuStreamWaitValue64, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__725)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamWaitValue64, __pyx_t_1) < 0) __PYX_ERR(0, 20392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20440
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue32(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint32_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20440, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_addr, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 20440, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_n_u_cuuint32_t_2) < 0) __PYX_ERR(0, 20440, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_405cuStreamWriteValue32, 0, __pyx_n_s_cuStreamWriteValue32, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__726)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamWriteValue32, __pyx_t_3) < 0) __PYX_ERR(0, 20440, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":20489
 * 
 * @cython.embedsignature(True)
 * def cuStreamWriteValue64(stream not None : CUstream, addr not None : CUdeviceptr, value not None : cuuint64_t, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a value to memory.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20489, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_addr, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 20489, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, __pyx_n_u_cuuint64_t_2) < 0) __PYX_ERR(0, 20489, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_407cuStreamWriteValue64, 0, __pyx_n_s_cuStreamWriteValue64, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__727)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamWriteValue64, __pyx_t_1) < 0) __PYX_ERR(0, 20489, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20537
 * 
 * @cython.embedsignature(True)
 * def cuStreamBatchMemOp(stream not None : CUstream, unsigned int count, paramArray : List[CUstreamBatchMemOpParams], unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Batch operations to synchronize the stream via memory operations.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stream, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUstreamBatchMemOpParams)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_paramArray, __pyx_t_2) < 0) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_409cuStreamBatchMemOp, 0, __pyx_n_s_cuStreamBatchMemOp, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__728)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuStreamBatchMemOp, __pyx_t_2) < 0) __PYX_ERR(0, 20537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":20601
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetAttribute(attrib not None : CUfunction_attribute, hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns information about a function.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUfunction_attribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_attrib, __pyx_t_1) < 0) __PYX_ERR(0, 20601, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 20601, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_411cuFuncGetAttribute, 0, __pyx_n_s_cuFuncGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__730)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncGetAttribute, __pyx_t_1) < 0) __PYX_ERR(0, 20601, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20669
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetAttribute(hfunc not None : CUfunction, attrib not None : CUfunction_attribute, int value):             # <<<<<<<<<<<<<<
 *     """ Sets information about a function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUfunction_attribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attrib, __pyx_t_2) < 0) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_413cuFuncSetAttribute, 0, __pyx_n_s_cuFuncSetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__731)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncSetAttribute, __pyx_t_2) < 0) __PYX_ERR(0, 20669, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":20730
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetCacheConfig(hfunc not None : CUfunction, config not None : CUfunc_cache):             # <<<<<<<<<<<<<<
 *     """ Sets the preferred cache configuration for a device function.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUfunc_cache); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_config, __pyx_t_1) < 0) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_415cuFuncSetCacheConfig, 0, __pyx_n_s_cuFuncSetCacheConfig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__732)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncSetCacheConfig, __pyx_t_1) < 0) __PYX_ERR(0, 20730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20787
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedMemConfig(hfunc not None : CUfunction, config not None : CUsharedconfig):             # <<<<<<<<<<<<<<
 *     """ Sets the shared memory configuration for a device function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUsharedconfig); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_config, __pyx_t_2) < 0) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_417cuFuncSetSharedMemConfig, 0, __pyx_n_s_cuFuncSetSharedMemConfig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__733)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncSetSharedMemConfig, __pyx_t_2) < 0) __PYX_ERR(0, 20787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":20853
 * 
 * @cython.embedsignature(True)
 * def cuFuncGetModule(hfunc not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Returns a module handle.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 20853, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_419cuFuncGetModule, 0, __pyx_n_s_cuFuncGetModule, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__734)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncGetModule, __pyx_t_1) < 0) __PYX_ERR(0, 20853, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":20888
 * 
 * @cython.embedsignature(True)
 * def cuLaunchKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams, void_ptr extra):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_f, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 20888, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 20888, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_421cuLaunchKernel, 0, __pyx_n_s_cuLaunchKernel, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__735)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunchKernel, __pyx_t_2) < 0) __PYX_ERR(0, 20888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":21003
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernel(f not None : CUfunction, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hStream not None : CUstream, kernelParams):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function where thread blocks can cooperate and synchronize as they execute.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_f, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21003, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 21003, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_423cuLaunchCooperativeKernel, 0, __pyx_n_s_cuLaunchCooperativeKernel, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__736)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunchCooperativeKernel, __pyx_t_1) < 0) __PYX_ERR(0, 21003, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21102
 * 
 * @cython.embedsignature(True)
 * def cuLaunchCooperativeKernelMultiDevice(launchParamsList : List[CUDA_LAUNCH_PARAMS], unsigned int numDevices, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUDA_LAUNCH_PARAMS)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_launchParamsList, __pyx_t_3) < 0) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_425cuLaunchCooperativeKernelMultiDevice, 0, __pyx_n_s_cuLaunchCooperativeKernelMultiDe_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__737)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunchCooperativeKernelMultiDe_2, __pyx_t_3) < 0) __PYX_ERR(0, 21102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21264
 * 
 * @cython.embedsignature(True)
 * def cuLaunchHostFunc(hStream not None : CUstream, fn not None : CUhostFn, userData):             # <<<<<<<<<<<<<<
 *     """ Enqueues a host function call in a stream.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 21264, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fn_2, __pyx_n_u_CUhostFn_2) < 0) __PYX_ERR(0, 21264, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_427cuLaunchHostFunc, 0, __pyx_n_s_cuLaunchHostFunc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__739)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunchHostFunc, __pyx_t_1) < 0) __PYX_ERR(0, 21264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21338
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetBlockShape(hfunc not None : CUfunction, int x, int y, int z):             # <<<<<<<<<<<<<<
 *     """ Sets the block-dimensions for the function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21338, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_429cuFuncSetBlockShape, 0, __pyx_n_s_cuFuncSetBlockShape, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__740)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncSetBlockShape, __pyx_t_3) < 0) __PYX_ERR(0, 21338, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21387
 * 
 * @cython.embedsignature(True)
 * def cuFuncSetSharedSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the dynamic shared-memory size for the function.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21387, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_431cuFuncSetSharedSize, 0, __pyx_n_s_cuFuncSetSharedSize, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__741)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuFuncSetSharedSize, __pyx_t_1) < 0) __PYX_ERR(0, 21387, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21433
 * 
 * @cython.embedsignature(True)
 * def cuParamSetSize(hfunc not None : CUfunction, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Sets the parameter size for the function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21433, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_433cuParamSetSize, 0, __pyx_n_s_cuParamSetSize, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__742)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuParamSetSize, __pyx_t_3) < 0) __PYX_ERR(0, 21433, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21476
 * 
 * @cython.embedsignature(True)
 * def cuParamSeti(hfunc not None : CUfunction, int offset, unsigned int value):             # <<<<<<<<<<<<<<
 *     """ Adds an integer parameter to the function's argument list.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21476, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_435cuParamSeti, 0, __pyx_n_s_cuParamSeti, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__743)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuParamSeti, __pyx_t_1) < 0) __PYX_ERR(0, 21476, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21522
 * 
 * @cython.embedsignature(True)
 * def cuParamSetf(hfunc not None : CUfunction, int offset, float value):             # <<<<<<<<<<<<<<
 *     """ Adds a floating-point parameter to the function's argument list.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21522, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_437cuParamSetf, 0, __pyx_n_s_cuParamSetf, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__744)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuParamSetf, __pyx_t_3) < 0) __PYX_ERR(0, 21522, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21568
 * 
 * @cython.embedsignature(True)
 * def cuParamSetv(hfunc not None : CUfunction, int offset, ptr, unsigned int numbytes):             # <<<<<<<<<<<<<<
 *     """ Adds arbitrary data to the function's argument list.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21568, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_439cuParamSetv, 0, __pyx_n_s_cuParamSetv, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__745)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuParamSetv, __pyx_t_1) < 0) __PYX_ERR(0, 21568, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21618
 * 
 * @cython.embedsignature(True)
 * def cuLaunch(f not None : CUfunction):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_f, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21618, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_441cuLaunch, 0, __pyx_n_s_cuLaunch, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__746)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunch, __pyx_t_3) < 0) __PYX_ERR(0, 21618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21676
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGrid(f not None : CUfunction, int grid_width, int grid_height):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_f, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21676, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_443cuLaunchGrid, 0, __pyx_n_s_cuLaunchGrid, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__747)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunchGrid, __pyx_t_1) < 0) __PYX_ERR(0, 21676, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21738
 * 
 * @cython.embedsignature(True)
 * def cuLaunchGridAsync(f not None : CUfunction, int grid_width, int grid_height, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches a CUDA function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_f, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21738, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 21738, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_445cuLaunchGridAsync, 0, __pyx_n_s_cuLaunchGridAsync, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__748)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuLaunchGridAsync, __pyx_t_3) < 0) __PYX_ERR(0, 21738, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":21808
 * 
 * @cython.embedsignature(True)
 * def cuParamSetTexRef(hfunc not None : CUfunction, int texunit, hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Adds a texture-reference to the function's argument list.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hfunc, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 21808, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 21808, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_447cuParamSetTexRef, 0, __pyx_n_s_cuParamSetTexRef, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__749)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuParamSetTexRef, __pyx_t_1) < 0) __PYX_ERR(0, 21808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21842
 * 
 * @cython.embedsignature(True)
 * def cuGraphCreate(unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Creates a graph.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_449cuGraphCreate, 0, __pyx_n_s_cuGraphCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__750)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphCreate, __pyx_t_1) < 0) __PYX_ERR(0, 21842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":21883
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddKernelNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a kernel execution node and adds it to a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dependencies, __pyx_t_2) < 0) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_KERNEL_NODE_PARAMS) < 0) __PYX_ERR(0, 21883, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_451cuGraphAddKernelNode, 0, __pyx_n_s_cuGraphAddKernelNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__751)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddKernelNode, __pyx_t_2) < 0) __PYX_ERR(0, 21883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22005
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a kernel node's parameters.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22005, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_453cuGraphKernelNodeGetParams, 0, __pyx_n_s_cuGraphKernelNodeGetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__752)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphKernelNodeGetParams, __pyx_t_1) < 0) __PYX_ERR(0, 22005, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22044
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a kernel node's parameters.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22044, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_KERNEL_NODE_PARAMS) < 0) __PYX_ERR(0, 22044, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_455cuGraphKernelNodeSetParams, 0, __pyx_n_s_cuGraphKernelNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__753)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphKernelNodeSetParams, __pyx_t_2) < 0) __PYX_ERR(0, 22044, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22077
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemcpyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memcpy node and adds it to a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dependencies, __pyx_t_3) < 0) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_copyParams, __pyx_n_u_CUDA_MEMCPY3D) < 0) __PYX_ERR(0, 22077, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 22077, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_457cuGraphAddMemcpyNode, 0, __pyx_n_s_cuGraphAddMemcpyNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__754)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddMemcpyNode, __pyx_t_3) < 0) __PYX_ERR(0, 22077, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22157
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memcpy node's parameters.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22157, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_459cuGraphMemcpyNodeGetParams, 0, __pyx_n_s_cuGraphMemcpyNodeGetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__755)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphMemcpyNodeGetParams, __pyx_t_2) < 0) __PYX_ERR(0, 22157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22188
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemcpyNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMCPY3D):             # <<<<<<<<<<<<<<
 *     """ Sets a memcpy node's parameters.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22188, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_MEMCPY3D) < 0) __PYX_ERR(0, 22188, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_461cuGraphMemcpyNodeSetParams, 0, __pyx_n_s_cuGraphMemcpyNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__756)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphMemcpyNodeSetParams, __pyx_t_3) < 0) __PYX_ERR(0, 22188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22221
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemsetNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Creates a memset node and adds it to a graph.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dependencies, __pyx_t_1) < 0) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_memsetParams, __pyx_n_u_CUDA_MEMSET_NODE_PARAMS) < 0) __PYX_ERR(0, 22221, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 22221, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_463cuGraphAddMemsetNode, 0, __pyx_n_s_cuGraphAddMemsetNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__757)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddMemsetNode, __pyx_t_1) < 0) __PYX_ERR(0, 22221, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22292
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memset node's parameters.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22292, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_465cuGraphMemsetNodeGetParams, 0, __pyx_n_s_cuGraphMemsetNodeGetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__758)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphMemsetNodeGetParams, __pyx_t_3) < 0) __PYX_ERR(0, 22292, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22323
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemsetNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_MEMSET_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a memset node's parameters.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22323, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_MEMSET_NODE_PARAMS) < 0) __PYX_ERR(0, 22323, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_467cuGraphMemsetNodeSetParams, 0, __pyx_n_s_cuGraphMemsetNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__759)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphMemsetNodeSetParams, __pyx_t_1) < 0) __PYX_ERR(0, 22323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22356
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddHostNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates a host execution node and adds it to a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dependencies, __pyx_t_2) < 0) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_HOST_NODE_PARAMS) < 0) __PYX_ERR(0, 22356, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_469cuGraphAddHostNode, 0, __pyx_n_s_cuGraphAddHostNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__760)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddHostNode, __pyx_t_2) < 0) __PYX_ERR(0, 22356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22425
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a host node's parameters.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22425, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_471cuGraphHostNodeGetParams, 0, __pyx_n_s_cuGraphHostNodeGetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__761)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphHostNodeGetParams, __pyx_t_1) < 0) __PYX_ERR(0, 22425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22456
 * 
 * @cython.embedsignature(True)
 * def cuGraphHostNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets a host node's parameters.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22456, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_HOST_NODE_PARAMS) < 0) __PYX_ERR(0, 22456, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_473cuGraphHostNodeSetParams, 0, __pyx_n_s_cuGraphHostNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__762)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphHostNodeSetParams, __pyx_t_2) < 0) __PYX_ERR(0, 22456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22489
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddChildGraphNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Creates a child graph node and adds it to a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dependencies, __pyx_t_3) < 0) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_childGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22489, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_475cuGraphAddChildGraphNode, 0, __pyx_n_s_cuGraphAddChildGraphNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__763)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddChildGraphNode, __pyx_t_3) < 0) __PYX_ERR(0, 22489, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22558
 * 
 * @cython.embedsignature(True)
 * def cuGraphChildGraphNodeGetGraph(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Gets a handle to the embedded graph of a child graph node.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22558, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_477cuGraphChildGraphNodeGetGraph, 0, __pyx_n_s_cuGraphChildGraphNodeGetGraph, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__764)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphChildGraphNodeGetGraph, __pyx_t_2) < 0) __PYX_ERR(0, 22558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22593
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEmptyNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Creates an empty node and adds it to a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dependencies, __pyx_t_1) < 0) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_479cuGraphAddEmptyNode, 0, __pyx_n_s_cuGraphAddEmptyNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__765)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddEmptyNode, __pyx_t_1) < 0) __PYX_ERR(0, 22593, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22658
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventRecordNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event record node and adds it to a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dependencies, __pyx_t_3) < 0) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 22658, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_481cuGraphAddEventRecordNode, 0, __pyx_n_s_cuGraphAddEventRecordNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__766)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddEventRecordNode, __pyx_t_3) < 0) __PYX_ERR(0, 22658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22726
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event record node.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22726, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_483cuGraphEventRecordNodeGetEvent, 0, __pyx_n_s_cuGraphEventRecordNodeGetEvent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__767)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphEventRecordNodeGetEvent, __pyx_t_1) < 0) __PYX_ERR(0, 22726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":22759
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventRecordNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event record node's event.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22759, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 22759, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_485cuGraphEventRecordNodeSetEvent, 0, __pyx_n_s_cuGraphEventRecordNodeSetEvent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__768)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphEventRecordNodeSetEvent, __pyx_t_3) < 0) __PYX_ERR(0, 22759, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22793
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddEventWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Creates an event wait node and adds it to a graph.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dependencies, __pyx_t_2) < 0) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 22793, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_487cuGraphAddEventWaitNode, 0, __pyx_n_s_cuGraphAddEventWaitNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__769)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddEventWaitNode, __pyx_t_2) < 0) __PYX_ERR(0, 22793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22862
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeGetEvent(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns the event associated with an event wait node.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22862, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_489cuGraphEventWaitNodeGetEvent, 0, __pyx_n_s_cuGraphEventWaitNodeGetEvent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__770)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphEventWaitNodeGetEvent, __pyx_t_3) < 0) __PYX_ERR(0, 22862, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":22895
 * 
 * @cython.embedsignature(True)
 * def cuGraphEventWaitNodeSetEvent(hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets an event wait node's event.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 22895, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 22895, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_491cuGraphEventWaitNodeSetEvent, 0, __pyx_n_s_cuGraphEventWaitNodeSetEvent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__771)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphEventWaitNodeSetEvent, __pyx_t_2) < 0) __PYX_ERR(0, 22895, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":22929
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresSignalNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore signal node and adds it to a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dependencies, __pyx_t_1) < 0) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3) < 0) __PYX_ERR(0, 22929, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_493cuGraphAddExternalSemaphoresSignalNode, 0, __pyx_n_s_cuGraphAddExternalSemaphoresSign_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__772)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddExternalSemaphoresSign_2, __pyx_t_1) < 0) __PYX_ERR(0, 22929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23005
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore signal node's parameters.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23005, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_495cuGraphExternalSemaphoresSignalNodeGetParams, 0, __pyx_n_s_cuGraphExternalSemaphoresSignalN, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__773)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExternalSemaphoresSignalN, __pyx_t_2) < 0) __PYX_ERR(0, 23005, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":23044
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresSignalNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore signal node's parameters.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23044, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3) < 0) __PYX_ERR(0, 23044, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_497cuGraphExternalSemaphoresSignalNodeSetParams, 0, __pyx_n_s_cuGraphExternalSemaphoresSignalN_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__774)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExternalSemaphoresSignalN_2, __pyx_t_1) < 0) __PYX_ERR(0, 23044, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23080
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddExternalSemaphoresWaitNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an external semaphore wait node and adds it to a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dependencies, __pyx_t_3) < 0) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_EXT_SEM_WAIT_NODE_PARAMS) < 0) __PYX_ERR(0, 23080, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_499cuGraphAddExternalSemaphoresWaitNode, 0, __pyx_n_s_cuGraphAddExternalSemaphoresWait_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__775)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddExternalSemaphoresWait_2, __pyx_t_3) < 0) __PYX_ERR(0, 23080, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23156
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns an external semaphore wait node's parameters.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23156, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_501cuGraphExternalSemaphoresWaitNodeGetParams, 0, __pyx_n_s_cuGraphExternalSemaphoresWaitNod, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__776)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExternalSemaphoresWaitNod, __pyx_t_1) < 0) __PYX_ERR(0, 23156, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23194
 * 
 * @cython.embedsignature(True)
 * def cuGraphExternalSemaphoresWaitNodeSetParams(hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets an external semaphore wait node's parameters.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23194, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_EXT_SEM_WAIT_NODE_PARAMS) < 0) __PYX_ERR(0, 23194, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_503cuGraphExternalSemaphoresWaitNodeSetParams, 0, __pyx_n_s_cuGraphExternalSemaphoresWaitNod_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__777)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExternalSemaphoresWaitNod_2, __pyx_t_3) < 0) __PYX_ERR(0, 23194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23229
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemAllocNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, nodeParams : CUDA_MEM_ALLOC_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Creates an allocation node and adds it to a graph.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dependencies, __pyx_t_2) < 0) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_MEM_ALLOC_NODE_PARAMS) < 0) __PYX_ERR(0, 23229, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_505cuGraphAddMemAllocNode, 0, __pyx_n_s_cuGraphAddMemAllocNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__778)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddMemAllocNode, __pyx_t_2) < 0) __PYX_ERR(0, 23229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":23332
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemAllocNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory alloc node's parameters.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23332, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_507cuGraphMemAllocNodeGetParams, 0, __pyx_n_s_cuGraphMemAllocNodeGetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__779)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphMemAllocNodeGetParams, __pyx_t_3) < 0) __PYX_ERR(0, 23332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23365
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddMemFreeNode(hGraph not None : CUgraph, dependencies : List[CUgraphNode], size_t numDependencies, dptr not None : CUdeviceptr):             # <<<<<<<<<<<<<<
 *     """ Creates a memory free node and adds it to a graph.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dependencies, __pyx_t_1) < 0) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 23365, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_509cuGraphAddMemFreeNode, 0, __pyx_n_s_cuGraphAddMemFreeNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__780)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddMemFreeNode, __pyx_t_1) < 0) __PYX_ERR(0, 23365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23444
 * 
 * @cython.embedsignature(True)
 * def cuGraphMemFreeNodeGetParams(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a memory free node's parameters.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23444, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_511cuGraphMemFreeNodeGetParams, 0, __pyx_n_s_cuGraphMemFreeNodeGetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__781)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphMemFreeNodeGetParams, __pyx_t_3) < 0) __PYX_ERR(0, 23444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23474
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGraphMemTrim(device not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Free unused memory that was cached on the specified device for use with graphs back to the OS.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_device, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 23474, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_513cuDeviceGraphMemTrim, 0, __pyx_n_s_cuDeviceGraphMemTrim, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__782)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGraphMemTrim, __pyx_t_1) < 0) __PYX_ERR(0, 23474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23505
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute):             # <<<<<<<<<<<<<<
 *     """ Query asynchronous allocation attributes related to graphs.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_device, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CUgraphMem_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attr, __pyx_t_3) < 0) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_515cuDeviceGetGraphMemAttribute, 0, __pyx_n_s_cuDeviceGetGraphMemAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__783)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetGraphMemAttribute, __pyx_t_3) < 0) __PYX_ERR(0, 23505, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23548
 * 
 * @cython.embedsignature(True)
 * def cuDeviceSetGraphMemAttribute(device not None : CUdevice, attr not None : CUgraphMem_attribute, value):             # <<<<<<<<<<<<<<
 *     """ Set asynchronous allocation attributes related to graphs.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_device, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUgraphMem_attribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attr, __pyx_t_1) < 0) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_517cuDeviceSetGraphMemAttribute, 0, __pyx_n_s_cuDeviceSetGraphMemAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__784)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceSetGraphMemAttribute, __pyx_t_1) < 0) __PYX_ERR(0, 23548, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23589
 * 
 * @cython.embedsignature(True)
 * def cuGraphClone(originalGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Clones a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_originalGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23589, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_519cuGraphClone, 0, __pyx_n_s_cuGraphClone, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__785)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphClone, __pyx_t_3) < 0) __PYX_ERR(0, 23589, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23624
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeFindInClone(hOriginalNode not None : CUgraphNode, hClonedGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Finds a cloned version of a node.
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hOriginalNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23624, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hClonedGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23624, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_521cuGraphNodeFindInClone, 0, __pyx_n_s_cuGraphNodeFindInClone, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__786)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphNodeFindInClone, __pyx_t_1) < 0) __PYX_ERR(0, 23624, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23660
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetType(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Returns a node's type.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23660, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_523cuGraphNodeGetType, 0, __pyx_n_s_cuGraphNodeGetType, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__787)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphNodeGetType, __pyx_t_3) < 0) __PYX_ERR(0, 23660, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23699
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetNodes(hGraph not None : CUgraph, size_t numNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's nodes.
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(((size_t)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23699, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_525cuGraphGetNodes, 0, __pyx_n_s_cuGraphGetNodes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__788)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphGetNodes, __pyx_t_2) < 0) __PYX_ERR(0, 23699, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":23750
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetRootNodes(hGraph not None : CUgraph, size_t numRootNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's root nodes.
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(((size_t)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23750, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_527cuGraphGetRootNodes, 0, __pyx_n_s_cuGraphGetRootNodes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__789)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphGetRootNodes, __pyx_t_1) < 0) __PYX_ERR(0, 23750, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23801
 * 
 * @cython.embedsignature(True)
 * def cuGraphGetEdges(hGraph not None : CUgraph, size_t numEdges = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a graph's dependency edges.
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((size_t)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23801, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_529cuGraphGetEdges, 0, __pyx_n_s_cuGraphGetEdges, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__790)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphGetEdges, __pyx_t_3) < 0) __PYX_ERR(0, 23801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cuda/cuda.pyx":23866
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependencies(hNode not None : CUgraphNode, size_t numDependencies = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependencies.
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(((size_t)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23866, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_531cuGraphNodeGetDependencies, 0, __pyx_n_s_cuGraphNodeGetDependencies, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__791)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphNodeGetDependencies, __pyx_t_2) < 0) __PYX_ERR(0, 23866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":23918
 * 
 * @cython.embedsignature(True)
 * def cuGraphNodeGetDependentNodes(hNode not None : CUgraphNode, size_t numDependentNodes = 0):             # <<<<<<<<<<<<<<
 *     """ Returns a node's dependent nodes.
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(((size_t)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 23918, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_533cuGraphNodeGetDependentNodes, 0, __pyx_n_s_cuGraphNodeGetDependentNodes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__792)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphNodeGetDependentNodes, __pyx_t_1) < 0) __PYX_ERR(0, 23918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":23970
 * 
 * @cython.embedsignature(True)
 * def cuGraphAddDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Adds dependency edges to a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_from, __pyx_t_3) < 0) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_to, __pyx_t_2) < 0) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_535cuGraphAddDependencies, 0, __pyx_n_s_cuGraphAddDependencies, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__793)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphAddDependencies, __pyx_t_2) < 0) __PYX_ERR(0, 23970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24038
 * 
 * @cython.embedsignature(True)
 * def cuGraphRemoveDependencies(hGraph not None : CUgraph, from_ : List[CUgraphNode], to : List[CUgraphNode], size_t numDependencies):             # <<<<<<<<<<<<<<
 *     """ Removes dependency edges from a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_from, __pyx_t_3) < 0) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_List); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_ptype_4cuda_4cuda_CUgraphNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_to, __pyx_t_1) < 0) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_537cuGraphRemoveDependencies, 0, __pyx_n_s_cuGraphRemoveDependencies, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__796)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphRemoveDependencies, __pyx_t_1) < 0) __PYX_ERR(0, 24038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24110
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroyNode(hNode not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Remove a node from the graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24110, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_539cuGraphDestroyNode, 0, __pyx_n_s_cuGraphDestroyNode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__797)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphDestroyNode, __pyx_t_2) < 0) __PYX_ERR(0, 24110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24145
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiate(hGraph not None : CUgraph, char* logBuffer, size_t bufferSize):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 24145, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_541cuGraphInstantiate, 0, __pyx_n_s_cuGraphInstantiate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__798)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphInstantiate, __pyx_t_1) < 0) __PYX_ERR(0, 24145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24195
 * 
 * @cython.embedsignature(True)
 * def cuGraphInstantiateWithFlags(hGraph not None : CUgraph, unsigned long long flags):             # <<<<<<<<<<<<<<
 *     """ Creates an executable graph from a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 24195, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_543cuGraphInstantiateWithFlags, 0, __pyx_n_s_cuGraphInstantiateWithFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__799)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphInstantiateWithFlags, __pyx_t_2) < 0) __PYX_ERR(0, 24195, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24246
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecKernelNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_KERNEL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a kernel node in the given graphExec.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24246, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24246, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_KERNEL_NODE_PARAMS) < 0) __PYX_ERR(0, 24246, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_545cuGraphExecKernelNodeSetParams, 0, __pyx_n_s_cuGraphExecKernelNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__800)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecKernelNodeSetParams, __pyx_t_1) < 0) __PYX_ERR(0, 24246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24299
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemcpyNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, copyParams : CUDA_MEMCPY3D, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memcpy node in the given graphExec.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24299, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24299, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_copyParams, __pyx_n_u_CUDA_MEMCPY3D) < 0) __PYX_ERR(0, 24299, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 24299, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_547cuGraphExecMemcpyNodeSetParams, 0, __pyx_n_s_cuGraphExecMemcpyNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__801)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecMemcpyNodeSetParams, __pyx_t_2) < 0) __PYX_ERR(0, 24299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24360
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecMemsetNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, memsetParams : CUDA_MEMSET_NODE_PARAMS, ctx not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a memset node in the given graphExec.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24360, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24360, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_memsetParams, __pyx_n_u_CUDA_MEMSET_NODE_PARAMS) < 0) __PYX_ERR(0, 24360, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ctx, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 24360, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_549cuGraphExecMemsetNodeSetParams, 0, __pyx_n_s_cuGraphExecMemsetNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__802)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecMemsetNodeSetParams, __pyx_t_1) < 0) __PYX_ERR(0, 24360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24421
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecHostNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_HOST_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for a host node in the given graphExec.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24421, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24421, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_HOST_NODE_PARAMS) < 0) __PYX_ERR(0, 24421, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_551cuGraphExecHostNodeSetParams, 0, __pyx_n_s_cuGraphExecHostNodeSetParams, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__803)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecHostNodeSetParams, __pyx_t_2) < 0) __PYX_ERR(0, 24421, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24470
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecChildGraphNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, childGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Updates node parameters in the child graph node in the given graphExec.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24470, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24470, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_childGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 24470, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_553cuGraphExecChildGraphNodeSetParams, 0, __pyx_n_s_cuGraphExecChildGraphNodeSetPara, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__804)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecChildGraphNodeSetPara, __pyx_t_1) < 0) __PYX_ERR(0, 24470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24525
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventRecordNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event record node in the given graphExec.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24525, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24525, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 24525, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_555cuGraphExecEventRecordNodeSetEvent, 0, __pyx_n_s_cuGraphExecEventRecordNodeSetEve, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__805)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecEventRecordNodeSetEve, __pyx_t_2) < 0) __PYX_ERR(0, 24525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24577
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecEventWaitNodeSetEvent(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, event not None : CUevent):             # <<<<<<<<<<<<<<
 *     """ Sets the event for an event wait node in the given graphExec.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_event, __pyx_n_u_CUevent_2) < 0) __PYX_ERR(0, 24577, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_557cuGraphExecEventWaitNodeSetEvent, 0, __pyx_n_s_cuGraphExecEventWaitNodeSetEvent, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__806)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecEventWaitNodeSetEvent, __pyx_t_1) < 0) __PYX_ERR(0, 24577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24629
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_SIGNAL_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore signal node in the given graphExec.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24629, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24629, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_3) < 0) __PYX_ERR(0, 24629, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_559cuGraphExecExternalSemaphoresSignalNodeSetParams, 0, __pyx_n_s_cuGraphExecExternalSemaphoresSig, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__807)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecExternalSemaphoresSig, __pyx_t_2) < 0) __PYX_ERR(0, 24629, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24685
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec not None : CUgraphExec, hNode not None : CUgraphNode, nodeParams : CUDA_EXT_SEM_WAIT_NODE_PARAMS):             # <<<<<<<<<<<<<<
 *     """ Sets the parameters for an external semaphore wait node in the given graphExec.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24685, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24685, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nodeParams, __pyx_n_u_CUDA_EXT_SEM_WAIT_NODE_PARAMS) < 0) __PYX_ERR(0, 24685, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_561cuGraphExecExternalSemaphoresWaitNodeSetParams, 0, __pyx_n_s_cuGraphExecExternalSemaphoresWai, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__808)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecExternalSemaphoresWai, __pyx_t_1) < 0) __PYX_ERR(0, 24685, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24741
 * 
 * @cython.embedsignature(True)
 * def cuGraphUpload(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Uploads an executable graph in a stream.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24741, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 24741, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_563cuGraphUpload, 0, __pyx_n_s_cuGraphUpload, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__809)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphUpload, __pyx_t_2) < 0) __PYX_ERR(0, 24741, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24777
 * 
 * @cython.embedsignature(True)
 * def cuGraphLaunch(hGraphExec not None : CUgraphExec, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Launches an executable graph in a stream.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24777, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 24777, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_565cuGraphLaunch, 0, __pyx_n_s_cuGraphLaunch, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__810)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphLaunch, __pyx_t_1) < 0) __PYX_ERR(0, 24777, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24818
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecDestroy(hGraphExec not None : CUgraphExec):             # <<<<<<<<<<<<<<
 *     """ Destroys an executable graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24818, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_567cuGraphExecDestroy, 0, __pyx_n_s_cuGraphExecDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__811)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecDestroy, __pyx_t_2) < 0) __PYX_ERR(0, 24818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24850
 * 
 * @cython.embedsignature(True)
 * def cuGraphDestroy(hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Destroys a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 24850, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_569cuGraphDestroy, 0, __pyx_n_s_cuGraphDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__812)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphDestroy, __pyx_t_1) < 0) __PYX_ERR(0, 24850, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24878
 * 
 * @cython.embedsignature(True)
 * def cuGraphExecUpdate(hGraphExec not None : CUgraphExec, hGraph not None : CUgraph):             # <<<<<<<<<<<<<<
 *     """ Check whether an executable graph can be updated with a graph and perform the update if possible.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraphExec, __pyx_n_u_CUgraphExec_2) < 0) __PYX_ERR(0, 24878, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 24878, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_571cuGraphExecUpdate, 0, __pyx_n_s_cuGraphExecUpdate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__813)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphExecUpdate, __pyx_t_2) < 0) __PYX_ERR(0, 24878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":24970
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeCopyAttributes(dst not None : CUgraphNode, src not None : CUgraphNode):             # <<<<<<<<<<<<<<
 *     """ Copies attributes from source node to destination node.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dst_2, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24970, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_src, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24970, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_573cuGraphKernelNodeCopyAttributes, 0, __pyx_n_s_cuGraphKernelNodeCopyAttributes, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__814)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphKernelNodeCopyAttributes, __pyx_t_1) < 0) __PYX_ERR(0, 24970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":24995
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeGetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID):             # <<<<<<<<<<<<<<
 *     """ Queries node attribute.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUkernelNodeAttrID); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attr, __pyx_t_2) < 0) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_575cuGraphKernelNodeGetAttribute, 0, __pyx_n_s_cuGraphKernelNodeGetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__815)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphKernelNodeGetAttribute, __pyx_t_2) < 0) __PYX_ERR(0, 24995, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25023
 * 
 * @cython.embedsignature(True)
 * def cuGraphKernelNodeSetAttribute(hNode not None : CUgraphNode, attr not None : CUkernelNodeAttrID, value : CUkernelNodeAttrValue):             # <<<<<<<<<<<<<<
 *     """ Sets node attribute.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hNode, __pyx_n_u_CUgraphNode_2) < 0) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUkernelNodeAttrID); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_attr, __pyx_t_1) < 0) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_value, __pyx_n_u_CUkernelNodeAttrValue) < 0) __PYX_ERR(0, 25023, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_577cuGraphKernelNodeSetAttribute, 0, __pyx_n_s_cuGraphKernelNodeSetAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__816)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphKernelNodeSetAttribute, __pyx_t_1) < 0) __PYX_ERR(0, 25023, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25053
 * 
 * @cython.embedsignature(True)
 * def cuGraphDebugDotPrint(hGraph not None : CUgraph, char* path, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Write a DOT file describing graph structure.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hGraph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 25053, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_579cuGraphDebugDotPrint, 0, __pyx_n_s_cuGraphDebugDotPrint, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__817)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphDebugDotPrint, __pyx_t_2) < 0) __PYX_ERR(0, 25053, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25085
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectCreate(ptr, destroy not None : CUhostFn, unsigned int initialRefcount, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Create a user object.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_destroy, __pyx_n_u_CUhostFn_2) < 0) __PYX_ERR(0, 25085, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_581cuUserObjectCreate, 0, __pyx_n_s_cuUserObjectCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__818)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuUserObjectCreate, __pyx_t_1) < 0) __PYX_ERR(0, 25085, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25138
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRetain(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_object, __pyx_n_u_CUuserObject_2) < 0) __PYX_ERR(0, 25138, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_583cuUserObjectRetain, 0, __pyx_n_s_cuUserObjectRetain, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__819)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuUserObjectRetain, __pyx_t_2) < 0) __PYX_ERR(0, 25138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25175
 * 
 * @cython.embedsignature(True)
 * def cuUserObjectRelease(object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a reference to a user object.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_object, __pyx_n_u_CUuserObject_2) < 0) __PYX_ERR(0, 25175, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_585cuUserObjectRelease, 0, __pyx_n_s_cuUserObjectRelease, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__820)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuUserObjectRelease, __pyx_t_1) < 0) __PYX_ERR(0, 25175, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25215
 * 
 * @cython.embedsignature(True)
 * def cuGraphRetainUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Retain a reference to a user object from a graph.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_graph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 25215, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_object, __pyx_n_u_CUuserObject_2) < 0) __PYX_ERR(0, 25215, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_587cuGraphRetainUserObject, 0, __pyx_n_s_cuGraphRetainUserObject, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__821)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphRetainUserObject, __pyx_t_2) < 0) __PYX_ERR(0, 25215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25258
 * 
 * @cython.embedsignature(True)
 * def cuGraphReleaseUserObject(graph not None : CUgraph, object not None : CUuserObject, unsigned int count):             # <<<<<<<<<<<<<<
 *     """ Release a user object reference from a graph.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_graph, __pyx_n_u_CUgraph_2) < 0) __PYX_ERR(0, 25258, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_object, __pyx_n_u_CUuserObject_2) < 0) __PYX_ERR(0, 25258, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_589cuGraphReleaseUserObject, 0, __pyx_n_s_cuGraphReleaseUserObject, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__822)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphReleaseUserObject, __pyx_t_1) < 0) __PYX_ERR(0, 25258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25296
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessor(func not None : CUfunction, int blockSize, size_t dynamicSMemSize):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_func_2, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 25296, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_591cuOccupancyMaxActiveBlocksPerMultiprocessor, 0, __pyx_n_s_cuOccupancyMaxActiveBlocksPerMul, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__823)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuOccupancyMaxActiveBlocksPerMul, __pyx_t_2) < 0) __PYX_ERR(0, 25296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25332
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(func not None : CUfunction, int blockSize, size_t dynamicSMemSize, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Returns occupancy of a function.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_func_2, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 25332, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_593cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, 0, __pyx_n_s_cuOccupancyMaxActiveBlocksPerMul_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__824)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuOccupancyMaxActiveBlocksPerMul_2, __pyx_t_1) < 0) __PYX_ERR(0, 25332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25385
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSize(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_func_2, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 25385, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_blockSizeToDynamicSMemSize, __pyx_n_u_CUoccupancyB2DSize_2) < 0) __PYX_ERR(0, 25385, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_595cuOccupancyMaxPotentialBlockSize, 0, __pyx_n_s_cuOccupancyMaxPotentialBlockSize, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__825)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuOccupancyMaxPotentialBlockSize, __pyx_t_2) < 0) __PYX_ERR(0, 25385, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25446
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyMaxPotentialBlockSizeWithFlags(func not None : CUfunction, blockSizeToDynamicSMemSize not None : CUoccupancyB2DSize, size_t dynamicSMemSize, int blockSizeLimit, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Suggest a launch configuration with reasonable occupancy.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_func_2, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 25446, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_blockSizeToDynamicSMemSize, __pyx_n_u_CUoccupancyB2DSize_2) < 0) __PYX_ERR(0, 25446, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_597cuOccupancyMaxPotentialBlockSizeWithFlags, 0, __pyx_n_s_cuOccupancyMaxPotentialBlockSize_2, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__826)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuOccupancyMaxPotentialBlockSize_2, __pyx_t_1) < 0) __PYX_ERR(0, 25446, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25502
 * 
 * @cython.embedsignature(True)
 * def cuOccupancyAvailableDynamicSMemPerBlock(func not None : CUfunction, int numBlocks, int blockSize):             # <<<<<<<<<<<<<<
 *     """ Returns dynamic shared memory available per block when launching `numBlocks` blocks on SM.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_func_2, __pyx_n_u_CUfunction_2) < 0) __PYX_ERR(0, 25502, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_599cuOccupancyAvailableDynamicSMemPerBlock, 0, __pyx_n_s_cuOccupancyAvailableDynamicSMemP, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__827)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuOccupancyAvailableDynamicSMemP, __pyx_t_2) < 0) __PYX_ERR(0, 25502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25534
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetArray(hTexRef not None : CUtexref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds an array as a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25534, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 25534, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_601cuTexRefSetArray, 0, __pyx_n_s_cuTexRefSetArray, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__828)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetArray, __pyx_t_1) < 0) __PYX_ERR(0, 25534, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25585
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmappedArray(hTexRef not None : CUtexref, hMipmappedArray not None : CUmipmappedArray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Binds a mipmapped array to a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hMipmappedArray_2, __pyx_n_u_CUmipmappedArray_2) < 0) __PYX_ERR(0, 25585, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_603cuTexRefSetMipmappedArray, 0, __pyx_n_s_cuTexRefSetMipmappedArray, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__829)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetMipmappedArray, __pyx_t_2) < 0) __PYX_ERR(0, 25585, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25636
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress(hTexRef not None : CUtexref, dptr not None : CUdeviceptr, size_t numbytes):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25636, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 25636, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_605cuTexRefSetAddress, 0, __pyx_n_s_cuTexRefSetAddress, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__830)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetAddress, __pyx_t_1) < 0) __PYX_ERR(0, 25636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25704
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddress2D(hTexRef not None : CUtexref, desc : CUDA_ARRAY_DESCRIPTOR, dptr not None : CUdeviceptr, size_t Pitch):             # <<<<<<<<<<<<<<
 *     """ Binds an address as a 2D texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25704, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_desc, __pyx_n_u_CUDA_ARRAY_DESCRIPTOR) < 0) __PYX_ERR(0, 25704, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dptr_2, __pyx_n_u_CUdeviceptr_2) < 0) __PYX_ERR(0, 25704, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_607cuTexRefSetAddress2D, 0, __pyx_n_s_cuTexRefSetAddress2D, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__831)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetAddress2D, __pyx_t_2) < 0) __PYX_ERR(0, 25704, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25781
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFormat(hTexRef not None : CUtexref, fmt not None : CUarray_format, int NumPackedComponents):             # <<<<<<<<<<<<<<
 *     """ Sets the format for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUarray_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_fmt, __pyx_t_1) < 0) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_609cuTexRefSetFormat, 0, __pyx_n_s_cuTexRefSetFormat, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__832)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetFormat, __pyx_t_1) < 0) __PYX_ERR(0, 25781, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25837
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetAddressMode(hTexRef not None : CUtexref, int dim, am not None : CUaddress_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the addressing mode for a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUaddress_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_am, __pyx_t_2) < 0) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_611cuTexRefSetAddressMode, 0, __pyx_n_s_cuTexRefSetAddressMode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__833)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetAddressMode, __pyx_t_2) < 0) __PYX_ERR(0, 25837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":25898
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the filtering mode for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CUfilter_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_fm, __pyx_t_1) < 0) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_613cuTexRefSetFilterMode, 0, __pyx_n_s_cuTexRefSetFilterMode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__834)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetFilterMode, __pyx_t_1) < 0) __PYX_ERR(0, 25898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":25952
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapFilterMode(hTexRef not None : CUtexref, fm not None : CUfilter_mode):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap filtering mode for a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUfilter_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fm, __pyx_t_2) < 0) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_615cuTexRefSetMipmapFilterMode, 0, __pyx_n_s_cuTexRefSetMipmapFilterMode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__835)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetMipmapFilterMode, __pyx_t_2) < 0) __PYX_ERR(0, 25952, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26006
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelBias(hTexRef not None : CUtexref, float bias):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap level bias for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26006, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_617cuTexRefSetMipmapLevelBias, 0, __pyx_n_s_cuTexRefSetMipmapLevelBias, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__836)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetMipmapLevelBias, __pyx_t_1) < 0) __PYX_ERR(0, 26006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26056
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMipmapLevelClamp(hTexRef not None : CUtexref, float minMipmapLevelClamp, float maxMipmapLevelClamp):             # <<<<<<<<<<<<<<
 *     """ Sets the mipmap min/max mipmap level clamps for a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26056, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_619cuTexRefSetMipmapLevelClamp, 0, __pyx_n_s_cuTexRefSetMipmapLevelClamp, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__837)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetMipmapLevelClamp, __pyx_t_2) < 0) __PYX_ERR(0, 26056, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26108
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetMaxAnisotropy(hTexRef not None : CUtexref, unsigned int maxAniso):             # <<<<<<<<<<<<<<
 *     """ Sets the maximum anisotropy for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26108, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_621cuTexRefSetMaxAnisotropy, 0, __pyx_n_s_cuTexRefSetMaxAnisotropy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__838)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetMaxAnisotropy, __pyx_t_1) < 0) __PYX_ERR(0, 26108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26158
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetBorderColor(hTexRef not None : CUtexref, float pBorderColor):             # <<<<<<<<<<<<<<
 *     """ Sets the border color for a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26158, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_623cuTexRefSetBorderColor, 0, __pyx_n_s_cuTexRefSetBorderColor, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__839)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetBorderColor, __pyx_t_2) < 0) __PYX_ERR(0, 26158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26206
 * 
 * @cython.embedsignature(True)
 * def cuTexRefSetFlags(hTexRef not None : CUtexref, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the flags for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26206, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_625cuTexRefSetFlags, 0, __pyx_n_s_cuTexRefSetFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__840)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefSetFlags, __pyx_t_1) < 0) __PYX_ERR(0, 26206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26268
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddress(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the address associated with a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26268, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_627cuTexRefGetAddress, 0, __pyx_n_s_cuTexRefGetAddress, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__841)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetAddress, __pyx_t_2) < 0) __PYX_ERR(0, 26268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26313
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the array bound to a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26313, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_629cuTexRefGetArray, 0, __pyx_n_s_cuTexRefGetArray, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__842)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetArray, __pyx_t_1) < 0) __PYX_ERR(0, 26313, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26358
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmappedArray(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmapped array bound to a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26358, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_631cuTexRefGetMipmappedArray, 0, __pyx_n_s_cuTexRefGetMipmappedArray, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__843)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetMipmappedArray, __pyx_t_2) < 0) __PYX_ERR(0, 26358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26403
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetAddressMode(hTexRef not None : CUtexref, int dim):             # <<<<<<<<<<<<<<
 *     """ Gets the addressing mode used by a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26403, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_633cuTexRefGetAddressMode, 0, __pyx_n_s_cuTexRefGetAddressMode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__844)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetAddressMode, __pyx_t_1) < 0) __PYX_ERR(0, 26403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26450
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the filter-mode used by a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26450, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_635cuTexRefGetFilterMode, 0, __pyx_n_s_cuTexRefGetFilterMode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__845)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetFilterMode, __pyx_t_2) < 0) __PYX_ERR(0, 26450, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26494
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFormat(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the format used by a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26494, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_637cuTexRefGetFormat, 0, __pyx_n_s_cuTexRefGetFormat, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__846)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetFormat, __pyx_t_1) < 0) __PYX_ERR(0, 26494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26542
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapFilterMode(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap filtering mode for a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26542, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_639cuTexRefGetMipmapFilterMode, 0, __pyx_n_s_cuTexRefGetMipmapFilterMode, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__847)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetMipmapFilterMode, __pyx_t_2) < 0) __PYX_ERR(0, 26542, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26586
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelBias(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the mipmap level bias for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26586, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_641cuTexRefGetMipmapLevelBias, 0, __pyx_n_s_cuTexRefGetMipmapLevelBias, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__848)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetMipmapLevelBias, __pyx_t_1) < 0) __PYX_ERR(0, 26586, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26631
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMipmapLevelClamp(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the min/max mipmap level clamps for a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26631, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_643cuTexRefGetMipmapLevelClamp, 0, __pyx_n_s_cuTexRefGetMipmapLevelClamp, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__849)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetMipmapLevelClamp, __pyx_t_2) < 0) __PYX_ERR(0, 26631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26679
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetMaxAnisotropy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the maximum anisotropy for a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26679, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_645cuTexRefGetMaxAnisotropy, 0, __pyx_n_s_cuTexRefGetMaxAnisotropy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__850)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetMaxAnisotropy, __pyx_t_1) < 0) __PYX_ERR(0, 26679, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26723
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetBorderColor(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the border color used by a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26723, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_647cuTexRefGetBorderColor, 0, __pyx_n_s_cuTexRefGetBorderColor, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__851)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetBorderColor, __pyx_t_2) < 0) __PYX_ERR(0, 26723, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26760
 * 
 * @cython.embedsignature(True)
 * def cuTexRefGetFlags(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Gets the flags used by a texture reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26760, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_649cuTexRefGetFlags, 0, __pyx_n_s_cuTexRefGetFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__852)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefGetFlags, __pyx_t_1) < 0) __PYX_ERR(0, 26760, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26803
 * 
 * @cython.embedsignature(True)
 * def cuTexRefCreate():             # <<<<<<<<<<<<<<
 *     """ Creates a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_651cuTexRefCreate, 0, __pyx_n_s_cuTexRefCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__853)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefCreate, __pyx_t_1) < 0) __PYX_ERR(0, 26803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26835
 * 
 * @cython.embedsignature(True)
 * def cuTexRefDestroy(hTexRef not None : CUtexref):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hTexRef, __pyx_n_u_CUtexref_2) < 0) __PYX_ERR(0, 26835, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_653cuTexRefDestroy, 0, __pyx_n_s_cuTexRefDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__854)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexRefDestroy, __pyx_t_2) < 0) __PYX_ERR(0, 26835, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26866
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefSetArray(hSurfRef not None : CUsurfref, hArray not None : CUarray, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Sets the CUDA array for a surface reference.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hSurfRef, __pyx_n_u_CUsurfref_2) < 0) __PYX_ERR(0, 26866, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hArray_2, __pyx_n_u_CUarray_2) < 0) __PYX_ERR(0, 26866, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_655cuSurfRefSetArray, 0, __pyx_n_s_cuSurfRefSetArray, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__855)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuSurfRefSetArray, __pyx_t_1) < 0) __PYX_ERR(0, 26866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":26907
 * 
 * @cython.embedsignature(True)
 * def cuSurfRefGetArray(hSurfRef not None : CUsurfref):             # <<<<<<<<<<<<<<
 *     """ Passes back the CUDA array bound to a surface reference.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hSurfRef, __pyx_n_u_CUsurfref_2) < 0) __PYX_ERR(0, 26907, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_657cuSurfRefGetArray, 0, __pyx_n_s_cuSurfRefGetArray, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__856)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuSurfRefGetArray, __pyx_t_2) < 0) __PYX_ERR(0, 26907, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":26942
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectCreate(pResDesc : CUDA_RESOURCE_DESC, pTexDesc : CUDA_TEXTURE_DESC, pResViewDesc : CUDA_RESOURCE_VIEW_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a texture object.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pResDesc, __pyx_n_u_CUDA_RESOURCE_DESC) < 0) __PYX_ERR(0, 26942, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pTexDesc, __pyx_n_u_CUDA_TEXTURE_DESC) < 0) __PYX_ERR(0, 26942, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pResViewDesc, __pyx_n_u_CUDA_RESOURCE_VIEW_DESC) < 0) __PYX_ERR(0, 26942, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_659cuTexObjectCreate, 0, __pyx_n_s_cuTexObjectCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__857)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexObjectCreate, __pyx_t_1) < 0) __PYX_ERR(0, 26942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27124
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectDestroy(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a texture object.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_texObject, __pyx_n_u_CUtexObject_2) < 0) __PYX_ERR(0, 27124, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_661cuTexObjectDestroy, 0, __pyx_n_s_cuTexObjectDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__858)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexObjectDestroy, __pyx_t_2) < 0) __PYX_ERR(0, 27124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27154
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource descriptor.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_texObject, __pyx_n_u_CUtexObject_2) < 0) __PYX_ERR(0, 27154, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_663cuTexObjectGetResourceDesc, 0, __pyx_n_s_cuTexObjectGetResourceDesc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__859)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexObjectGetResourceDesc, __pyx_t_1) < 0) __PYX_ERR(0, 27154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27186
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetTextureDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's texture descriptor.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_texObject, __pyx_n_u_CUtexObject_2) < 0) __PYX_ERR(0, 27186, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_665cuTexObjectGetTextureDesc, 0, __pyx_n_s_cuTexObjectGetTextureDesc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__860)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexObjectGetTextureDesc, __pyx_t_2) < 0) __PYX_ERR(0, 27186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27218
 * 
 * @cython.embedsignature(True)
 * def cuTexObjectGetResourceViewDesc(texObject not None : CUtexObject):             # <<<<<<<<<<<<<<
 *     """ Returns a texture object's resource view descriptor.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_texObject, __pyx_n_u_CUtexObject_2) < 0) __PYX_ERR(0, 27218, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_667cuTexObjectGetResourceViewDesc, 0, __pyx_n_s_cuTexObjectGetResourceViewDesc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__861)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuTexObjectGetResourceViewDesc, __pyx_t_1) < 0) __PYX_ERR(0, 27218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27251
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectCreate(pResDesc : CUDA_RESOURCE_DESC):             # <<<<<<<<<<<<<<
 *     """ Creates a surface object.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pResDesc, __pyx_n_u_CUDA_RESOURCE_DESC) < 0) __PYX_ERR(0, 27251, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_669cuSurfObjectCreate, 0, __pyx_n_s_cuSurfObjectCreate, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__862)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuSurfObjectCreate, __pyx_t_2) < 0) __PYX_ERR(0, 27251, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27291
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectDestroy(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Destroys a surface object.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_surfObject, __pyx_n_u_CUsurfObject_2) < 0) __PYX_ERR(0, 27291, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_671cuSurfObjectDestroy, 0, __pyx_n_s_cuSurfObjectDestroy, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__863)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuSurfObjectDestroy, __pyx_t_1) < 0) __PYX_ERR(0, 27291, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27321
 * 
 * @cython.embedsignature(True)
 * def cuSurfObjectGetResourceDesc(surfObject not None : CUsurfObject):             # <<<<<<<<<<<<<<
 *     """ Returns a surface object's resource descriptor.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_surfObject, __pyx_n_u_CUsurfObject_2) < 0) __PYX_ERR(0, 27321, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_673cuSurfObjectGetResourceDesc, 0, __pyx_n_s_cuSurfObjectGetResourceDesc, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__864)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuSurfObjectGetResourceDesc, __pyx_t_2) < 0) __PYX_ERR(0, 27321, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27353
 * 
 * @cython.embedsignature(True)
 * def cuDeviceCanAccessPeer(dev not None : CUdevice, peerDev not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries if a device may directly access a peer device's memory.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 27353, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_peerDev, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 27353, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_675cuDeviceCanAccessPeer, 0, __pyx_n_s_cuDeviceCanAccessPeer, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__865)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceCanAccessPeer, __pyx_t_1) < 0) __PYX_ERR(0, 27353, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27392
 * 
 * @cython.embedsignature(True)
 * def cuCtxEnablePeerAccess(peerContext not None : CUcontext, unsigned int Flags):             # <<<<<<<<<<<<<<
 *     """ Enables direct access to memory allocations in a peer context.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_peerContext, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 27392, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_677cuCtxEnablePeerAccess, 0, __pyx_n_s_cuCtxEnablePeerAccess, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__866)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxEnablePeerAccess, __pyx_t_2) < 0) __PYX_ERR(0, 27392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27458
 * 
 * @cython.embedsignature(True)
 * def cuCtxDisablePeerAccess(peerContext not None : CUcontext):             # <<<<<<<<<<<<<<
 *     """ Disables direct access to memory allocations in a peer context and unregisters any registered allocations.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_peerContext, __pyx_n_u_CUcontext_2) < 0) __PYX_ERR(0, 27458, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_679cuCtxDisablePeerAccess, 0, __pyx_n_s_cuCtxDisablePeerAccess, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__867)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuCtxDisablePeerAccess, __pyx_t_1) < 0) __PYX_ERR(0, 27458, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27493
 * 
 * @cython.embedsignature(True)
 * def cuDeviceGetP2PAttribute(attrib not None : CUdevice_P2PAttribute, srcDevice not None : CUdevice, dstDevice not None : CUdevice):             # <<<<<<<<<<<<<<
 *     """ Queries attributes of the link between two devices.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CUdevice_P2PAttribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attrib, __pyx_t_2) < 0) __PYX_ERR(0, 27493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_srcDevice_2, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 27493, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dstDevice_2, __pyx_n_u_CUdevice_2) < 0) __PYX_ERR(0, 27493, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_681cuDeviceGetP2PAttribute, 0, __pyx_n_s_cuDeviceGetP2PAttribute, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__868)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuDeviceGetP2PAttribute, __pyx_t_2) < 0) __PYX_ERR(0, 27493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27546
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnregisterResource(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Unregisters a graphics resource for access by CUDA.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resource_2, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27546, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_683cuGraphicsUnregisterResource, 0, __pyx_n_s_cuGraphicsUnregisterResource, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__869)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsUnregisterResource, __pyx_t_1) < 0) __PYX_ERR(0, 27546, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27579
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsSubResourceGetMappedArray(resource not None : CUgraphicsResource, unsigned int arrayIndex, unsigned int mipLevel):             # <<<<<<<<<<<<<<
 *     """ Get an array through which to access a subresource of a mapped graphics resource.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_resource_2, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27579, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_685cuGraphicsSubResourceGetMappedArray, 0, __pyx_n_s_cuGraphicsSubResourceGetMappedAr, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__870)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsSubResourceGetMappedAr, __pyx_t_2) < 0) __PYX_ERR(0, 27579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27630
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedMipmappedArray(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a mipmapped array through which to access a mapped graphics resource.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resource_2, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27630, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_687cuGraphicsResourceGetMappedMipmappedArray, 0, __pyx_n_s_cuGraphicsResourceGetMappedMipma, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__871)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsResourceGetMappedMipma, __pyx_t_1) < 0) __PYX_ERR(0, 27630, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27670
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceGetMappedPointer(resource not None : CUgraphicsResource):             # <<<<<<<<<<<<<<
 *     """ Get a device pointer through which to access a mapped graphics resource.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_resource_2, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27670, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_689cuGraphicsResourceGetMappedPointer, 0, __pyx_n_s_cuGraphicsResourceGetMappedPoint, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__872)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsResourceGetMappedPoint, __pyx_t_2) < 0) __PYX_ERR(0, 27670, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27704
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsResourceSetMapFlags(resource not None : CUgraphicsResource, unsigned int flags):             # <<<<<<<<<<<<<<
 *     """ Set usage flags for mapping a graphics resource.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resource_2, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27704, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_691cuGraphicsResourceSetMapFlags, 0, __pyx_n_s_cuGraphicsResourceSetMapFlags, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__873)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsResourceSetMapFlags, __pyx_t_1) < 0) __PYX_ERR(0, 27704, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27755
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsMapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Map graphics resources for access by CUDA.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_resources, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27755, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 27755, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_693cuGraphicsMapResources, 0, __pyx_n_s_cuGraphicsMapResources, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__874)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsMapResources, __pyx_t_2) < 0) __PYX_ERR(0, 27755, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27808
 * 
 * @cython.embedsignature(True)
 * def cuGraphicsUnmapResources(unsigned int count, resources : CUgraphicsResource, hStream not None : CUstream):             # <<<<<<<<<<<<<<
 *     """ Unmap graphics resources.
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resources, __pyx_n_u_CUgraphicsResource_2) < 0) __PYX_ERR(0, 27808, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_hStream_2, __pyx_n_u_CUstream_2) < 0) __PYX_ERR(0, 27808, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_695cuGraphicsUnmapResources, 0, __pyx_n_s_cuGraphicsUnmapResources, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__875)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGraphicsUnmapResources, __pyx_t_1) < 0) __PYX_ERR(0, 27808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27857
 * 
 * @cython.embedsignature(True)
 * def cuGetProcAddress(char* symbol, int cudaVersion, flags not None : cuuint64_t):             # <<<<<<<<<<<<<<
 *     """ Returns the requested driver API function pointer.
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_flags_2, __pyx_n_u_cuuint64_t_2) < 0) __PYX_ERR(0, 27857, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_697cuGetProcAddress, 0, __pyx_n_s_cuGetProcAddress, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__876)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGetProcAddress, __pyx_t_2) < 0) __PYX_ERR(0, 27857, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cuda/cuda.pyx":27927
 * 
 * @cython.embedsignature(True)
 * def cuGetExportTable(pExportTableId : CUuuid):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pExportTableId, __pyx_n_u_CUuuid) < 0) __PYX_ERR(0, 27927, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_699cuGetExportTable, 0, __pyx_n_s_cuGetExportTable, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__877)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cuGetExportTable, __pyx_t_1) < 0) __PYX_ERR(0, 27927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":27943
 * 
 * @cython.embedsignature(True)
 * def sizeof(objType):             # <<<<<<<<<<<<<<
 *     """ Returns the size of provided CUDA Python structure in bytes
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4cuda_4cuda_701sizeof, 0, __pyx_n_s_sizeof, NULL, __pyx_n_s_cuda_cuda, __pyx_d, ((PyObject *)__pyx_codeobj__878)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sizeof, __pyx_t_1) < 0) __PYX_ERR(0, 27943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cuda/cuda.pyx":1
 * # Copyright 2021 NVIDIA Corporation.  All rights reserved.             # <<<<<<<<<<<<<<
 * #
 * # Please refer to the NVIDIA end user license agreement (EULA) associated
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute")
 * cdef vector[X] __pyx_convert_vector_from_py___pyx_t_4cuda_5ccuda_CUpointer_attribute(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */
  __Pyx_TraceReturn(Py_None, 0);

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init cuda.cuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init cuda.cuda");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* Profile */
#if CYTHON_PROFILE
static int __Pyx_TraceSetupAndCall(PyCodeObject** code,
                                   PyFrameObject** frame,
                                   PyThreadState* tstate,
                                   const char *funcname,
                                   const char *srcfile,
                                   int firstlineno) {
    PyObject *type, *value, *traceback;
    int retval;
    if (*frame == NULL || !CYTHON_PROFILE_REUSE_FRAME) {
        if (*code == NULL) {
            *code = __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno);
            if (*code == NULL) return 0;
        }
        *frame = PyFrame_New(
            tstate,                          /*PyThreadState *tstate*/
            *code,                           /*PyCodeObject *code*/
            __pyx_d,                  /*PyObject *globals*/
            0                                /*PyObject *locals*/
        );
        if (*frame == NULL) return 0;
        if (CYTHON_TRACE && (*frame)->f_trace == NULL) {
            Py_INCREF(Py_None);
            (*frame)->f_trace = Py_None;
        }
#if PY_VERSION_HEX < 0x030400B1
    } else {
        (*frame)->f_tstate = tstate;
#endif
    }
    __Pyx_PyFrame_SetLineNumber(*frame, firstlineno);
    retval = 1;
    __Pyx_EnterTracing(tstate);
    __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
    #if CYTHON_TRACE
    if (tstate->c_tracefunc)
        retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0;
    if (retval && tstate->c_profilefunc)
    #endif
        retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0;
    __Pyx_LeaveTracing(tstate);
    if (retval) {
        __Pyx_ErrRestoreInState(tstate, type, value, traceback);
        return __Pyx_IsTracing(tstate, 0, 0) && retval;
    } else {
        Py_XDECREF(type);
        Py_XDECREF(value);
        Py_XDECREF(traceback);
        return -1;
    }
}
static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno) {
    PyCodeObject *py_code = 0;
#if PY_MAJOR_VERSION >= 3
    py_code = PyCode_NewEmpty(srcfile, funcname, firstlineno);
    if (likely(py_code)) {
        py_code->co_flags |= CO_OPTIMIZED | CO_NEWLOCALS;
    }
#else
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    py_funcname = PyString_FromString(funcname);
    if (unlikely(!py_funcname)) goto bad;
    py_srcfile = PyString_FromString(srcfile);
    if (unlikely(!py_srcfile)) goto bad;
    py_code = PyCode_New(
        0,
        0,
        0,
        CO_OPTIMIZED | CO_NEWLOCALS,
        __pyx_empty_bytes,     /*PyObject *code,*/
        __pyx_empty_tuple,     /*PyObject *consts,*/
        __pyx_empty_tuple,     /*PyObject *names,*/
        __pyx_empty_tuple,     /*PyObject *varnames,*/
        __pyx_empty_tuple,     /*PyObject *freevars,*/
        __pyx_empty_tuple,     /*PyObject *cellvars,*/
        py_srcfile,       /*PyObject *filename,*/
        py_funcname,      /*PyObject *name,*/
        firstlineno,
        __pyx_empty_bytes      /*PyObject *lnotab*/
    );
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
#endif
    return py_code;
}
#endif

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    int flags = PyCFunction_GET_FLAGS(func);
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
        return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
    } else {
        return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
    }
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
    if (likely(PyCFunction_Check(func))) {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (__Pyx_PyFastCFunction_Check(func)) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    __Pyx_PyThreadState_declare
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kwdict,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    while (PyDict_Next(kwdict, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if ((!kw_allowed) && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* PyObjectCallNoArg */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
#else
    if (likely(PyCFunction_Check(func)))
#endif
    {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            x = (long)((unsigned long)a + b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            double result;
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            x = (long)((unsigned long)a - b);
            if (likely((x^a) >= 0 || (x^~b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
            }
        }
                x = a - b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla - llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            double result;
            PyFPE_START_PROTECT("subtract", return NULL)
            result = ((double)a) - (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
}
#endif

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* PyObjectCall2Args */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args, *result = NULL;
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyFunction_FastCall(function, args, 2);
    }
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyCFunction_FastCall(function, args, 2);
    }
    #endif
    args = PyTuple_New(2);
    if (unlikely(!args)) goto done;
    Py_INCREF(arg1);
    PyTuple_SET_ITEM(args, 0, arg1);
    Py_INCREF(arg2);
    PyTuple_SET_ITEM(args, 1, arg2);
    Py_INCREF(function);
    result = __Pyx_PyObject_Call(function, args, NULL);
    Py_DECREF(args);
    Py_DECREF(function);
done:
    return result;
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
    return 0;
}

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* GetAttr */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* None */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    #endif
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    if (unlikely(PyTuple_Check(err)))
        return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* PyObject_GenericGetAttrNoDict */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, attr_name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(attr_name));
#endif
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PyObject_GenericGetAttr */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError */
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
}

/* SetupReduce */
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_3);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
#else
    if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
#endif
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
            if (likely(reduce_cython)) {
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred())
        PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if ((size_t)basicsize < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* CalculateMetaclass */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* Py3ClassCreate */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs = PyTuple_Pack(2, name, bases);
            if (unlikely(!pargs)) {
                Py_DECREF(prep);
                return NULL;
            }
            ns = PyObject_Call(prep, pargs, mkw);
            Py_DECREF(prep);
            Py_DECREF(pargs);
        } else {
            if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
                return NULL;
            PyErr_Clear();
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result, *margs;
    PyObject *owned_metaclass = NULL;
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    margs = PyTuple_Pack(3, name, bases, dict);
    if (unlikely(!margs)) {
        result = NULL;
    } else {
        result = PyObject_Call(metaclass, margs, mkw);
        Py_DECREF(margs);
    }
    Py_XDECREF(owned_metaclass);
    return result;
}

/* FetchCommonType */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunctionShared */
#include <structmember.h>
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    Py_INCREF(m->func_qualname);
    return m->func_qualname;
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    if (unlikely(op == NULL))
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults_size = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
#if PY_MAJOR_VERSION < 3
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
#endif
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
    PyObject *runerr;
    Py_ssize_t key_value;
    PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
    if (unlikely(!(m && m->sq_item))) {
        PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
        return NULL;
    }
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
    PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
    if (likely(m && m->mp_subscript)) {
        return m->mp_subscript(obj, key);
    }
    return __Pyx_PyObject_GetIndex(obj, key);
}
#endif

/* CLineInTraceback */
#ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_srcfile = NULL;
    py_srcfile = PyString_FromString(filename);
    if (!py_srcfile) goto bad;
    #endif
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        if (!py_funcname) goto bad;
        #endif
    }
    #if PY_MAJOR_VERSION < 3
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    #else
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    #endif
    Py_XDECREF(py_funcname);  // XDECREF since it's only set on Py3 if cline
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_srcfile);
    #endif
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUipcMem_flags_enum(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUipcMem_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAttach_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUctx_flags_enum(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUctx_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstream_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstream_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_flags_enum(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_record_flags_enum(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_record_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUevent_wait_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWaitValue_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamWriteValue_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUoccupancy_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamUpdateCaptureDependencies_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUarray_format_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUshared_carveout_enum(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUshared_carveout_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUcomputemode_enum(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUcomputemode_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjit_option_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_target_enum(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjit_target_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_target_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_fallback_enum(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_fallback_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_cacheMode_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsRegisterFlags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphicsMapResourceFlags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_cubemap_face_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(enum __pyx_t_4cuda_5ccuda_CUlimit_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUlimit_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphNodeType_enum(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphNodeType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureStatus_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUdriverProcAddress_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_cudaError_enum(enum __pyx_t_4cuda_5ccuda_cudaError_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_cudaError_enum neg_one = (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_cudaError_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationCompType_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphExecUpdateResult_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesOptions_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUGPUDirectRDMAWritesOrdering_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphDebugDot_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUuserObject_flags_enum(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObject_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUuserObjectRetain_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphInstantiate_flags_enum),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_As_unsigned_PY_LONG_LONG(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG) -1, const_zero = (unsigned PY_LONG_LONG) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned PY_LONG_LONG) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned PY_LONG_LONG) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned PY_LONG_LONG) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, digit, digits[0])
                case 2:
                    if (8 * sizeof(unsigned PY_LONG_LONG) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) >= 2 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned PY_LONG_LONG) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) >= 3 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned PY_LONG_LONG) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) >= 4 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned PY_LONG_LONG) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(unsigned PY_LONG_LONG) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned PY_LONG_LONG, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned PY_LONG_LONG, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned PY_LONG_LONG) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) (((unsigned PY_LONG_LONG)-1)*(((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(unsigned PY_LONG_LONG) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) ((((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) (((unsigned PY_LONG_LONG)-1)*(((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned PY_LONG_LONG) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) ((((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) (((unsigned PY_LONG_LONG)-1)*(((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned PY_LONG_LONG) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned PY_LONG_LONG, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned PY_LONG_LONG) ((((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(unsigned PY_LONG_LONG) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned PY_LONG_LONG, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned PY_LONG_LONG, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned PY_LONG_LONG val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned PY_LONG_LONG) -1;
        }
    } else {
        unsigned PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned PY_LONG_LONG) -1;
        val = __Pyx_PyInt_As_unsigned_PY_LONG_LONG(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned PY_LONG_LONG");
    return (unsigned PY_LONG_LONG) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned PY_LONG_LONG");
    return (unsigned PY_LONG_LONG) -1;
}

/* CIntFromPy */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0])
                case 2:
                    if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) {
                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) {
                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) {
                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(unsigned int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(unsigned int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned int) -1;
        }
    } else {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyInt_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(size_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
                            return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (size_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(size_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(size_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            size_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (size_t) -1;
        }
    } else {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE unsigned char __Pyx_PyInt_As_unsigned_char(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned char) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned char, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned char) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned char) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned char, digit, digits[0])
                case 2:
                    if (8 * sizeof(unsigned char) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) >= 2 * PyLong_SHIFT) {
                            return (unsigned char) (((((unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned char) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) >= 3 * PyLong_SHIFT) {
                            return (unsigned char) (((((((unsigned char)digits[2]) << PyLong_SHIFT) | (unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned char) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) >= 4 * PyLong_SHIFT) {
                            return (unsigned char) (((((((((unsigned char)digits[3]) << PyLong_SHIFT) | (unsigned char)digits[2]) << PyLong_SHIFT) | (unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned char) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(unsigned char) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned char, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned char) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned char, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned char,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(unsigned char) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned char) (((unsigned char)-1)*(((((unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(unsigned char) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned char) ((((((unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(unsigned char) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned char) (((unsigned char)-1)*(((((((unsigned char)digits[2]) << PyLong_SHIFT) | (unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned char) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned char) ((((((((unsigned char)digits[2]) << PyLong_SHIFT) | (unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(unsigned char) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned char) (((unsigned char)-1)*(((((((((unsigned char)digits[3]) << PyLong_SHIFT) | (unsigned char)digits[2]) << PyLong_SHIFT) | (unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned char) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned char) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned char) ((((((((((unsigned char)digits[3]) << PyLong_SHIFT) | (unsigned char)digits[2]) << PyLong_SHIFT) | (unsigned char)digits[1]) << PyLong_SHIFT) | (unsigned char)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(unsigned char) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned char, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned char, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned char val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned char) -1;
        }
    } else {
        unsigned char val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned char) -1;
        val = __Pyx_PyInt_As_unsigned_char(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned char");
    return (unsigned char) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned char");
    return (unsigned char) -1;
}

/* CIntFromPy */
static CYTHON_INLINE unsigned short __Pyx_PyInt_As_unsigned_short(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned short neg_one = (unsigned short) -1, const_zero = (unsigned short) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned short) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned short, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned short) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned short) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned short, digit, digits[0])
                case 2:
                    if (8 * sizeof(unsigned short) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) >= 2 * PyLong_SHIFT) {
                            return (unsigned short) (((((unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned short) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) >= 3 * PyLong_SHIFT) {
                            return (unsigned short) (((((((unsigned short)digits[2]) << PyLong_SHIFT) | (unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned short) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) >= 4 * PyLong_SHIFT) {
                            return (unsigned short) (((((((((unsigned short)digits[3]) << PyLong_SHIFT) | (unsigned short)digits[2]) << PyLong_SHIFT) | (unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned short) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(unsigned short) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned short, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned short) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned short, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned short) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned short, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned short,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(unsigned short) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned short) (((unsigned short)-1)*(((((unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(unsigned short) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned short) ((((((unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(unsigned short) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned short) (((unsigned short)-1)*(((((((unsigned short)digits[2]) << PyLong_SHIFT) | (unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned short) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned short) ((((((((unsigned short)digits[2]) << PyLong_SHIFT) | (unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(unsigned short) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned short) (((unsigned short)-1)*(((((((((unsigned short)digits[3]) << PyLong_SHIFT) | (unsigned short)digits[2]) << PyLong_SHIFT) | (unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned short) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned short, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned short) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned short) ((((((((((unsigned short)digits[3]) << PyLong_SHIFT) | (unsigned short)digits[2]) << PyLong_SHIFT) | (unsigned short)digits[1]) << PyLong_SHIFT) | (unsigned short)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(unsigned short) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned short, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned short) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned short, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned short val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned short) -1;
        }
    } else {
        unsigned short val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned short) -1;
        val = __Pyx_PyInt_As_unsigned_short(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned short");
    return (unsigned short) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned short");
    return (unsigned short) -1;
}

/* CIntFromPy */
static CYTHON_INLINE uint32_t __Pyx_PyInt_As_uint32_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uint32_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uint32_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint32_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint32_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 2 * PyLong_SHIFT) {
                            return (uint32_t) (((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 3 * PyLong_SHIFT) {
                            return (uint32_t) (((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 4 * PyLong_SHIFT) {
                            return (uint32_t) (((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (uint32_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(uint32_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint32_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(uint32_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(uint32_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(uint32_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint32_t) ((((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint32_t) ((((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint32_t) ((((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(uint32_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uint32_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uint32_t) -1;
        }
    } else {
        uint32_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (uint32_t) -1;
        val = __Pyx_PyInt_As_uint32_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint32_t");
    return (uint32_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint32_t");
    return (uint32_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uint64_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uint64_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uint64_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint64_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint64_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(uint64_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) >= 2 * PyLong_SHIFT) {
                            return (uint64_t) (((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint64_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) >= 3 * PyLong_SHIFT) {
                            return (uint64_t) (((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint64_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) >= 4 * PyLong_SHIFT) {
                            return (uint64_t) (((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (uint64_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(uint64_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint64_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(uint64_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(uint64_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(uint64_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint64_t) (((uint64_t)-1)*(((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(uint64_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint64_t) ((((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint64_t) (((uint64_t)-1)*(((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint64_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint64_t) ((((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint64_t) (((uint64_t)-1)*(((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint64_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint64_t) ((((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(uint64_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uint64_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uint64_t) -1;
        }
    } else {
        uint64_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (uint64_t) -1;
        val = __Pyx_PyInt_As_uint64_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint64_t");
    return (uint64_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint64_t");
    return (uint64_t) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_PY_LONG_LONG(unsigned PY_LONG_LONG value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG) -1, const_zero = (unsigned PY_LONG_LONG) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned PY_LONG_LONG) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned PY_LONG_LONG) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned PY_LONG_LONG),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const char neg_one = (char) -1, const_zero = (char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(char) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (char) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (char) 0;
                case  1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0])
                case 2:
                    if (8 * sizeof(char) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) {
                            return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(char) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) {
                            return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(char) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) {
                            return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (char) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(char) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (char) 0;
                case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(char,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) {
                            return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(char) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) {
                            return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) {
                            return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(char) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) {
                            return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) {
                            return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(char) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) {
                            return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(char) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            char val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (char) -1;
        }
    } else {
        char val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (char) -1;
        val = __Pyx_PyInt_As_char(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to char");
    return (char) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to char");
    return (char) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUstreamBatchMemOpType_enum) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) (((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) (((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) (((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) (((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaccessProperty_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUaccessProperty_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) (((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) (((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) (((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) (((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUsynchronizationPolicy_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexecAffinityType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUexecAffinityType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemorytype_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemorytype_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUarray_format_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUarray_format_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) (((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) (((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) (((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) (((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarray_format_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUarray_format_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUarray_format_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarray_format_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUarray_format_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUarray_format_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUarray_format_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) (((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) (((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) (((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) (((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourcetype_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUresourcetype_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) (((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) (((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) (((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) (((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUaddress_mode_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUaddress_mode_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) (((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) (((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) (((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) (((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfilter_mode_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUfilter_mode_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) (((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) (((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) (((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) (((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUresourceViewFormat_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUexternalMemoryHandleType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUexternalSemaphoreHandleType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) (((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) (((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) (((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUarraySparseSubresourceType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemOperationType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemOperationType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemHandleType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemHandleType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemLocationType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemLocationType_enum) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned char) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned char) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_short(unsigned short value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned short neg_one = (unsigned short) -1, const_zero = (unsigned short) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned short) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned short) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned short) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned short) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned short) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned short),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationHandleType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAccess_flags_enum) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint32_t(uint32_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint32_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint32_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint32_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint32_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint64_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint64_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_cudaError_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_cudaError_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_cudaError_enum neg_one = (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_cudaError_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) (((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) (((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) (((((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) (((enum __pyx_t_4cuda_5ccuda_cudaError_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) ((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) (((enum __pyx_t_4cuda_5ccuda_cudaError_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) ((((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) (((enum __pyx_t_4cuda_5ccuda_cudaError_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_cudaError_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_cudaError_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_cudaError_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_cudaError_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_cudaError_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_cudaError_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_cudaError_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_cudaError_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_cudaError_enum");
    return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_cudaError_enum");
    return (enum __pyx_t_4cuda_5ccuda_cudaError_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_attribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUdevice_attribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) (((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) (((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) (((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) (((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesTarget_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) (((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) (((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) (((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) (((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUflushGPUDirectRDMAWritesScope_enum) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUlimit_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUlimit_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) (((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) (((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) (((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) (((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUlimit_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUlimit_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUlimit_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUlimit_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUlimit_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUlimit_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUlimit_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUlimit_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUlimit_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) (((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) (((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) (((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) (((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunc_cache_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUfunc_cache_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) (((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) (((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) (((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) (((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUsharedconfig_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUsharedconfig_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUjit_option_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjit_option_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) (((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) (((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) (((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) (((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjit_option_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUjit_option_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUjit_option_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjit_option_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUjit_option_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUjit_option_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUjit_option_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) (((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) (((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) (((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) (((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUjitInputType_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUjitInputType_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemAllocationGranularity_flags_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmemPool_attribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUpointer_attribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUpointer_attribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) (((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) (((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) (((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_advise_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmem_advise_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUmem_range_attribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) (((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUstreamCaptureMode_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) (((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) (((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUstreamAttrID_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUstreamAttrID_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUfunction_attribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUfunction_attribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUgraphMem_attribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) (((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) (((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) (((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) (((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUkernelNodeAttrID_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum neg_one = (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1, const_zero = (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) >= 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) (((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) >= 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) (((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) >= 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) (((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)-1)*(((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 2 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) ((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)-1)*(((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 3 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) ((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) (((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)-1)*(((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) - 1 > 4 * PyLong_SHIFT) {
                            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) ((((((((((enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1;
        }
    } else {
        enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum");
    return (enum __pyx_t_4cuda_5ccuda_CUdevice_P2PAttribute_enum) -1;
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = a->tp_base;
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
    if (!res) {
        res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
    return res;
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
    #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (descr != NULL) {
        *method = descr;
        return 0;
    }
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(name));
#endif
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod1 */
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
}

/* CoroutineBase */
#include <structmember.h>
#include <frameobject.h>
#define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom)
static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#if PY_VERSION_HEX >= 0x030300A0
        else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) {
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            Py_DECREF(ev);
        }
#endif
        else if (unlikely(PyTuple_Check(ev))) {
            if (PyTuple_GET_SIZE(ev) >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#else
                value = PySequence_ITEM(ev, 0);
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if PY_VERSION_HEX >= 0x030300A0
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
    Py_DECREF(ev);
#else
    {
        PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
        Py_DECREF(ev);
        if (likely(args)) {
            value = PySequence_GetItem(args, 0);
            Py_DECREF(args);
        }
        if (unlikely(!value)) {
            __Pyx_ErrRestore(NULL, NULL, NULL);
            Py_INCREF(Py_None);
            value = Py_None;
        }
    }
#endif
    *pvalue = value;
    return 0;
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) {
    const char *msg;
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
#define __Pyx_Coroutine_NotStartedError(gen)  (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) {
    const char *msg;
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check(gen)) {
        msg = "can't send non-None value to a just-started coroutine";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact(gen)) {
        msg = "can't send non-None value to a just-started async generator";
    #endif
    } else {
        msg = "can't send non-None value to a just-started generator";
    }
    PyErr_SetString(PyExc_TypeError, msg);
}
#define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing)  (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED int closing) {
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(!self->is_running);
    if (unlikely(self->resume_label == 0)) {
        if (unlikely(value && value != Py_None)) {
            return __Pyx_Coroutine_NotStartedError((PyObject*)self);
        }
    }
    if (unlikely(self->resume_label == -1)) {
        return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_type) {
        #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
        #else
        if (exc_state->exc_traceback) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback;
            PyFrameObject *f = tb->tb_frame;
            assert(f->f_back == NULL);
            #if PY_VERSION_HEX >= 0x030B00A1
            f->f_back = PyThreadState_GetFrame(tstate);
            #else
            Py_XINCREF(tstate->frame);
            f->f_back = tstate->frame;
            #endif
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    self->is_running = 1;
    retval = self->body((PyObject *) self, tstate, value);
    self->is_running = 0;
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    return retval;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
    PyObject *exc_tb = exc_state->exc_traceback;
    if (likely(exc_tb)) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
#else
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
#endif
    }
}
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) {
    if (unlikely(!retval)) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        if (!__Pyx_PyErr_Occurred()) {
            PyObject *exc = PyExc_StopIteration;
            #ifdef __Pyx_AsyncGen_USED
            if (__Pyx_AsyncGen_CheckExact(gen))
                exc = __Pyx_PyExc_StopAsyncIteration;
            #endif
            __Pyx_PyErr_SetNone(exc);
        }
    }
    return retval;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
            _PyGen_SetStopIterationValue(result);
        }
        Py_CLEAR(result);
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
    PyObject *ret;
    PyObject *val = NULL;
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    ret = __Pyx_Coroutine_SendEx(gen, val, 0);
    Py_XDECREF(val);
    return ret;
}
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        {
            if (value == Py_None)
                ret = Py_TYPE(yf)->tp_iternext(yf);
            else
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
        }
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        retval = __Pyx_Coroutine_FinishDelegation(gen);
    } else {
        retval = __Pyx_Coroutine_SendEx(gen, value, 0);
    }
    return __Pyx_Coroutine_MethodReturn(self, retval);
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    PyObject *retval = NULL;
    int err = 0;
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
    } else
    #endif
    {
        PyObject *meth;
        gen->is_running = 1;
        meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close);
        if (unlikely(!meth)) {
            if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
                PyErr_WriteUnraisable(yf);
            }
            PyErr_Clear();
        } else {
            retval = PyObject_CallFunction(meth, NULL);
            Py_DECREF(meth);
            if (!retval)
                err = -1;
        }
        gen->is_running = 0;
    }
    Py_XDECREF(retval);
    return err;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
            ret = Py_TYPE(yf)->tp_iternext(yf);
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        return __Pyx_Coroutine_FinishDelegation(gen);
    }
    return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, CYTHON_UNUSED PyObject *arg) {
    return __Pyx_Coroutine_Close(self);
}
static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *retval, *raised_exception;
    PyObject *yf = gen->yieldfrom;
    int err = 0;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
    if (unlikely(retval)) {
        const char *msg;
        Py_DECREF(retval);
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
#if PY_VERSION_HEX < 0x03060000
            msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
#else
            msg = "async generator ignored GeneratorExit";
#endif
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        return NULL;
    }
    raised_exception = PyErr_Occurred();
    if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
        if (raised_exception) PyErr_Clear();
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
            goto throw_here;
        }
        gen->is_running = 1;
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
                    gen->is_running = 0;
                    return NULL;
                }
                PyErr_Clear();
                __Pyx_Coroutine_Undelegate(gen);
                gen->is_running = 0;
                goto throw_here;
            }
            if (likely(args)) {
                ret = PyObject_CallObject(meth, args);
            } else {
                ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL);
            }
            Py_DECREF(meth);
        }
        gen->is_running = 0;
        Py_DECREF(yf);
        if (!ret) {
            ret = __Pyx_Coroutine_FinishDelegation(gen);
        }
        return __Pyx_Coroutine_MethodReturn(self, ret);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
    return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    Py_CLEAR(gen->yieldfrom);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_frame);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    if (gen->gi_weakreflist != NULL)
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE
        if (PyObject_CallFinalizerFromDealloc(self))
#else
        Py_TYPE(gen)->tp_del(self);
        if (Py_REFCNT(self) > 0)
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    PyObject_GC_Del(gen);
}
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt == 0);
    __Pyx_SET_REFCNT(self, 1);
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
#if PY_MAJOR_VERSION >= 3  || defined(PyErr_WarnFormat)
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
#else
        {PyObject *msg;
        char *cmsg;
        #if CYTHON_COMPILING_IN_PYPY
        msg = NULL;
        cmsg = (char*) "coroutine was never awaited";
        #else
        char *cname;
        PyObject *qualname;
        qualname = gen->gi_qualname;
        cname = PyString_AS_STRING(qualname);
        msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname);
        if (unlikely(!msg)) {
            PyErr_Clear();
            cmsg = (char*) "coroutine was never awaited";
        } else {
            cmsg = PyString_AS_STRING(msg);
        }
        #endif
        if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
            PyErr_WriteUnraisable(self);
        Py_XDECREF(msg);}
#endif
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *res = __Pyx_Coroutine_Close(self);
        if (unlikely(!res)) {
            if (PyErr_Occurred())
                PyErr_WriteUnraisable(self);
        } else {
            Py_DECREF(res);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
#if !CYTHON_USE_TP_FINALIZE
    assert(Py_REFCNT(self) > 0);
    if (--self->ob_refcnt == 0) {
        return;
    }
    {
        Py_ssize_t refcnt = Py_REFCNT(self);
        _Py_NewReference(self);
        __Pyx_SET_REFCNT(self, refcnt);
    }
#if CYTHON_COMPILING_IN_CPYTHON
    assert(PyType_IS_GC(Py_TYPE(self)) &&
           _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
    _Py_DEC_REFTOTAL;
#endif
#ifdef COUNT_ALLOCS
    --Py_TYPE(self)->tp_frees;
    --Py_TYPE(self)->tp_allocs;
#endif
#endif
}
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *name = self->gi_name;
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = self->gi_name;
    Py_INCREF(value);
    self->gi_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *name = self->gi_qualname;
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = self->gi_qualname;
    Py_INCREF(value);
    self->gi_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *frame = self->gi_frame;
    if (!frame) {
        if (unlikely(!self->gi_code)) {
            Py_RETURN_NONE;
        }
        frame = (PyObject *) PyFrame_New(
            PyThreadState_Get(),            /*PyThreadState *tstate,*/
            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
            __pyx_d,                 /*PyObject *globals,*/
            0                               /*PyObject *locals*/
        );
        if (unlikely(!frame))
            return NULL;
        self->gi_frame = frame;
    }
    Py_INCREF(frame);
    return frame;
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
    gen->gi_weakreflist = NULL;
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    gen->gi_frame = NULL;
    PyObject_GC_Track(gen);
    return gen;
}

/* PatchModuleWithCoroutine */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    int result;
    PyObject *globals, *result_obj;
    globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_coroutine_type",
    #ifdef __Pyx_Coroutine_USED
        (PyObject*)__pyx_CoroutineType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_generator_type",
    #ifdef __Pyx_Generator_USED
        (PyObject*)__pyx_GeneratorType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
    result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
    if (unlikely(!result_obj)) goto ignore;
    Py_DECREF(result_obj);
    Py_DECREF(globals);
    return module;
ignore:
    Py_XDECREF(globals);
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    py_code++;
#endif
    return module;
}

/* PatchGeneratorABC */
#ifndef CYTHON_REGISTER_ABCS
#define CYTHON_REGISTER_ABCS 1
#endif
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
static PyObject* __Pyx_patch_abc_module(PyObject *module);
static PyObject* __Pyx_patch_abc_module(PyObject *module) {
    module = __Pyx_Coroutine_patch_module(
        module, ""
"if _cython_generator_type is not None:\n"
"    try: Generator = _module.Generator\n"
"    except AttributeError: pass\n"
"    else: Generator.register(_cython_generator_type)\n"
"if _cython_coroutine_type is not None:\n"
"    try: Coroutine = _module.Coroutine\n"
"    except AttributeError: pass\n"
"    else: Coroutine.register(_cython_coroutine_type)\n"
    );
    return module;
}
#endif
static int __Pyx_patch_abc(void) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    static int abc_patched = 0;
    if (CYTHON_REGISTER_ABCS && !abc_patched) {
        PyObject *module;
        module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections");
        if (!module) {
            PyErr_WriteUnraisable(NULL);
            if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
                    ((PY_MAJOR_VERSION >= 3) ?
                        "Cython module failed to register with collections.abc module" :
                        "Cython module failed to register with collections module"), 1) < 0)) {
                return -1;
            }
        } else {
            module = __Pyx_patch_abc_module(module);
            abc_patched = 1;
            if (unlikely(!module))
                return -1;
            Py_DECREF(module);
        }
        module = PyImport_ImportModule("backports_abc");
        if (module) {
            module = __Pyx_patch_abc_module(module);
            Py_XDECREF(module);
        }
        if (!module) {
            PyErr_Clear();
        }
    }
#else
    if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
#endif
    return 0;
}

/* Generator */
static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
    {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being iterated by 'yield from', or None")},
    {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the generator"), 0},
    {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the generator"), 0},
    {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     (char*) PyDoc_STR("Frame of the generator"), 0},
    {0, 0, 0, 0, 0}
};
static PyTypeObject __pyx_GeneratorType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    (destructor) __Pyx_Coroutine_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc) __Pyx_Coroutine_traverse,
    0,
    0,
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    (iternextfunc) __Pyx_Generator_Next,
    __pyx_Generator_methods,
    __pyx_Generator_memberlist,
    __pyx_Generator_getsets,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
    0,
#endif
};
static int __pyx_Generator_init(void) {
    __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
    __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
    if (unlikely(!__pyx_GeneratorType)) {
        return -1;
    }
    return 0;
}

/* CheckBinaryVersion */
static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* FunctionImport */
#ifndef __PYX_HAVE_RT_ImportFunction
#define __PYX_HAVE_RT_ImportFunction
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
    if (!d)
        goto bad;
    cobj = PyDict_GetItemString(d, funcname);
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C function %.200s",
                PyModule_GetName(module), funcname);
        goto bad;
    }
#if PY_VERSION_HEX >= 0x02070000
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    tmp.p = PyCapsule_GetPointer(cobj, sig);
#else
    {const char *desc, *s1, *s2;
    desc = (const char *)PyCObject_GetDesc(cobj);
    if (!desc)
        goto bad;
    s1 = desc; s2 = sig;
    while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
    if (*s1 != *s2) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, desc);
        goto bad;
    }
    tmp.p = PyCObject_AsVoidPtr(cobj);}
#endif
    *f = tmp.fp;
    if (!(*f))
        goto bad;
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(d);
    return -1;
}
#endif

/* InitStrings */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type %.200s).  "
                "The ability to return an instance of a strict subclass of int "
                "is deprecated, and may be removed in a future version of Python.",
                Py_TYPE(result)->tp_name)) {
            Py_DECREF(result);
            return NULL;
        }
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type %.200s)",
                 type_name, type_name, Py_TYPE(result)->tp_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
#if PY_MAJOR_VERSION < 3
  } else if (likely(PyInt_CheckExact(o))) {
    return PyInt_AS_LONG(o);
#endif
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyInt_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
